diff --git a/gulpfile.js b/gulpfile.js index 583c7fe1..645ae52f 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,16 +1,24 @@ 'use strict' const connect = require('gulp-connect') +const { execSync } = require('child_process') const fs = require('fs') const generator = require('@antora/site-generator-default') const { reload: livereload } = process.env.LIVERELOAD === 'true' ? require('gulp-connect') : {} +const log = require('fancy-log') const { series, src, watch } = require('gulp') +const path = require('path') const yaml = require('js-yaml') const playbookFilename = process.env.PLAYBOOK || 'antora-playbook.yml' const playbook = yaml.load(fs.readFileSync(playbookFilename, 'utf8')) const outputDir = (playbook.output || {}).dir || './build/site' -const serverConfig = { name: 'Preview Site', livereload, port: Number(process.env.PORT) || 5000, root: outputDir } +const serverConfig = { + name: 'Preview Site', + livereload, + port: Number(process.env.PORT) || 5000, + root: outputDir, +} const antoraArgs = ['--playbook', playbookFilename] const watchPatterns = playbook.content.sources.filter((source) => !source.url.includes(':')).reduce((accum, source) => { accum.push(`${source.url}/${source.start_path ? source.start_path + '/' : ''}antora.yml`) @@ -18,6 +26,19 @@ const watchPatterns = playbook.content.sources.filter((source) => !source.url.in return accum }, []) +const savannaSrc = 'modules/savanna' +const previewSrc = 'build/preview-src' +const antoraUiRoot = path.resolve(__dirname, process.env.ANTORA_UI || '../antora-ui') +const uiBundleZip = path.join(antoraUiRoot, 'build/ui-bundle.zip') + +const gitEnv = { + ...process.env, + GIT_AUTHOR_NAME: 'Preview', + GIT_AUTHOR_EMAIL: 'preview@local', + GIT_COMMITTER_NAME: 'Preview', + GIT_COMMITTER_EMAIL: 'preview@local', +} + function generate (done) { generator(antoraArgs, process.env) .then(() => done()) @@ -27,6 +48,47 @@ function generate (done) { }) } +function ensurePreviewSrcRepo () { + if (!fs.existsSync(previewSrc)) { + fs.mkdirSync(previewSrc, { recursive: true }) + } + if (!fs.existsSync(path.join(previewSrc, '.git'))) { + execSync('git init -q', { cwd: previewSrc }) + } +} + +function syncPreviewSrc (done) { + ensurePreviewSrcRepo() + execSync(`rsync -a --delete --exclude '.git' ${savannaSrc}/ ${previewSrc}/`, { stdio: 'inherit' }) + execSync('git add -A', { cwd: previewSrc, env: gitEnv }) + try { + execSync('git diff --cached --quiet', { cwd: previewSrc, stdio: 'ignore' }) + } catch (_) { + execSync('git commit -q -m "local preview snapshot"', { cwd: previewSrc, env: gitEnv }) + } + done() +} + +function rebuildUiBundle (done) { + if (!fs.existsSync(antoraUiRoot)) { + done(new Error(`antora-ui not found at ${antoraUiRoot} (set ANTORA_UI)`)) + return + } + log(`Building UI bundle in ${antoraUiRoot}`) + execSync('npx gulp bundle', { cwd: antoraUiRoot, stdio: 'inherit' }) + execSync('rm -rf build/ui-bundle && mkdir -p build/ui-bundle', { stdio: 'inherit' }) + execSync(`unzip -oq ${JSON.stringify(uiBundleZip)} -d build/ui-bundle`, { stdio: 'inherit' }) + // An empty site.js extracts without error and the preview still renders, so the + // only symptom is that nothing scripted works — collapsible nav groups, the + // language picker, search. Fail here instead of serving a mute site. + const siteJs = 'build/ui-bundle/js/site.js' + if (!fs.existsSync(siteJs) || !fs.statSync(siteJs).size) { + done(new Error(`${siteJs} is missing or empty; rerun after ${uiBundleZip} finishes writing`)) + return + } + done() +} + function serve (done) { connect.server(serverConfig, function () { this.server.on('close', done) @@ -35,4 +97,50 @@ function serve (done) { }) } -module.exports = { serve, generate, default: series(generate, serve) } +function debounce (fn, waitMs) { + let timer + return (done) => { + clearTimeout(timer) + timer = setTimeout(() => fn(done), waitMs) + } +} + +function devHot (done) { + const contentRebuild = series(syncPreviewSrc, generate) + const uiRebuild = series(rebuildUiBundle, generate) + + series(syncPreviewSrc, rebuildUiBundle, generate)((err) => { + if (err) { + done(err) + return + } + + connect.server(serverConfig, function () { + this.server.on('close', done) + + const contentPatterns = [ + `${savannaSrc}/**/*`, + 'lib/**/*.js', + ] + const uiPatterns = [ + path.join(antoraUiRoot, 'src/**/*'), + path.join(antoraUiRoot, 'gulp.d/**/*'), + ] + + watch(contentPatterns, debounce((cb) => { + log('cloud-docs change detected — syncing content') + contentRebuild(cb) + }, 400)) + + watch(uiPatterns, debounce((cb) => { + log('antora-ui change detected — rebuilding bundle') + uiRebuild(cb) + }, 800)) + + log(`Hot preview: http://localhost:${serverConfig.port}`) + log(`Watching ${savannaSrc} and ${path.join(antoraUiRoot, 'src')}`) + }) + }) +} + +module.exports = { serve, generate, devHot, default: series(generate, serve) } diff --git a/lib/api-descriptions.json b/lib/api-descriptions.json new file mode 100644 index 00000000..aecf06c7 --- /dev/null +++ b/lib/api-descriptions.json @@ -0,0 +1,459 @@ +{ + "_comment": "Attribute prose for the REST reference pages, keyed by OpenAPI definition. The published spec describes almost none of its properties, so this file covers every attribute the endpoint pages reach. Add an entry here when the spec gains a definition; a property with neither spec text nor an entry renders with its name and type alone. The _operations map is separate: keyed by \"METHOD /path\", it replaces the opening paragraph of a page where the spec's own description is too thin to tell a reader whether the endpoint applies to them.", + "_operations": { + "GET /controller/v4/v2/cloud-providers/public": "Lists the cloud providers TigerGraph operates. Use an id from this list as the cloud_provider_id when you create a workgroup.", + "GET /controller/v4/v2/cloud-providers": "Lists the Bring Your Own Cloud (BYOC) providers registered to your organization, the cloud accounts you own that Savanna deploys into. Use an id from this list as the cloud_provider_id when you create a workgroup.", + "GET /controller/v4/v2/cloud-providers/{cloudProviderID}": "Returns a single Bring Your Own Cloud (BYOC) provider, including its status, the AWS resources Savanna created in your account, and its component versions.", + "POST /controller/v4/v2/cloud-providers": "Registers a cloud account you own with Savanna so workgroups can be deployed into it. This is the Bring Your Own Cloud (BYOC) setup step, and it grants Savanna a cross-account IAM role in your AWS account.", + "POST /controller/v4/v2/cloud-providers/validate": "Checks whether a Bring Your Own Cloud (BYOC) registration would succeed, without creating anything.", + "PUT /controller/v4/v2/cloud-providers/{cloudProviderID}": "Renames a Bring Your Own Cloud (BYOC) provider or records a version against it. Use the upgrade endpoint to change what is deployed in the cloud account.", + "PUT /controller/v4/v2/cloud-providers/{cloudProviderID}/upgrade": "Upgrades the Savanna components deployed in a Bring Your Own Cloud (BYOC) provider's cloud account, and optionally resizes its node groups.", + "DELETE /controller/v4/v2/cloud-providers/{cloudProviderID}": "Unregisters a Bring Your Own Cloud (BYOC) provider and removes the Savanna components from that cloud account. Delete its workgroups first.", + "POST /controller/v4/v2/workgroups/{workgroupID}/allow_list": "Adds an IP address or CIDR range to a workgroup allow list.", + "GET /controller/v4/v2/workgroups/{workgroupID}/allow_list/current": "Returns your current public IP address and whether the workgroup allow list permits it.", + "POST /controller/v4/v2/workgroups": "Creates a workgroup with the selected cloud provider, region, and deployment settings.", + "POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules": "Creates a recurring workspace schedule.", + "POST /controller/v4/v2/workgroups/{workgroupID}/workspaces": "Creates a workspace in a workgroup. The workspace's database is created with it.", + "POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser": "Creates an in-database GSQL user for a workspace.", + "DELETE /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups": "Deletes the specified workspace backup.", + "DELETE /controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID}": "Deletes a database from a workgroup.", + "DELETE /controller/v4/v2/workgroups/{workgroupID}": "Deletes a workgroup.", + "DELETE /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules/{scheduleID}": "Deletes a workspace schedule.", + "DELETE /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}": "Deletes a workspace from a workgroup.", + "DELETE /controller/v4/v2/workgroups/{workgroupID}/allow_list/{id}": "Removes an IP address or CIDR range from a workgroup allow list.", + "DELETE /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser": "Deletes an in-database GSQL user from a workspace.", + "PUT /controller/v4/v2/workgroups/{workgroupID}/allow_list/disable": "Disables IP allow-list enforcement for a workgroup.", + "PUT /controller/v4/v2/workgroups/{workgroupID}/allow_list/enable": "Enables IP allow-list enforcement for a workgroup.", + "GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/{job}/status": "Returns the status of a backup restore job.", + "GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/schedule": "Returns the backup schedule for a workspace.", + "GET /controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID}": "Returns details for a database in a workgroup.", + "GET /controller/v4/v2/workspaces/meta": "Lists the regions, TigerGraph versions, and workspace types available to your organization.", + "GET /controller/v4/v2/workgroups/{workgroupID}": "Returns details for a workgroup in your organization.", + "GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}": "Returns details for a workspace in a workgroup.", + "GET /controller/v4/v2/workgroups/{workgroupID}/allow_list": "Lists the IP addresses and CIDR ranges permitted by a workgroup allow list.", + "GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups": "Lists the backups for a workspace.", + "GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser": "Lists the in-database GSQL users for a workspace.", + "GET /users": "Lists the users in your organization. This endpoint does not support API key authentication.", + "GET /controller/v4/v2/workgroups": "Lists the workgroups in your organization.", + "GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules": "Lists the schedules for a workspace.", + "POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/pause": "Pauses a workspace.", + "POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/refresh": "Refreshes a workspace.", + "POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/restore": "Restores a workspace from a backup.", + "POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/resume": "Resumes a paused workspace.", + "POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/schedule": "Creates or replaces the backup schedule for a workspace.", + "PUT /controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID}": "Renames a database in a workgroup.", + "PUT /controller/v4/v2/workgroups/{workgroupID}": "Updates a workgroup name, application logging, or encryption settings.", + "PUT /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules/{scheduleID}": "Updates a workspace schedule.", + "PUT /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}": "Updates a workspace configuration.", + "PUT /controller/v4/v2/workgroups/{workgroupID}/allow_list/{id}": "Updates an entry in a workgroup allow list.", + "PUT /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser": "Updates an in-database GSQL user's password.", + "PUT /users/{userId}/roles": "Updates an organization user's role. This endpoint does not support API key authentication.", + "GET /controller/v4/v2/addons/meta": "Lists the add-ons available to your organization. Use an id from this list as addons_id when you install an add-on or enable one on a workspace.", + "POST /controller/v4/v2/addons/{addonsID}/install": "Installs an add-on for your organization, or enables or disables it.", + "GET /controller/v4/v2/installed-addons": "Lists the add-ons installed for your organization.", + "GET /controller/v4/v2/installed-addons/{installedAddonsID}": "Returns a single installed add-on.", + "GET /controller/v4/v2/addons/{addonsID}/workspaces": "Lists the workspaces that have a given add-on enabled.", + "GET /controller/v4/v2/installed-addons/{installedAddonsID}/configs/{configName}": "Lists configurations of a given name for an installed add-on.", + "POST /controller/v4/v2/add-ons/{installedAddonsID}/configs": "Creates a configuration for an installed add-on.", + "PUT /controller/v4/v2/add-ons/{installedAddonsID}/configs/{configID}": "Updates a configuration of an installed add-on.", + "DELETE /controller/v4/v2/add-ons/{installedAddonsID}/configs/{configID}": "Deletes a configuration of an installed add-on." + }, + "CreateConfigRequest": { + "config_name": "Name of the configuration.", + "config_value": "Value of the configuration." + }, + "UpdateConfigRequest": { + "config_value": "New value of the configuration." + }, + "AgentConfig": { + "catalog_activity_update_interval_seconds": "Seconds between catalog activity updates.", + "enable_topology_force_update": "Whether topology updates are forced.", + "heartbeat_interval_seconds": "Seconds between agent heartbeats.", + "query_activity_update_interval_seconds": "Seconds between query activity updates.", + "topology_update_interval_seconds": "Seconds between topology updates." + }, + "AllowedIP": { + "cidr": "IP address or range in CIDR notation, such as 192.168.1.0/24 for a range or 192.168.1.2/32 for a single address.", + "id": "Unique identifier of the allow list entry.", + "note": "Note recording why the address was allowed." + }, + "Backup": { + "id": "Unique identifier of the backup.", + "is_automatic": "Whether the backup came from the backup schedule rather than a manual request.", + "size_bytes": "Size of the backup, in bytes.", + "status": "Current status of the backup.", + "tag": "Tag that identifies the backup.", + "time": "Time the backup was taken.", + "type": "Scope of the data captured by the backup.", + "version": "TigerGraph version the backup was taken from." + }, + "BackupRestoreStatus": { + "created_at": "Time the restore job started.", + "name": "Name of the restore job.", + "output": "Log output produced by the restore job.", + "status": "Current status of the restore job." + }, + "BackupSchedule": { + "max_backup_files": "Maximum number of backups to keep.", + "max_reserved_days": "Number of days a backup is kept before it is removed.", + "max_retry": "Number of times a failed backup is retried.", + "pause": "Whether the schedule is paused.", + "schedule": "Cron expression that sets when the backup runs." + }, + "CloudProviderOptions": { + "account_id": "Cloud account identifier associated with the provider.", + "secure_connection": "Whether the provider uses a private, secure connection." + }, + "CloudProviderResource": { + "api_tokens": "API tokens associated with the cloud provider.", + "availability_zones": "Availability zones configured for the cloud provider.", + "cluster_enabled_log_types": "Kubernetes control-plane log types enabled for the provider.", + "component_versions": "Versions of the components installed for the provider.", + "created_at": "Time the cloud provider was created.", + "created_by": "User who created the cloud provider.", + "eks_id": "Identifier of the Amazon EKS cluster.", + "endpoint_service_name": "Name of the private endpoint service.", + "id": "Unique identifier of the cloud provider.", + "last_error": "Most recent error reported while provisioning or updating the provider.", + "name": "Name of the cloud provider.", + "node_group_config": "Configuration of the Kubernetes node groups.", + "options": "Additional cloud-provider configuration options.", + "org_id": "Unique identifier of the organization that owns the provider.", + "platform": "Cloud platform that hosts the provider.", + "region": "Cloud region that hosts the provider.", + "role_arn": "Amazon Resource Name of the IAM role TigerGraph assumes.", + "role_external_id": "External identifier used when TigerGraph assumes the IAM role.", + "security_group_id": "Identifier of the network security group.", + "short_id": "Short identifier of the cloud provider.", + "status": "Current status of the cloud provider.", + "subnet_id": "Identifiers of the subnets used by the provider.", + "type": "Access type of the cloud provider.", + "updated_at": "Time the cloud provider was last updated.", + "version": "Version of the cloud provider deployment.", + "version_number": "Internal version number of the cloud provider record.", + "vpc_id": "Identifier of the virtual private cloud.", + "vpc_owned_by_tg": "Whether TigerGraph owns and manages the virtual private cloud.", + "work_dir": "Working directory used while provisioning the provider." + }, + "CreateCloudProviderResourceRequest": { + "created_by": "User creating the cloud provider.", + "name": "Name for the new cloud provider.", + "options": "Additional cloud-provider configuration options.", + "platform": "Cloud platform that hosts the provider.", + "region": "Cloud region that hosts the provider.", + "role_arn": "Amazon Resource Name of the IAM role TigerGraph assumes.", + "role_external_id": "External identifier used when TigerGraph assumes the IAM role." + }, + "CreateWorkgroupRequest": { + "cloud_provider_id": "Unique identifier of the cloud provider configuration to use.", + "enable_application_log": "Whether application logging is enabled.", + "enable_encryption": "Whether data is encrypted at rest.", + "name": "Name for the new workgroup.", + "platform": "Cloud platform that hosts the workgroup.", + "region": "Cloud region that hosts the workgroup.", + "shared_storage": "Whether workspaces in the workgroup share storage." + }, + "PublicCloudProviderResource": { + "component_versions": "Versions of the components installed for the provider.", + "id": "Unique identifier of the public cloud provider.", + "name": "Name of the public cloud provider.", + "org_id": "Unique identifier of the organization that owns the provider.", + "platform": "Cloud platform that hosts the provider.", + "region": "Cloud region that hosts the provider.", + "status": "Current status of the public cloud provider.", + "version": "Version of the cloud provider deployment.", + "version_number": "Internal version number of the cloud provider record." + }, + "CreateWorkspaceRequest": { + "addons": "Add-ons to enable on the new workspace.", + "auto_stop_minutes": "Idle minutes before the workspace stops automatically.", + "enable_auto_start": "Whether the workspace starts automatically on access.", + "enable_ha": "Whether high availability is enabled, which adds redundancy and improves fault tolerance.", + "is_rw": "Whether the workspace accepts writes. Backups require a read-write workspace.", + "maintenance_window_day_of_week": "Day of the week the maintenance window starts.", + "maintenance_window_hour_of_day": "Hour of the day the maintenance window starts.", + "maintenance_window_interval_weeks": "Number of weeks between maintenance windows.", + "maintenance_window_time_zone": "Time zone used for the maintenance window.", + "name": "Name for the new workspace.", + "solution_install_request": "Solution to install on the new workspace.", + "tg_database_id": "Unique identifier of the database to attach.", + "tg_version": "TigerGraph version to run in the workspace.", + "update_strategy": "Strategy used to apply workspace updates.", + "x_test_env": "Reserved for internal testing." + }, + "DeleteBackupRequest": { + "backup_id": "Unique identifier of the backup to delete." + }, + "Error": { + "FieldName": "Field associated with the error.", + "Reason": "Explanation of why the error occurred.", + "Type": "Category of the error." + }, + "FolderStatistics": { + "backup_size": "Size of backup data, in bytes.", + "billed_size": "Storage size counted for billing, in bytes.", + "log_size": "Size of log data, in bytes.", + "milvus_size": "Size of vector index data, in bytes.", + "total_size": "Total storage size, in bytes.", + "workspaces": "Storage used by each workspace." + }, + "IAMUser": { + "auth0UserID": "Identifier of the user in the identity provider.", + "authID": "Identifier issued by the authentication provider.", + "created": "Time the user was created.", + "description": "Description of the user.", + "email": "Email address of the user.", + "enabled": "Whether the user can sign in.", + "firstName": "Given name of the user.", + "id": "Unique identifier of the user.", + "lastName": "Family name of the user.", + "metadata": "Additional details about the user.", + "path": "Hierarchical path of the user within the organization.", + "role": "Role assigned to the user.", + "tenantID": "Unique identifier of the tenant the user belongs to.", + "trn": "TigerGraph resource name of the user.", + "updated": "Time the user was last updated.", + "username": "Username of the user." + }, + "InDatabaseUserRequest": { + "password": "Password for the in-database user.", + "username": "Username for the in-database user." + }, + "OrgListUserResponse": { + "auth0UserID": "Identifier of the user in the identity provider.", + "authID": "Identifier issued by the authentication provider.", + "created": "Time the user was created.", + "description": "Description of the user.", + "email": "Email address of the user.", + "enabled": "Whether the user can sign in.", + "firstName": "Given name of the user.", + "id": "Unique identifier of the user.", + "lastName": "Family name of the user.", + "metadata": "Additional details about the user.", + "path": "Hierarchical path of the user within the organization.", + "roles": "Roles assigned to the user.", + "tenantID": "Unique identifier of the tenant the user belongs to.", + "trn": "TigerGraph resource name of the user.", + "updated": "Time the user was last updated.", + "username": "Username of the user." + }, + "OrgMetadata": { + "attachedTo": "Resources the user is attached to.", + "lastLogin": "Time the user last signed in." + }, + "OrgRole": { + "displayName": "Name of the role as it appears in the TigerGraph Savanna console.", + "id": "Unique identifier of the role.", + "name": "Name of the role.", + "path": "Hierarchical path of the role within the organization.", + "tenantID": "Unique identifier of the tenant the role belongs to.", + "trn": "TigerGraph resource name of the role." + }, + "PutOrgUsersRoles": { + "roles": "Roles to assign to the user, replacing the roles they hold now." + }, + "Region": { + "description": "Description of the region.", + "name": "Name of the region." + }, + "Response": { + "Error": "Indicates whether the request returned an error.", + "ErrorDetails": "Details about each error returned by the request.", + "Message": "Human-readable summary of the request result.", + "RequestID": "Unique identifier for tracing the request.", + "Result": "Payload returned by the request." + }, + "RestoreBackupRequest": { + "backup_id": "Unique identifier of the backup to restore." + }, + "SolutionInstallRequest": { + "addons": "Add-ons to enable alongside the solution.", + "data_source_origin": "Origin of the sample data loaded with the solution.", + "name": "Name for the installed solution.", + "solution_catalog_id": "Unique identifier of the solution catalog entry to install." + }, + "TGDatabase": { + "create_time": "Time the database was created.", + "database_id": "Unique identifier of the database.", + "folder_statistics": "Storage statistics for the database.", + "name": "Name of the database.", + "org_id": "Unique identifier of the organization.", + "org_name": "Name of the organization.", + "region": "Cloud region that hosts the database.", + "tg_version": "TigerGraph version of the database.", + "workgroup_id": "Unique identifier of the parent workgroup.", + "workspaces": "Workspaces attached to the database." + }, + "TGVersion": { + "allow_create": "Whether new workspaces can be created on this version.", + "allow_upgrade": "Whether existing workspaces can be upgraded to this version.", + "channel": "Release channel the version belongs to.", + "end_of_life": "Date the version stops being supported.", + "image": "Container image that provides the version.", + "incompatible_upgrades_from": "Versions that cannot be upgraded to this version.", + "name": "Version number." + }, + "UpdateTGDatabaseRequest": { + "tg_database_name": "New name for the database." + }, + "UpdateCloudProviderResourceRequest": { + "name": "New name for the cloud provider.", + "version": "Cloud provider deployment version to apply." + }, + "UpdateWorkgroupRequest": { + "enable_application_log": "Whether application logging is enabled.", + "encryption_method": "Encryption method to apply to the workgroup.", + "workgroup_name": "New name for the workgroup." + }, + "UpdateWorkspaceRequest": { + "addons": "Add-ons to enable on the workspace.", + "agent_config": "Agent heartbeat and polling configuration.", + "auto_stop_minutes": "Idle minutes before the workspace stops automatically.", + "auto_upgrade_state": "State of the automatic version upgrade.", + "desired_tg_version": "TigerGraph version to move the workspace to.", + "enable_auto_start": "Whether the workspace starts automatically on access.", + "enable_ha": "Whether high availability is enabled.", + "maintenance_window_day_of_week": "Day of the week the maintenance window starts.", + "maintenance_window_hour_of_day": "Hour of the day the maintenance window starts.", + "maintenance_window_interval_weeks": "Number of weeks between maintenance windows.", + "maintenance_window_time_zone": "Time zone used for the maintenance window.", + "pause": "Whether the workspace is paused.", + "update_strategy": "Strategy used to apply workspace updates.", + "workspace_name": "New name for the workspace.", + "workspace_type_name": "Name of the workspace size to apply." + }, + "UpgradeCloudProviderComponent": { + "name": "Name of the component to upgrade.", + "version": "Target version of the component." + }, + "UpgradeCloudProviderResourceRequest": { + "cluster_enabled_log_types": "Kubernetes control-plane log types to enable after the upgrade.", + "components": "Components and target versions to apply.", + "node_group_config": "Kubernetes node-group configuration to apply during the upgrade." + }, + "ValidateCloudProviderRequest": { + "account_id": "Cloud account identifier to validate.", + "platform": "Cloud platform to validate.", + "region": "Cloud region to validate.", + "role_arn": "Amazon Resource Name of the IAM role TigerGraph will assume.", + "role_external_id": "External identifier used when TigerGraph assumes the IAM role.", + "secure_connection": "Whether to validate a private, secure connection." + }, + "Workgroup": { + "cloud_provider_id": "Unique identifier of the cloud provider configuration.", + "cloud_provider_name": "Display name of the cloud provider.", + "cloud_provider_status": "Current status of the cloud provider configuration.", + "cloud_provider_type": "Type of cloud provider configuration.", + "creator": "User who created the workgroup.", + "enable_allow_list": "Whether the IP allow list is enabled.", + "enable_application_log": "Whether application logging is enabled.", + "encryption_method": "Encryption method used by the workgroup.", + "is_current_ip_allowed": "Whether the current client IP is allowed.", + "name": "Name of the workgroup.", + "org_id": "Unique identifier of the organization.", + "org_name": "Name of the organization.", + "platform": "Cloud platform that hosts the workgroup.", + "region": "Cloud region that hosts the workgroup.", + "shared_storage": "Whether shared storage is enabled.", + "tg_databases": "Databases associated with the workgroup.", + "workgroup_id": "Unique identifier of the workgroup.", + "workspaces": "Workspaces associated with the workgroup." + }, + "Workspace": { + "addons": "Add-ons enabled for the workspace.", + "agent_config": "Agent heartbeat and polling configuration.", + "auto_stop_minutes": "Idle minutes before the workspace stops automatically.", + "auto_upgrade_state": "State of the automatic version upgrade.", + "cloud_provider_id": "Unique identifier of the cloud provider configuration.", + "cloud_provider_name": "Display name of the cloud provider.", + "cloud_provider_short_id": "Short identifier of the cloud provider configuration.", + "condition_type": "Current condition reported for the workspace.", + "created_at": "Time the workspace was created.", + "creator": "User who created the workspace.", + "database_id": "Unique identifier of the attached database.", + "database_name": "Name of the attached database.", + "deleted_at": "Time the workspace was deleted.", + "desired_tg_version": "TigerGraph version the workspace is moving to.", + "display_status": "Status shown in the TigerGraph Savanna console.", + "edge_count": "Number of edges stored in the workspace.", + "enable_auto_start": "Whether the workspace starts automatically on access.", + "enable_copilot": "Whether TigerGraph CoPilot is enabled.", + "enable_ha": "Whether high availability is enabled.", + "err_message": "Error message reported for the workspace.", + "folder_statistics": "Storage statistics for the workspace.", + "graph_topology_size_bytes": "Size of the graph topology, in bytes.", + "is_rw": "Whether the workspace accepts writes.", + "last_maintenance": "Time of the last maintenance run.", + "last_modified_time": "Time the workspace was last modified.", + "maintenance_window_day_of_week": "Day of the week the maintenance window starts.", + "maintenance_window_hour_of_day": "Hour of the day the maintenance window starts.", + "maintenance_window_interval_weeks": "Number of weeks between maintenance windows.", + "maintenance_window_time_zone": "Time zone used for the maintenance window.", + "name": "Name of the workspace.", + "nginx_host": "Host name that serves the workspace endpoint.", + "org_id": "Unique identifier of the organization.", + "org_name": "Name of the organization.", + "refresh_message": "Message describing the most recent refresh.", + "refresh_status": "Status of the most recent refresh.", + "region": "Cloud region that hosts the workspace.", + "replicas": "Number of replicas provisioned for the workspace.", + "snapshot_time": "Time of the snapshot the workspace was created from.", + "solution_catalog_id": "Unique identifier of the solution catalog entry.", + "status": "Current status of the workspace.", + "tg_version": "TigerGraph version running in the workspace.", + "update_strategy": "Strategy used to apply workspace updates.", + "version_number": "Internal version number of the workspace record.", + "vertex_count": "Number of vertices stored in the workspace.", + "workgroup_id": "Unique identifier of the parent workgroup.", + "workgroup_name": "Name of the parent workgroup.", + "workspace_id": "Unique identifier of the workspace.", + "workspace_type": "Compute size and shape of the workspace." + }, + "WorkspaceAddonsRequest": { + "addons_id": "Unique identifier of the add-on.", + "enable": "Whether the add-on is enabled.", + "enable_configuration": "Configuration applied when the add-on is enabled.", + "is_free": "Whether the add-on is available at no cost.", + "unique_name": "Unique name of the add-on.", + "workspace_id": "Unique identifier of the workspace." + }, + "WorkspaceMetadata": { + "regions": "Cloud regions available to your org.", + "tgVersions": "TigerGraph versions available to your org.", + "workspaceTypes": "Workspace sizes available to your org." + }, + "WorkspaceSchedule": { + "date": "Date the action runs when the schedule does not repeat.", + "id": "Unique identifier of the schedule.", + "repeat": "How often the action repeats: daily, weekly, or weekdays.", + "repeat_on": "Days the action runs when it repeats weekly.", + "time": "Time of day the action runs.", + "timezone": "Time zone the schedule is interpreted in.", + "workspace_id": "Unique identifier of the scheduled workspace.", + "workspace_type_name": "Workspace size to apply when the action runs." + }, + "WorkspaceSize": { + "size": "Storage used by the workspace, in bytes.", + "workspace_id": "Unique identifier of the workspace." + }, + "WorkspaceType": { + "cpu": "Number of vCPUs allocated to the workspace.", + "ha": "Number of high-availability replicas.", + "memory": "Memory allocated to the workspace.", + "partition": "Number of partitions in the workspace.", + "typeName": "Name of the workspace size type." + }, + "aws.NodeGroup": { + "max_size": "Maximum number of nodes in the group.", + "min_size": "Minimum number of nodes in the group.", + "overprovisioning_factor": "Additional capacity factor reserved above the requested workload." + }, + "aws.NodeGroupConfig": { + "ng_16": "Configuration of the 16-unit node group.", + "ng_32": "Configuration of the 32-unit node group.", + "ng_48": "Configuration of the 48-unit node group.", + "ng_64": "Configuration of the 64-unit node group.", + "ng_system": "Configuration of the system node group.", + "prefetch_image_list": "Container images to prefetch onto the nodes." + } +} diff --git a/lib/api-examples.json b/lib/api-examples.json new file mode 100644 index 00000000..0b92a8a8 --- /dev/null +++ b/lib/api-examples.json @@ -0,0 +1,5 @@ +{ + "get-workgroup-details": { + "200": "{\n \"Error\": false,\n \"ErrorDetails\": [],\n \"Message\": \"Get workgroup detail successfully\",\n \"RequestID\": \"b8e0e6f2-2a51-4a3e-9f6b-0f2d9c1a7e44\",\n \"Result\": {\n \"cloud_provider_id\": \"tg-cloud-provider\",\n \"cloud_provider_name\": \"TigerGraph Cloud\",\n \"cloud_provider_status\": \"Active\",\n \"cloud_provider_type\": \"tg\",\n \"creator\": \"user@example.com\",\n \"enable_allow_list\": true,\n \"enable_application_log\": false,\n \"encryption_method\": \"TMK\",\n \"is_current_ip_allowed\": true,\n \"name\": \"Production\",\n \"org_id\": \"org-1a2b3c4d\",\n \"org_name\": \"example-org\",\n \"platform\": \"aws\",\n \"region\": \"us-west-2\",\n \"shared_storage\": false,\n \"tg_databases\": [],\n \"workgroup_id\": \"wg-1a2b3c4d\",\n \"workspaces\": []\n }\n}" + } +} \ No newline at end of file diff --git a/lib/api-page.js b/lib/api-page.js new file mode 100644 index 00000000..3d3e6b1f --- /dev/null +++ b/lib/api-page.js @@ -0,0 +1,651 @@ +'use strict' + +/** + * Builds the reference page body for one endpoint from the vendored OpenAPI + * spec: parameter and response schemas expanded in full, plus request samples + * in every language the picker offers. + * + * Attribute prose comes from the spec where it exists and from + * lib/api-descriptions.json otherwise; response examples come from + * lib/api-examples.json where they are curated and are synthesised from the + * schema where they are not. + */ + +const fs = require('fs') +const path = require('path') + +const BASE_URL = 'https://api.tgcloud.io' +// Deep enough for every schema in the current spec; only a guard against a +// pathological one. Recursion already stops when a definition repeats. +const MAX_DEPTH = 12 +const MAX_EXAMPLE_DEPTH = 4 +// Angle brackets mark a string as a slot to fill or read, not a literal value. +const STRING_PLACEHOLDER = '' + +const LANGUAGES = [ + ['curl', 'cURL', 'bash'], + ['python', 'Python', 'python'], + ['javascript', 'JavaScript', 'javascript'], + ['php', 'PHP', 'php'], + ['go', 'Go', 'go'], + ['java', 'Java', 'java'], + ['ruby', 'Ruby', 'ruby'], +] + +const spec = readJson(path.join(__dirname, '..', 'modules/savanna/modules/rest-api/_catalog/openapi.json')) +const descriptions = readJson(path.join(__dirname, 'api-descriptions.json')) +const examples = readJson(path.join(__dirname, 'api-examples.json')) + +function readJson (file) { + return JSON.parse(fs.readFileSync(file, 'utf8')) +} + +function escapeHtml (value) { + return String(value).replace(/&/g, '&').replace(//g, '>') +} + +function slugify (value) { + return String(value) + .replace(/([a-z0-9])([A-Z])/g, '$1-$2') + .toLowerCase() + .replace(/[^a-z0-9]+/g, '-') + .replace(/^-|-$/g, '') +} + +function refName (schema) { + const ref = schema && schema.$ref + return ref ? ref.replace('#/definitions/', '') : null +} + +function resolve (schema) { + const name = refName(schema) + return name ? spec.definitions[name] || {} : schema || {} +} + +/** Flattens allOf so a response reads as one object, and names its owner. */ +function flatten (schema) { + const out = { name: refName(schema), properties: {}, required: [] } + const resolved = resolve(schema) + for (const part of resolved.allOf || [resolved]) { + const inner = resolve(part) + if (!out.name) out.name = refName(part) + Object.assign(out.properties, inner.properties || {}) + out.required = out.required.concat(inner.required || []) + } + return out +} + +function typeLabel (schema) { + const resolved = resolve(schema) + if (resolved.allOf) return 'object' + if (resolved.type === 'array') return typeLabel(resolved.items) + '[]' + if (resolved.enum) return resolved.type || 'string' + if (resolved.type && resolved.type !== 'object') return resolved.type + return 'object' +} + +/** The object behind a field, once arrays are unwrapped, or null if it has no attributes. */ +function objectBehind (schema) { + const resolved = resolve(schema) + if (resolved.type === 'array') return objectBehind(resolved.items) + const flat = flatten(schema) + return Object.keys(flat.properties).length ? flat : null +} + +/** + * The line of constraints under a description: the closed set of values a + * field accepts, and any bound the spec puts on it. + */ +function facets (schema) { + const resolved = resolve(schema) + const source = resolved.type === 'array' ? resolve(resolved.items) : resolved + const parts = [] + if (source.enum) { + parts.push('Available options: ' + source.enum.map((value) => '' + escapeHtml(value) + '').join(', ')) + } + if (source.default !== undefined) parts.push('Default: ' + escapeHtml(source.default) + '') + if (source.minimum !== undefined) parts.push('Minimum: ' + escapeHtml(source.minimum) + '') + if (source.maximum !== undefined) parts.push('Maximum: ' + escapeHtml(source.maximum) + '') + return parts.length ? '

' + parts.join(' · ') + '

' : '' +} + +function describe (owner, key, schema) { + const resolved = resolve(schema) + const own = (descriptions[owner] || {})[key] + return schema.description || resolved.description || own || '' +} + +/** + * The spec's operation descriptions restate the summary ("Create a new cloud + * provider"), which leaves out the context a reader needs to tell whether an + * endpoint applies to them. An entry under _operations replaces that opening + * paragraph; the spec's own text is the fallback. + */ +function lead (endpoint, operation) { + const override = (descriptions._operations || {})[endpoint.method + ' ' + endpoint.path] + return override || operation.description || operation.summary || '' +} + +function indent (level) { + return ' '.repeat(level) +} + +function typeTags (schema, key, required) { + const tags = ['' + typeLabel(schema) + ''] + if (required.includes(key)) tags.push('required') + return tags.join('\n') +} + +/** + * Renders the attributes of an object as nested disclosures. `trail` holds the + * definitions already open above this point so a self-referencing schema stops + * instead of recursing forever. + */ +function renderChildren (owner, pad, trail, depth) { + const out = [] + for (const key of Object.keys(owner.properties).sort()) { + const schema = owner.properties[key] + const description = describe(owner.name, key, schema) + const nested = objectBehind(schema) + const open = nested && !trail.has(nested.name) && depth < MAX_DEPTH + + out.push(indent(pad) + '
') + out.push( + indent(pad + 2) + + '
' + + escapeHtml(key) + + '' + + typeTags(schema, key, owner.required).replace(/\n/g, '') + + '
' + ) + if (description) out.push(indent(pad + 2) + '

' + escapeHtml(description) + '

') + const limits = facets(schema) + if (limits) out.push(indent(pad + 2) + limits) + if (open) { + out.push(indent(pad + 2) + '
') + out.push(indent(pad + 4) + '') + out.push(indent(pad + 6) + 'Show child attributes') + out.push(indent(pad + 6) + 'Hide child attributes') + out.push(indent(pad + 4) + '') + out.push(indent(pad + 4) + '
') + out.push(...renderChildren(nested, pad + 6, new Set(trail).add(nested.name), depth + 1)) + out.push(indent(pad + 4) + '
') + out.push(indent(pad + 2) + '
') + } + out.push(indent(pad) + '
') + } + return out +} + +/** Renders one top-level attribute: anchored heading, prose, then its children. */ +function renderField (owner, key, schema, options) { + const pad = options.pad + const id = options.idPrefix + slugify(key) + const nested = objectBehind(schema) + const description = describe(owner.name, key, schema) + const out = [] + + out.push(indent(pad) + '
') + out.push(indent(pad + 2) + '
') + out.push( + indent(pad + 4) + + '#' + ) + out.push(indent(pad + 4) + '' + escapeHtml(key) + '') + for (const tag of typeTags(schema, key, owner.required).split('\n')) out.push(indent(pad + 4) + tag) + if (options.location) out.push(indent(pad + 4) + '' + options.location + '') + out.push(indent(pad + 2) + '
') + if (description) out.push(indent(pad + 2) + '

' + escapeHtml(description) + '

') + const limits = facets(schema) + if (limits) out.push(indent(pad + 2) + limits) + if (nested) { + out.push(indent(pad + 2) + '
') + out.push(indent(pad + 4) + '') + out.push(indent(pad + 6) + 'Show child attributes') + out.push(indent(pad + 6) + 'Hide child attributes') + out.push(indent(pad + 4) + '') + out.push(indent(pad + 4) + '
') + out.push(...renderChildren(nested, pad + 6, new Set([owner.name, nested.name]), 1)) + out.push(indent(pad + 4) + '
') + out.push(indent(pad + 2) + '
') + } + out.push(indent(pad) + '
') + return out +} + +/** A parameter carries its own type and description rather than a schema owner. */ +function renderParameter (parameter, pad) { + const id = 'parameter-' + slugify(parameter.name) + const out = [] + out.push(indent(pad) + '
') + out.push(indent(pad + 2) + '
') + out.push( + indent(pad + 4) + + '#' + ) + out.push(indent(pad + 4) + '' + escapeHtml(parameter.name) + '') + out.push(indent(pad + 4) + '' + (parameter.type || 'string') + '') + out.push(indent(pad + 4) + '' + parameter.in + '') + if (parameter.required) out.push(indent(pad + 4) + 'required') + out.push(indent(pad + 2) + '
') + if (parameter.description) out.push(indent(pad + 2) + '

' + escapeHtml(parameter.description) + '

') + const limits = facets(parameter) + if (limits) out.push(indent(pad + 2) + limits) + out.push(indent(pad) + '
') + return out +} + +function section (title, id, pad, body) { + return [ + indent(pad) + '
', + indent(pad + 2) + '

' + title + '

', + ...body, + indent(pad) + '
', + ] +} + +function renderAuthorizations (operation, pad) { + const out = [] + for (const requirement of operation.security || []) { + for (const name of Object.keys(requirement)) { + const scheme = spec.securityDefinitions[name] + if (!scheme) continue + out.push(indent(pad + 2) + '
') + out.push(indent(pad + 4) + '
') + out.push(indent(pad + 6) + '' + escapeHtml(scheme.name) + '') + out.push(indent(pad + 6) + 'string') + out.push(indent(pad + 6) + '' + scheme.in + '') + out.push(indent(pad + 6) + 'required') + out.push(indent(pad + 4) + '
') + out.push( + indent(pad + 4) + + '

' + escapeHtml(scheme.description) + '. Send the key in the ' + + escapeHtml(scheme.name) + ' request ' + scheme.in + '.

' + ) + out.push(indent(pad + 4) + 'Create an API key') + out.push(indent(pad + 2) + '
') + } + } + return out.length ? section('Authorizations', 'api-authorizations-title', pad, out) : [] +} + +function renderParameterSection (parameters, location, title, pad) { + const matching = parameters.filter((parameter) => parameter.in === location) + if (!matching.length) return [] + const body = [] + for (const parameter of matching) body.push(...renderParameter(parameter, pad + 2)) + return section(title, 'api-' + location + '-parameters-title', pad, body) +} + +function renderBodySection (parameters, pad) { + const parameter = parameters.find((candidate) => candidate.in === 'body') + if (!parameter) return [] + const owner = flatten(parameter.schema) + const keys = Object.keys(owner.properties) + if (!keys.length) return [] + const body = [] + for (const key of keys.sort()) { + body.push( + ...renderField(owner, key, owner.properties[key], { pad: pad + 2, idPrefix: 'body-' }) + ) + } + return section('Body', 'api-body-title', pad, body) +} + +function statusCodes (operation) { + return Object.keys(operation.responses || {}).sort() +} + +/** The status control is a menu only when there is more than one response. */ +function renderStatusControl (codes, pad) { + if (codes.length < 2) return [indent(pad) + '' + codes[0] + ''] + const out = [] + out.push(indent(pad) + '
') + out.push( + indent(pad + 2) + + '') + out.push(indent(pad + 2) + '') + out.push(indent(pad) + '
') + return out +} + +function renderResponseSection (operation, pad) { + const codes = statusCodes(operation) + if (!codes.length) return [] + // A no-content response has no media type to advertise, whatever the + // operation declares it produces. + const returnsBody = codes.some((code) => (operation.responses[code] || {}).schema) + const produces = returnsBody ? (operation.produces || ['application/json'])[0] : '' + const out = [] + + out.push(indent(pad) + '
') + out.push(indent(pad + 2) + '
') + out.push(indent(pad + 4) + '

Response

') + out.push(indent(pad + 4) + '
') + out.push(...renderStatusControl(codes, pad + 6)) + if (produces) out.push(indent(pad + 6) + '' + produces + '') + out.push(indent(pad + 4) + '
') + out.push(indent(pad + 2) + '
') + + for (const code of codes) { + const schema = (operation.responses[code] || {}).schema + const owner = schema ? flatten(schema) : { name: null, properties: {}, required: [] } + const keys = Object.keys(owner.properties).sort() + const prefix = codes.length > 1 ? 'response-' + code + '-' : 'response-' + const body = [] + if (keys.length) { + for (const key of keys) { + body.push(...renderField(owner, key, owner.properties[key], { pad: pad + 4, idPrefix: prefix })) + } + } else { + const note = (operation.responses[code] || {}).description || 'No content.' + body.push(indent(pad + 4) + '

' + escapeHtml(note) + '

') + } + if (codes.length > 1) { + out.push( + indent(pad + 2) + + '
' + ) + out.push(...body) + out.push(indent(pad + 2) + '
') + } else { + out.push(...body) + } + } + out.push(indent(pad) + '
') + return out +} + +/** Builds a representative value so every page ships a response example. */ +function sampleValue (schema, trail, depth) { + const resolved = resolve(schema) + if (resolved.allOf || (resolved.properties && Object.keys(resolved.properties).length)) { + const owner = flatten(schema) + if (trail.has(owner.name) || depth > MAX_EXAMPLE_DEPTH) return {} + const next = new Set(trail).add(owner.name) + const out = {} + for (const key of Object.keys(owner.properties).sort()) { + out[key] = sampleValue(owner.properties[key], next, depth + 1) + } + return out + } + if (resolved.type === 'array') { + const item = objectBehind(resolved.items) + if (item && (trail.has(item.name) || depth >= MAX_EXAMPLE_DEPTH)) return [] + return [sampleValue(resolved.items, trail, depth + 1)] + } + if (resolved.enum) return resolved.enum[0] + if (resolved.type === 'boolean') return false + if (resolved.type === 'integer' || resolved.type === 'number') return 0 + if (resolved.format === 'date-time') return '2026-01-01T00:00:00Z' + return STRING_PLACEHOLDER +} + +/** + * Most operations declare the same envelope for success and failure, so the + * schema alone cannot tell the two apart. The sample fills in the fields that + * do differ: an error carries Error true with ErrorDetails and no Result, and a + * success carries neither the flag nor the details. + */ +function asStatus (sample, code) { + if (!sample || typeof sample !== 'object' || Array.isArray(sample)) return sample + const failed = Number(code) >= 400 + const out = { ...sample } + if ('Error' in out) out.Error = failed + if ('ErrorDetails' in out && !failed) out.ErrorDetails = [] + if ('Result' in out && failed) delete out.Result + return out +} + +function responseExample (operation, code, slug) { + const curated = (examples[slug] || {})[code] + if (curated) return curated + const schema = (operation.responses[code] || {}).schema + if (!schema) return escapeHtml((operation.responses[code] || {}).description || 'No content') + const sample = asStatus(sampleValue(schema, new Set(), 0), code) + return escapeHtml(JSON.stringify(sample, null, 2)) +} + +function requestBodyJson (parameters) { + const parameter = parameters.find((candidate) => candidate.in === 'body') + if (!parameter) return null + return JSON.stringify(sampleValue(parameter.schema, new Set(), MAX_EXAMPLE_DEPTH - 1), null, 2) +} + +function reindent (value, pad) { + return value.split('\n').join('\n' + ' '.repeat(pad)) +} + +function requestSample (language, method, url, body) { + const key = '' + const verb = method.toUpperCase() + switch (language) { + case 'curl': + return [ + 'curl --request ' + verb + ' \\', + " --url '" + url + "' \\", + " --header 'x-api-key: " + key + "'" + (body ? ' \\' : ''), + ...(body ? [" --header 'Content-Type: application/json' \\", " --data '" + reindent(body, 2) + "'"] : []), + ].join('\n') + case 'python': + return [ + 'import requests', + '', + 'url = "' + url + '"', + 'headers = {"x-api-key": "' + key + '"}', + ...(body ? ['payload = ' + body.replace(/\btrue\b/g, 'True').replace(/\bfalse\b/g, 'False'), ''] : []), + 'response = requests.' + method.toLowerCase() + '(url, headers=headers' + (body ? ', json=payload' : '') + ')', + 'print(response.json())', + ].join('\n') + case 'javascript': + return [ + 'const response = await fetch(', + ' "' + url + '",', + ' {', + ' method: "' + verb + '",', + ' headers: { "x-api-key": "' + key + '"' + (body ? ', "Content-Type": "application/json"' : '') + ' },', + ...(body ? [' body: JSON.stringify(' + reindent(body, 4) + '),'] : []), + ' }', + ')', + 'console.log(await response.json())', + ].join('\n') + case 'php': + return [ + '') + out.push(indent(pad + 2) + '
') + out.push(indent(pad + 4) + '
') + out.push(indent(pad + 6) + '' + escapeHtml(endpoint.label) + '') + out.push(indent(pad + 6) + '
') + out.push(indent(pad + 8) + '
') + out.push( + indent(pad + 10) + + '') + out.push(indent(pad + 10) + '') + out.push(indent(pad + 8) + '
') + out.push( + indent(pad + 8) + + '') + out.push(indent(pad + 6) + '
') + out.push(indent(pad + 4) + '
') + out.push(indent(pad + 4) + '
') + for (const [id, , highlight] of LANGUAGES) { + out.push( + indent(pad + 6) + '
' +
+        escapeHtml(requestSample(id, endpoint.method, url, body)) + '
' + ) + } + out.push(indent(pad + 4) + '
') + out.push(indent(pad + 2) + '
') + + out.push(indent(pad + 2) + '
') + out.push(indent(pad + 4) + '
') + out.push(indent(pad + 6) + '
') + for (const code of codes) { + out.push( + indent(pad + 8) + '' + ) + } + out.push(indent(pad + 6) + '
') + out.push(indent(pad + 6) + '
') + out.push( + indent(pad + 6) + + ' ') + out.push(indent(pad + 6) + '
') + out.push(indent(pad + 4) + '
') + out.push(indent(pad + 4) + '
') + for (const code of codes) { + out.push( + indent(pad + 6) + '
' +
+        responseExample(operation, code, endpoint.slug) + '
' + ) + } + out.push(indent(pad + 4) + '
') + out.push(indent(pad + 2) + '
') + out.push(indent(pad) + '') + return out +} + +function operationFor (endpoint) { + const operation = (spec.paths[endpoint.path] || {})[endpoint.method.toLowerCase()] + if (!operation) throw new Error('no spec entry for ' + endpoint.method + ' ' + endpoint.path) + return operation +} + +function renderApiPage (endpoint) { + const operation = operationFor(endpoint) + const parameters = operation.parameters || [] + const intro = lead(endpoint, operation) + const out = [] + + out.push('
') + if (intro) out.push('

' + escapeHtml(intro.replace(/\.?$/, '.')) + '

') + out.push('') + out.push('
') + out.push('
') + out.push('
') + out.push('
') + out.push( + ' ' + endpoint.method + '' + ) + out.push(' ' + escapeHtml(endpoint.path) + '') + out.push( + '
\n' + + ' ' + ) + out.push('
') + out.push('') + out.push(...renderAuthorizations(operation, 6)) + out.push(...renderParameterSection(parameters, 'path', 'Path parameters', 6)) + out.push(...renderParameterSection(parameters, 'query', 'Query parameters', 6)) + out.push(...renderParameterSection(parameters, 'header', 'Header parameters', 6)) + out.push(...renderBodySection(parameters, 6)) + out.push(...renderResponseSection(operation, 6)) + out.push('
') + out.push('') + out.push(...renderExamples(endpoint, operation, 4)) + out.push('
') + out.push('
') + return out.join('\n') +} + +module.exports = { renderApiPage } diff --git a/lib/split-endpoints.js b/lib/split-endpoints.js new file mode 100644 index 00000000..c27e625d --- /dev/null +++ b/lib/split-endpoints.js @@ -0,0 +1,248 @@ +'use strict' + +/** + * Writes one reference page per endpoint, then the module nav. + * + * Source of truth is modules/savanna/modules/rest-api/_catalog: endpoints.adoc + * supplies the nav grouping and the anchors older deep links point at, and + * openapi.json supplies everything on the page itself. Replace both when the + * API is regenerated, then run `npm run endpoints:split`. Everything under + * pages/endpoints/ is overwritten, so edit the catalog, never the pages. + * + * Usage: node lib/split-endpoints.js [--check] + */ + +const fs = require('fs') +const path = require('path') +const { renderApiPage } = require('./api-page') + +const MODULE_DIR = path.join(__dirname, '..', 'modules/savanna/modules/rest-api') +const CATALOG = path.join(MODULE_DIR, '_catalog/endpoints.adoc') +const PAGES_DIR = path.join(MODULE_DIR, 'pages') +const ENDPOINTS_DIR = path.join(PAGES_DIR, 'endpoints') +const NAV = path.join(MODULE_DIR, 'nav.adoc') + +// Swagger tag -> nav group, in the order the groups should appear. +const GROUPS = [ + ['CloudProvider', 'Cloud providers'], + ['Workgroup', 'Workgroups'], + ['Workspace', 'Workspaces'], + ['Add-ons', 'Add-ons'], + ['WorkspaceSchedule', 'Workspace schedules'], + ['Database', 'Databases'], + ['Backup', 'Backups'], + ['AllowedIP', 'IP allow list'], + ['DatabaseUser', 'In-database users'], + ['Org', 'Organization'], +] + +const GENERATED = [ + '// Generated by lib/split-endpoints.js. Do not edit.', + '// Schemas and samples come from _catalog/openapi.json; attribute prose that', + '// the spec omits lives in lib/api-descriptions.json.', +].join('\n') + +function slugify (label) { + return label + .toLowerCase() + .replace(/['’]/g, '') + .replace(/[^a-z0-9]+/g, '-') + .replace(/^-|-$/g, '') +} + +// This map is the explicit public API allowlist as well as the source of +// friendly names. Object order is the nav order within each resource group. +// Do not add a route merely because it appears in the service Swagger file: +// only supported customer-facing contracts belong here. +const LABELS = { + 'POST /controller/v4/v2/cloud-providers': 'Create a cloud provider', + 'GET /controller/v4/v2/cloud-providers': 'List cloud providers', + 'GET /controller/v4/v2/cloud-providers/public': 'List public cloud providers', + 'POST /controller/v4/v2/cloud-providers/validate': 'Validate a cloud provider', + 'GET /controller/v4/v2/cloud-providers/{cloudProviderID}': 'Get cloud provider details', + 'PUT /controller/v4/v2/cloud-providers/{cloudProviderID}': 'Update a cloud provider', + 'DELETE /controller/v4/v2/cloud-providers/{cloudProviderID}': 'Delete a cloud provider', + 'PUT /controller/v4/v2/cloud-providers/{cloudProviderID}/upgrade': 'Upgrade a cloud provider', + 'POST /controller/v4/v2/workgroups': 'Create a workgroup', + 'GET /controller/v4/v2/workgroups': 'List workgroups', + 'GET /controller/v4/v2/workgroups/{workgroupID}': 'Get workgroup details', + 'PUT /controller/v4/v2/workgroups/{workgroupID}': 'Update a workgroup', + 'DELETE /controller/v4/v2/workgroups/{workgroupID}': 'Delete a workgroup', + 'POST /controller/v4/v2/workgroups/{workgroupID}/workspaces': 'Create a workspace', + 'GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}': 'Get workspace details', + 'PUT /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}': 'Update a workspace', + 'DELETE /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}': 'Delete a workspace', + 'GET /controller/v4/v2/addons/meta': 'List available add-ons', + 'POST /controller/v4/v2/addons/{addonsID}/install': 'Install an add-on', + 'GET /controller/v4/v2/installed-addons': 'List installed add-ons', + 'GET /controller/v4/v2/installed-addons/{installedAddonsID}': 'Get installed add-on details', + 'GET /controller/v4/v2/addons/{addonsID}/workspaces': 'List add-on workspaces', + 'GET /controller/v4/v2/installed-addons/{installedAddonsID}/configs/{configName}': 'List add-on configurations', + 'POST /controller/v4/v2/add-ons/{installedAddonsID}/configs': 'Create an add-on configuration', + 'PUT /controller/v4/v2/add-ons/{installedAddonsID}/configs/{configID}': 'Update an add-on configuration', + 'DELETE /controller/v4/v2/add-ons/{installedAddonsID}/configs/{configID}': 'Delete an add-on configuration', + 'POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/resume': 'Resume a workspace', + 'POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/pause': 'Pause a workspace', + 'POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/refresh': 'Refresh a workspace', + 'POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules': 'Create a workspace schedule', + 'GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules': 'List workspace schedules', + 'PUT /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules/{scheduleID}': 'Update a workspace schedule', + 'DELETE /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules/{scheduleID}': 'Delete a workspace schedule', + 'GET /controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID}': 'Get database details', + 'PUT /controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID}': 'Update a database', + 'DELETE /controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID}': 'Delete a database', + 'GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups': 'List backups', + 'POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/restore': 'Restore a backup', + 'GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/{job}/status': 'Get backup restore status', + 'DELETE /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups': 'Delete a backup', + 'GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/schedule': 'Get backup schedule', + 'POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/schedule': 'Set backup schedule', + 'POST /controller/v4/v2/workgroups/{workgroupID}/allow_list': 'Add an allowed IP', + 'GET /controller/v4/v2/workgroups/{workgroupID}/allow_list': 'List allowed IPs', + 'GET /controller/v4/v2/workgroups/{workgroupID}/allow_list/current': 'Check the current IP', + 'PUT /controller/v4/v2/workgroups/{workgroupID}/allow_list/{id}': 'Update an allowed IP', + 'DELETE /controller/v4/v2/workgroups/{workgroupID}/allow_list/{id}': 'Delete an allowed IP', + 'PUT /controller/v4/v2/workgroups/{workgroupID}/allow_list/enable': 'Enable the allow list', + 'PUT /controller/v4/v2/workgroups/{workgroupID}/allow_list/disable': 'Disable the allow list', + 'POST /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser': 'Create an in-database user', + 'GET /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser': 'List in-database users', + 'PUT /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser': "Update an in-database user's password", + 'DELETE /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser': 'Delete an in-database user', + 'GET /controller/v4/v2/workspaces/meta': 'Get supported workspace options', + 'GET /users': 'List org users', + 'PUT /users/{userId}/roles': "Update an org user's role", +} + +const PUBLIC_ENDPOINTS = new Set(Object.keys(LABELS)) +const LABEL_ORDER = Object.fromEntries([...PUBLIC_ENDPOINTS].map((request, index) => [request, index])) + +function parseCatalog (text) { + const lines = text.split('\n') + const endpoints = [] + let i = 0 + while (i < lines.length) { + const anchor = /^\[\[(_https[^\]]+)\]\]$/.exec(lines[i]) + if (!anchor || !(lines[i + 1] || '').startsWith('== ')) { + i += 1 + continue + } + const endpoint = { anchor: anchor[1], summary: lines[i + 1].slice(3).trim(), tags: [] } + endpoints.push(endpoint) + i += 2 + // The request line sits in a literal block right below the title. + if ((lines[i] || '').trim() === '....') { + const request = /^(GET|POST|PUT|PATCH|DELETE) (\S+)$/.exec((lines[i + 1] || '').trim()) + if (request) { + endpoint.method = request[1] + endpoint.path = request[2].replace('https://api.tgcloud.io', '') + } + i += 2 + while (i < lines.length && lines[i].trim() !== '....') i += 1 + i += 1 + } + while (i < lines.length && !(/^\[\[_https[^\]]+\]\]$/.test(lines[i]) && (lines[i + 1] || '').startsWith('== '))) { + if (lines[i].trim().startsWith('* ') && (lines[i - 2] || '').trim() === '==== Tags') { + endpoint.tags.push(lines[i].trim().slice(2)) + } + i += 1 + } + } + return endpoints +} + +function renderPage (endpoint, label) { + return [ + '= ' + label, + ':page-role: api-endpoint-detail', + GENERATED, + '', + '++++', + renderApiPage(endpoint), + '++++', + '', + ].join('\n') +} + +function renderNav (grouped) { + const out = [ + GENERATED, + '* REST API reference', + '** xref:index.adoc[Overview]', + '** xref:rest-api:create-api-key.adoc[Create an API key]', + ] + // Resource groups sit beside the other pages: one less level of indent + // leaves room for the method badge. + for (const [, title] of GROUPS) { + out.push('** ' + title) + for (const endpoint of grouped.get(title)) { + out.push('*** xref:rest-api:endpoints/' + endpoint.slug + '.adoc[' + endpoint.method + ' ' + endpoint.label + ']') + } + } + return out.join('\n') + '\n' +} + +/** Points existing deep links at the new per-endpoint pages. */ +function rewriteIncomingLinks (endpoints) { + const bySlug = new Map(endpoints.map((e) => [e.anchor, e.slug])) + const files = ['index.adoc', 'data-plane-apis.adoc', 'create-api-key.adoc'] + const changed = [] + for (const name of files) { + const file = path.join(PAGES_DIR, name) + if (!fs.existsSync(file)) continue + const before = fs.readFileSync(file, 'utf8') + const after = before.replace( + /xref:((?:savanna:)?rest-api:)endpoints\.adoc#(_https[^[]+)\[/g, + (match, prefix, anchor) => (bySlug.has(anchor) ? 'xref:' + prefix + 'endpoints/' + bySlug.get(anchor) + '.adoc[' : match) + ) + if (after !== before) { + fs.writeFileSync(file, after) + changed.push(name) + } + } + return changed +} + +function main () { + const endpoints = parseCatalog(fs.readFileSync(CATALOG, 'utf8')) + const groupTitles = new Map(GROUPS) + const grouped = new Map(GROUPS.map(([, title]) => [title, []])) + const slugs = new Set() + const seen = new Set() + + for (const endpoint of endpoints) { + const tag = endpoint.tags[0] + if (!groupTitles.has(tag)) throw new Error('unmapped tag "' + tag + '" for ' + endpoint.anchor) + if (!endpoint.method) throw new Error('no request line for ' + endpoint.anchor) + const request = endpoint.method + ' ' + endpoint.path + if (!PUBLIC_ENDPOINTS.has(request)) { + throw new Error('"' + request + '" is not in the public API allowlist') + } + seen.add(request) + endpoint.label = LABELS[request] + endpoint.slug = slugify(endpoint.label) + if (slugs.has(endpoint.slug)) throw new Error('duplicate slug ' + endpoint.slug) + slugs.add(endpoint.slug) + grouped.get(groupTitles.get(tag)).push(endpoint) + } + for (const request of PUBLIC_ENDPOINTS) { + if (!seen.has(request)) { + throw new Error('allowlist endpoint "' + request + '" is missing from the catalog') + } + } + for (const list of grouped.values()) { + list.sort((a, b) => LABEL_ORDER[a.method + ' ' + a.path] - LABEL_ORDER[b.method + ' ' + b.path]) + } + + fs.rmSync(ENDPOINTS_DIR, { recursive: true, force: true }) + fs.mkdirSync(ENDPOINTS_DIR, { recursive: true }) + for (const endpoint of endpoints) { + fs.writeFileSync(path.join(ENDPOINTS_DIR, endpoint.slug + '.adoc'), renderPage(endpoint, endpoint.label)) + } + fs.writeFileSync(NAV, renderNav(grouped)) + const rewritten = rewriteIncomingLinks(endpoints) + + console.log('wrote ' + endpoints.length + ' endpoint pages and nav') + if (rewritten.length) console.log('rewrote deep links in ' + rewritten.join(', ')) +} + +main() diff --git a/modules/savanna/modules/administration/nav.adoc b/modules/savanna/modules/administration/nav.adoc index e13898c1..77e5878a 100644 --- a/modules/savanna/modules/administration/nav.adoc +++ b/modules/savanna/modules/administration/nav.adoc @@ -15,5 +15,5 @@ ** Settings *** xref:administration:settings/index.adoc[Overview] *** xref:administration:settings/how2-use-organization-mgnt.adoc[Organization management] -*** xref:administration:settings/how2-create-api-key.adoc[API keys] +*** xref:savanna:rest-api:create-api-key.adoc[API keys] *** xref:administration:settings/how2-create-database-secret.adoc[Database secrets] diff --git a/modules/savanna/modules/administration/pages/index.adoc b/modules/savanna/modules/administration/pages/index.adoc index 3f7466cc..01f7fea6 100644 --- a/modules/savanna/modules/administration/pages/index.adoc +++ b/modules/savanna/modules/administration/pages/index.adoc @@ -20,7 +20,7 @@ xref:savanna:administration:settings/how2-use-organization-mgnt.adoc[Organizatio Configure organization-level options and preferences. ¦ -xref:savanna:administration:settings/how2-create-api-key.adoc[Create an API key] +xref:savanna:rest-api:create-api-key.adoc[Create an API key] Authenticate scripts and services against the control plane. |=== diff --git a/modules/savanna/modules/administration/pages/settings/how2-create-api-key.adoc b/modules/savanna/modules/administration/pages/settings/how2-create-api-key.adoc deleted file mode 100644 index fd2f7e04..00000000 --- a/modules/savanna/modules/administration/pages/settings/how2-create-api-key.adoc +++ /dev/null @@ -1,48 +0,0 @@ -= API Keys -:experimental: - -As an organization administrator, you have access to organization management features that allow you to configure organization settings. - -[IMPORTANT] -==== -The TigerGraph Savanna REST API is currently in preview version. Features and endpoints may change as the API evolves. -==== - -== Overview - -API keys are essential for authenticating and securing access to the TigerGraph Savanna REST API. This guide will walk you through the steps to create, configure, and manage your API keys. - -== Creating an API Key - -To create an API key, follow these steps: - -.1. **Navigate to Orgnization Settings:** - - Select the `Admin` → `Settings` menu on the navigation bar. - - If you cannot see the menu, please ask your organization administrator for access. - -.2. **Access the API Keys Section:** - - In the settings dashboard, find and click on the `API Keys` tab at the top. - -.3. **Create a New API Key:** - - Click on the btn:[ Create API Keys] button. - - Provide a name or description for the API key to help you identify its purpose later. - - Select the permissions you want to grant to the API key. - - Optionally, set an expiration date for the API key for added security. - -image::create-api-key.png[] - -.4. **Save the API Key:** - - Once the API key is generated, copy it and store it in a secure location. You will not be able to view this key again after you leave the page. - -[NOTE] -==== -Treat your API key like a password. Do not share it or expose it in your code or public repositories. -==== - -== Next Steps - -Next, continue on to learn about xref:savanna:rest-api:authentication.adoc[] or xref:savanna:rest-api:endpoints.adoc[] in TigerGraph Savanna. - -Return to the xref:savanna:overview:index.adoc[Overview] page for a different topic. - - diff --git a/modules/savanna/modules/administration/pages/settings/how2-create-database-secret.adoc b/modules/savanna/modules/administration/pages/settings/how2-create-database-secret.adoc index c107aa15..3055a810 100644 --- a/modules/savanna/modules/administration/pages/settings/how2-create-database-secret.adoc +++ b/modules/savanna/modules/administration/pages/settings/how2-create-database-secret.adoc @@ -33,4 +33,4 @@ A database secret does not expire and remains valid until you delete or revoke i == Where to go next * For secrets in Admin Portal or GraphStudio, see https://www.tigergraph.com/docs/gui/4.3/admin-portal/management/user-management/#manage-secrets[Manage secrets^] and https://www.tigergraph.com/docs/tigergraph-server/4.3/user-access/user-credentials/#_create_a_secret[Create a secret^]. -* Create control-plane credentials instead: xref:savanna:administration:settings/how2-create-api-key.adoc[API keys]. +* Create control-plane credentials instead: xref:savanna:rest-api:create-api-key.adoc[API keys]. diff --git a/modules/savanna/modules/administration/pages/settings/index.adoc b/modules/savanna/modules/administration/pages/settings/index.adoc index 64419681..45da5788 100644 --- a/modules/savanna/modules/administration/pages/settings/index.adoc +++ b/modules/savanna/modules/administration/pages/settings/index.adoc @@ -12,7 +12,7 @@ xref:savanna:administration:settings/how2-use-organization-mgnt.adoc[Organizatio Configure organization-level options and preferences. ¦ -xref:savanna:administration:settings/how2-create-api-key.adoc[Create an API key] +xref:savanna:rest-api:create-api-key.adoc[Create an API key] Authenticate scripts and services against the control plane. ¦ diff --git a/modules/savanna/modules/overview/pages/index.adoc b/modules/savanna/modules/overview/pages/index.adoc index 5d744a6a..a281e0ae 100644 --- a/modules/savanna/modules/overview/pages/index.adoc +++ b/modules/savanna/modules/overview/pages/index.adoc @@ -34,7 +34,7 @@ Start with the core graph workflow. Model your domain, load data, query it, and * xref:savanna:graph-development:load-data/index.adoc[Load data] from local files or connect to S3, GCS, Azure Blob, Snowflake, JDBC, and other sources. * xref:savanna:graph-development:gsql-editor/index.adoc[Write and run GSQL] to create, install, and run graph queries in a live workspace. * xref:savanna:workgroup-workspace:workspaces/connect-via-api.adoc[Query the graph from code] with generated curl, Python, or JavaScript examples for the graph data plane. -* xref:savanna:rest-api:authentication.adoc[Manage Savanna through the REST API] by authenticating to the control plane for workgroups, workspaces, and organization resources. +* xref:savanna:rest-api:index.adoc[Manage Savanna through the REST API] to provision workgroups, workspaces, and organization resources. == Where to go next diff --git a/modules/savanna/modules/rest-api/pages/endpoints.adoc b/modules/savanna/modules/rest-api/_catalog/endpoints.adoc similarity index 84% rename from modules/savanna/modules/rest-api/pages/endpoints.adoc rename to modules/savanna/modules/rest-api/_catalog/endpoints.adoc index 0427d505..d266dde3 100644 --- a/modules/savanna/modules/rest-api/pages/endpoints.adoc +++ b/modules/savanna/modules/rest-api/_catalog/endpoints.adoc @@ -1,11 +1,9 @@ [[_paths]] -= Savanna REST Endpoints += Endpoint reference :description: Reference guide for Savanna's REST endpoints -== Endpoints - [[_https_api_tgcloud_io_controller_v4_v2_workgroups_post]] -=== Create workgroups in your org +== Create workgroups in your org .... POST https://api.tgcloud.io/controller/v4/v2/workgroups .... @@ -68,7 +66,7 @@ __optional__|<> [[_https_api_tgcloud_io_controller_v4_v2_workgroups_get]] -=== Get workgroups for your org +== Get workgroups for your org .... GET https://api.tgcloud.io/controller/v4/v2/workgroups .... @@ -121,7 +119,7 @@ __optional__|< <> > array [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_get]] -=== Get workgroup detail in your org +== Get workgroup detail in your org .... GET https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID} .... @@ -184,7 +182,7 @@ __optional__|<> [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_put]] -=== Update workgroups in your org +== Update workgroups in your org .... PUT https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID} .... @@ -248,7 +246,7 @@ __optional__|<> [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_delete]] -=== Delete workgroup detail in your org +== Delete workgroup detail in your org .... DELETE https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID} .... @@ -311,7 +309,7 @@ __optional__|string [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_allow_list_post]] -=== Add Allowed IP +== Add Allowed IP .... POST https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/allow_list .... @@ -413,7 +411,7 @@ __optional__|string [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_allow_list_get]] -=== List Allowed IPs +== List Allowed IPs .... GET https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/allow_list .... @@ -495,7 +493,7 @@ __optional__|string [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_allow_list_current_get]] -=== Get Current IP +== Get Current IP .... GET https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/allow_list/current .... @@ -589,7 +587,7 @@ __optional__|string [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_allow_list_disable_put]] -=== Disable Allow List +== Disable Allow List .... PUT https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/allow_list/disable .... @@ -671,7 +669,7 @@ __optional__|string [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_allow_list_enable_put]] -=== Enable Allow List +== Enable Allow List .... PUT https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/allow_list/enable .... @@ -753,7 +751,7 @@ __optional__|string [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_allow_list_id_put]] -=== Update Allowed IP +== Update Allowed IP .... PUT https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/allow_list/{id} .... @@ -858,7 +856,7 @@ __optional__|string [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_allow_list_id_delete]] -=== Delete Allowed IP +== Delete Allowed IP .... DELETE https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/allow_list/{id} .... @@ -942,7 +940,7 @@ __optional__|string [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_databases_databaseid_get]] -=== Get database in workgroup +== Get database in workgroup .... GET https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID} .... @@ -1007,7 +1005,7 @@ __optional__|<> [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_databases_databaseid_put]] -=== Update database in workgroup +== Update database in workgroup .... PUT https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID} .... @@ -1074,7 +1072,7 @@ __optional__|<> [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_databases_databaseid_delete]] -=== Delete database in workgroup +== Delete database in workgroup .... DELETE https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID} .... @@ -1121,7 +1119,7 @@ __required__|Workgroup ID|string [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_post]] -=== Create workspace in workgroup +== Create workspace in workgroup .... POST https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces .... @@ -1186,7 +1184,7 @@ __optional__|<> [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_get]] -=== Get workspace in workgroup +== Get workspace in workgroup .... GET https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID} .... @@ -1251,7 +1249,7 @@ __optional__|<> [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_put]] -=== Update workspace in workgroup +== Update workspace in workgroup .... PUT https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID} .... @@ -1318,7 +1316,7 @@ __optional__|<> [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_delete]] -=== Delete workspace in workgroup +== Delete workspace in workgroup .... DELETE https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID} .... @@ -1365,7 +1363,7 @@ __required__|Workspace ID|string [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_backups_delete]] -=== Delete a backup +== Delete a backup .... DELETE https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups .... @@ -1416,7 +1414,7 @@ __required__|Delete Backup Request|<> [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_dbuser_post]] -=== Create in-database GSQL user +== Create in-database GSQL user .... POST https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser .... @@ -1605,7 +1603,7 @@ __optional__|<> [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_dbuser_get]] -=== List in-database GSQL users +== List in-database GSQL users .... GET https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser .... @@ -1666,7 +1664,7 @@ __optional__|< <> > array [[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_dbuser_put]] -=== Update in-database GSQL user password +== Update in-database GSQL user password .... PUT https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser .... @@ -1717,7 +1715,7 @@ __required__|In-database user request|<> > array [[_https_api_tgcloud_io_controller_v4_v2_workspaces_workspaceid_backups_restore_job_status_get]] -=== Get backup restore status +== Get backup restore status .... -GET https://api.tgcloud.io/controller/v4/v2/workspaces/{workspaceID}/backups/{job}/status +GET https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/{job}/status .... [discrete] @@ -2041,6 +2254,8 @@ Get the status of a backup restore job [options="header", cols=".^2a,.^3a,.^9a,.^4a"] |=== |Type|Name|Description|Schema +|**Path**|**workgroupID** + +__required__|Workgroup ID|string |**Path**|**job** + __required__|Job ID|string |**Path**|**workspaceID** + @@ -2091,7 +2306,7 @@ __optional__|<> * Backup [[_https_api_tgcloud_io_controller_v4_v2_workspaces_workspaceid_backups_schedule_get]] -=== Get backup schedule +== Get backup schedule .... GET https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/schedule .... @@ -2156,8 +2371,77 @@ __optional__|<> * Backup -[[_https_api_tgcloud_io_controller_v4_v2_workspaces_workspaceid_schedules_get]] -=== Retrieve workspace schedule +[[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_post]] +== Create a new workspace schedule +.... +POST https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules +.... + +[discrete] +==== Description +Create a new workspace schedule for a given workspace + +[discrete] +==== Parameters + +[options="header", cols=".^2a,.^3a,.^9a,.^4a"] +|=== +|Type|Name|Description|Schema +|**Path**|**workgroupID** + +__required__|Workgroup ID|string +|**Path**|**workspaceID** + +__required__|Workspace ID|string +|**Body**|**body** + +__required__|Workspace Schedule|<> +|=== + +[discrete] +==== Responses + +[options="header", cols=".^2a,.^14a,.^4a"] +|=== +|HTTP Code|Description|Schema +|**200**|OK|<<_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_post_response_200,Response 200>> +|**400**|Bad Request|<> +|**500**|Internal Server Error|<> +|=== + +[[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_post_response_200]] +**Response 200** + +[options="header", cols=".^3a,.^4a"] +|=== +|Name|Schema +|**Error** + +__optional__|boolean +|**ErrorDetails** + +__optional__|< <> > array +|**Message** + +__optional__|string +|**RequestID** + +__optional__|string +|**Result** + +__optional__|<> +|=== + +[discrete] +==== Consumes + +* `application/json` + +[discrete] +==== Produces + +* `application/json` + +[discrete] +==== Tags + +* WorkspaceSchedule + + +[[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_get]] +== Retrieve workspace schedule .... GET https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules .... @@ -2184,11 +2468,11 @@ __required__|Workspace ID|string [options="header", cols=".^2a,.^14a,.^4a"] |=== |HTTP Code|Description|Schema -|**200**|OK|<<_https_api_tgcloud_io_controller_v4_v2_workspaces_workspaceid_schedules_get_response_200,Response 200>> +|**200**|OK|<<_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_get_response_200,Response 200>> |**500**|Internal Server Error|<> |=== -[[_https_api_tgcloud_io_controller_v4_v2_workspaces_workspaceid_schedules_get_response_200]] +[[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_get_response_200]] **Response 200** [options="header", cols=".^3a,.^4a"] @@ -2203,7 +2487,7 @@ __optional__|string |**RequestID** + __optional__|string |**Result** + -__optional__|string +__optional__|< <> > array |=== [discrete] @@ -2217,10 +2501,10 @@ __optional__|string * WorkspaceSchedule -[[_https_api_tgcloud_io_controller_v4_v2_workspaces_workspaceid_schedules_schedule_id_put]] -=== Update an existing workspace schedule +[[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_scheduleid_put]] +== Update an existing workspace schedule .... -POST https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/schedule +PUT https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules/{scheduleID} .... [discrete] @@ -2237,6 +2521,8 @@ Update an existing workspace schedule for a given workspace __required__|Workgroup ID|string |**Path**|**workspaceID** + __required__|Workspace ID|string +|**Path**|**scheduleID** + +__required__|Schedule ID|string |**Body**|**body** + __required__|Workspace Schedule|<> |=== @@ -2247,12 +2533,12 @@ __required__|Workspace Schedule|<> +|**200**|OK|<<_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_scheduleid_put_response_200,Response 200>> |**400**|Bad Request|<> |**500**|Internal Server Error|<> |=== -[[_https_api_tgcloud_io_controller_v4_v2_workspaces_workspaceid_schedules_schedule_id_put_response_200]] +[[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_scheduleid_put_response_200]] **Response 200** [options="header", cols=".^3a,.^4a"] @@ -2267,7 +2553,7 @@ __optional__|string |**RequestID** + __optional__|string |**Result** + -__optional__|string +__optional__|<> |=== [discrete] @@ -2286,10 +2572,10 @@ __optional__|string * WorkspaceSchedule -[[_https_api_tgcloud_io_controller_v4_v2_workspaces_workspaceid_schedules_schedule_id_delete]] -=== Delete an existing workspace schedule +[[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_scheduleid_delete]] +== Delete an existing workspace schedule .... -POST https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/schedule +DELETE https://api.tgcloud.io/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules/{scheduleID} .... [discrete] @@ -2306,8 +2592,8 @@ Delete an existing workspace schedule for a given workspace __required__|Workgroup ID|string |**Path**|**workspaceID** + __required__|Workspace ID|string -|**Body**|**body** + -__required__|Workspace Schedule|<> +|**Path**|**scheduleID** + +__required__|Schedule ID|string |=== [discrete] @@ -2316,11 +2602,11 @@ __required__|Workspace Schedule|<> +|**200**|OK|<<_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_scheduleid_delete_response_200,Response 200>> |**500**|Internal Server Error|<> |=== -[[_https_api_tgcloud_io_controller_v4_v2_workspaces_workspaceid_schedules_schedule_id_delete_response_200]] +[[_https_api_tgcloud_io_controller_v4_v2_workgroups_workgroupid_workspaces_workspaceid_schedules_scheduleid_delete_response_200]] **Response 200** [options="header", cols=".^3a,.^4a"] @@ -2350,7 +2636,7 @@ __optional__|string [[_https_api_tgcloud_io_users_get]] -=== List of users in the org +== List of users in the org .... GET https://api.tgcloud.io/users .... @@ -2385,7 +2671,7 @@ List of users in the org. Note: this endpoint is not APIKEY compatible [[_https_api_tgcloud_io_users_userid_roles_put]] -=== Update the role of an org user +== Update the role of an org user .... PUT https://api.tgcloud.io/users/{userId}/roles .... diff --git a/modules/savanna/modules/rest-api/_catalog/openapi.json b/modules/savanna/modules/rest-api/_catalog/openapi.json new file mode 100644 index 00000000..d69881ce --- /dev/null +++ b/modules/savanna/modules/rest-api/_catalog/openapi.json @@ -0,0 +1,6461 @@ +{ + "basePath": "/controller/v4/v2", + "definitions": { + "APIKey": { + "properties": { + "created_at": { + "type": "string" + }, + "creator": { + "type": "string" + }, + "description": { + "type": "string" + }, + "expires_at": { + "type": "string" + }, + "key_name": { + "type": "string" + }, + "org_id": { + "type": "string" + }, + "plaintext_key": { + "type": "string" + }, + "redacted_key": { + "type": "string" + }, + "user_id": { + "type": "string" + } + }, + "type": "object" + }, + "AddOnPricing": { + "properties": { + "platform": { + "type": "string" + }, + "price_per_hour": { + "type": "number" + }, + "region": { + "type": "string" + }, + "type": { + "type": "string" + }, + "workspace_type": { + "type": "string" + } + }, + "type": "object" + }, + "AgentConfig": { + "properties": { + "catalog_activity_update_interval_seconds": { + "type": "integer" + }, + "enable_topology_force_update": { + "type": "boolean" + }, + "heartbeat_interval_seconds": { + "type": "integer" + }, + "query_activity_update_interval_seconds": { + "type": "integer" + }, + "topology_update_interval_seconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AllowedIP": { + "properties": { + "cidr": { + "type": "string" + }, + "id": { + "type": "string" + }, + "note": { + "type": "string" + } + }, + "required": [ + "cidr" + ], + "type": "object" + }, + "Backup": { + "properties": { + "id": { + "type": "string" + }, + "is_automatic": { + "type": "boolean" + }, + "size_bytes": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "time": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "BackupRestoreStatus": { + "properties": { + "created_at": { + "type": "string" + }, + "name": { + "type": "string" + }, + "output": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "type": "object" + }, + "BackupSchedule": { + "properties": { + "max_backup_files": { + "type": "integer" + }, + "max_reserved_days": { + "type": "integer" + }, + "max_retry": { + "type": "integer" + }, + "pause": { + "type": "boolean" + }, + "schedule": { + "type": "string" + } + }, + "required": [ + "schedule" + ], + "type": "object" + }, + "CloudProviderOptions": { + "properties": { + "account_id": { + "type": "string" + }, + "secure_connection": { + "type": "boolean" + } + }, + "type": "object" + }, + "CloudProviderResource": { + "properties": { + "api_tokens": { + "items": { + "type": "string" + }, + "type": "array" + }, + "availability_zones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "cluster_enabled_log_types": { + "items": { + "$ref": "#/definitions/constants.ClusterLogType" + }, + "type": "array" + }, + "component_versions": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "created_by": { + "type": "string" + }, + "eks_id": { + "type": "string" + }, + "endpoint_service_name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "last_error": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_group_config": { + "$ref": "#/definitions/aws.NodeGroupConfig" + }, + "options": { + "$ref": "#/definitions/CloudProviderOptions" + }, + "org_id": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "region": { + "type": "string" + }, + "role_arn": { + "type": "string" + }, + "role_external_id": { + "type": "string" + }, + "security_group_id": { + "type": "string" + }, + "short_id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "subnet_id": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "version": { + "type": "string" + }, + "version_number": { + "type": "integer" + }, + "vpc_id": { + "type": "string" + }, + "vpc_owned_by_tg": { + "type": "boolean" + }, + "work_dir": { + "type": "string" + } + }, + "type": "object" + }, + "CreateAPIKeyRequest": { + "properties": { + "description": { + "type": "string" + }, + "life_time_in_seconds": { + "type": "integer" + } + }, + "type": "object" + }, + "CreateCloudProviderResourceRequest": { + "properties": { + "created_by": { + "type": "string" + }, + "name": { + "type": "string" + }, + "options": { + "$ref": "#/definitions/CloudProviderOptions" + }, + "platform": { + "type": "string" + }, + "region": { + "type": "string" + }, + "role_arn": { + "type": "string" + }, + "role_external_id": { + "type": "string" + }, + "type": { + "description": "Type is used by two sets of API and will be set to 'private' when called by the Admin API\nand 'public' when called by the public cloud provider creation API.", + "type": "string" + } + }, + "type": "object" + }, + "CreateConfigRequest": { + "properties": { + "config_name": { + "type": "string" + }, + "config_value": { + "type": "string" + } + }, + "required": [ + "config_name", + "config_value" + ], + "type": "object" + }, + "CreateWorkgroupRequest": { + "properties": { + "cloud_provider_id": { + "type": "string" + }, + "enable_application_log": { + "type": "boolean" + }, + "enable_encryption": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "platform": { + "$ref": "#/definitions/Platform" + }, + "region": { + "type": "string" + }, + "shared_storage": { + "type": "boolean" + } + }, + "required": [ + "cloud_provider_id" + ], + "type": "object" + }, + "CreateWorkspaceRequest": { + "description": "Create Workspace Request", + "properties": { + "addons": { + "items": { + "$ref": "#/definitions/WorkspaceAddonsRequest" + }, + "type": "array" + }, + "auto_stop_minutes": { + "type": "integer" + }, + "enable_auto_start": { + "type": "boolean" + }, + "enable_ha": { + "type": "boolean" + }, + "is_rw": { + "type": "boolean" + }, + "maintenance_window_day_of_week": { + "type": "integer" + }, + "maintenance_window_hour_of_day": { + "type": "integer" + }, + "maintenance_window_interval_weeks": { + "type": "integer" + }, + "maintenance_window_time_zone": { + "type": "string" + }, + "name": { + "type": "string" + }, + "solution_install_request": { + "$ref": "#/definitions/SolutionInstallRequest" + }, + "tg_database_id": { + "type": "string" + }, + "tg_version": { + "type": "string" + }, + "update_strategy": { + "type": "string" + }, + "workspace_type_name": { + "description": "Workspace Type Name TG-0/TG-2", + "type": "string" + }, + "x_test_env": { + "type": "string" + } + }, + "type": "object" + }, + "CustomerCreditCard": { + "properties": { + "brand": { + "type": "string" + }, + "card_id": { + "type": "string" + }, + "expire_month": { + "type": "integer" + }, + "expire_year": { + "type": "integer" + }, + "last_4_digits": { + "type": "string" + }, + "name_on_card": { + "type": "string" + }, + "org_id": { + "type": "string" + } + }, + "type": "object" + }, + "CustomerResponse": { + "properties": { + "address": { + "$ref": "#/definitions/UpdateAddressRequest" + }, + "customer_email": { + "type": "string" + }, + "customer_id": { + "type": "string" + }, + "customer_name": { + "type": "string" + } + }, + "type": "object" + }, + "DataStoragePricing": { + "properties": { + "platform": { + "type": "string" + }, + "price_per_month": { + "type": "number" + }, + "region": { + "type": "string" + } + }, + "type": "object" + }, + "DeleteAPIKeyRequest": { + "properties": { + "key_name": { + "type": "string" + } + }, + "type": "object" + }, + "DeleteBackupRequest": { + "properties": { + "backup_id": { + "type": "string" + } + }, + "required": [ + "backup_id" + ], + "type": "object" + }, + "Error": { + "properties": { + "FieldName": { + "type": "string" + }, + "Reason": { + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ErrorType" + } + }, + "type": "object" + }, + "ErrorType": { + "enum": [ + "Internal-Error", + "Bad-Request", + "Not-Found", + "Forbidden", + "Unauthorized", + "API-Disabled", + "Quota-Exceed", + "Unknown" + ], + "type": "string", + "x-enum-varnames": [ + "ErrInternal", + "ErrBadRequest", + "ErrNotFound", + "ErrForbidden", + "ErrUnauthorized", + "ErrAPIDisabled", + "ErrQuotaExceed", + "ErrUnknown" + ] + }, + "FeatureFlag": { + "properties": { + "enabled": { + "type": "boolean" + }, + "feature_name": { + "type": "string" + } + }, + "type": "object" + }, + "FolderStatistics": { + "properties": { + "backup_size": { + "type": "integer" + }, + "billed_size": { + "type": "integer" + }, + "log_size": { + "type": "integer" + }, + "milvus_size": { + "type": "integer" + }, + "total_size": { + "type": "integer" + }, + "workspaces": { + "items": { + "$ref": "#/definitions/WorkspaceSize" + }, + "type": "array" + } + }, + "type": "object" + }, + "GetCustomerCreditCardsResponse": { + "properties": { + "credit_cards": { + "items": { + "$ref": "#/definitions/CustomerCreditCard" + }, + "type": "array" + }, + "default_card": { + "type": "string" + } + }, + "type": "object" + }, + "IAMUser": { + "properties": { + "auth0UserID": { + "type": "string" + }, + "created": { + "type": "string" + }, + "description": { + "type": "string" + }, + "email": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "firstName": { + "type": "string" + }, + "id": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/tgIAM.Metadata" + }, + "path": { + "type": "string" + }, + "role": { + "type": "string" + }, + "tenantID": { + "type": "string" + }, + "trn": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "InDatabaseUserRequest": { + "properties": { + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "OrgListUserResponse": { + "properties": { + "auth0UserID": { + "type": "string" + }, + "authID": { + "type": "string" + }, + "created": { + "type": "string" + }, + "email": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "firstName": { + "type": "string" + }, + "id": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/OrgMetadata" + }, + "path": { + "type": "string" + }, + "roles": { + "items": { + "$ref": "#/definitions/OrgRole" + }, + "type": "array" + }, + "tenantID": { + "type": "string" + }, + "trn": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "OrgMetadata": { + "properties": { + "attachedTo": { + "items": { + "type": "string" + }, + "type": "array" + }, + "lastLogin": { + "type": "string" + } + }, + "type": "object" + }, + "OrgQuota": { + "properties": { + "max_workspace_memory": { + "type": "string" + }, + "max_workspace_type": { + "type": "string" + }, + "memory_limit": { + "type": "string" + }, + "memory_usage_in_bytes": { + "type": "integer" + }, + "org_id": { + "type": "string" + }, + "ro_workspace_count_limit": { + "type": "integer" + }, + "ro_workspace_count_usage": { + "type": "integer" + }, + "rw_workspace_count_limit": { + "type": "integer" + }, + "rw_workspace_count_usage": { + "type": "integer" + }, + "tier": { + "type": "string" + }, + "workspace_auto_backup_count_limit": { + "type": "integer" + }, + "workspace_auto_backup_retention_in_days": { + "type": "integer" + }, + "workspace_manual_backup_count_limit": { + "type": "integer" + } + }, + "type": "object" + }, + "OrgRequest": { + "properties": { + "logoUrl": { + "type": "string" + }, + "orgDisplayName": { + "type": "string" + }, + "orgID": { + "type": "string" + }, + "orgName": { + "type": "string" + } + }, + "type": "object" + }, + "OrgRole": { + "properties": { + "displayName": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "tenantID": { + "type": "string" + }, + "trn": { + "type": "string" + } + }, + "type": "object" + }, + "Organization": { + "properties": { + "create_time": { + "type": "string" + }, + "creator": { + "type": "string" + }, + "delinquent_since": { + "type": "string" + }, + "feature_flag": { + "items": { + "$ref": "#/definitions/FeatureFlag" + }, + "type": "array" + }, + "logo_url": { + "type": "string" + }, + "org_display_name": { + "type": "string" + }, + "org_id": { + "type": "string" + }, + "org_name": { + "type": "string" + } + }, + "type": "object" + }, + "Platform": { + "enum": [ + "aws", + "azure", + "gcp" + ], + "type": "string", + "x-enum-varnames": [ + "PlatformAWS", + "PlatformAzure", + "PlatformGCP" + ] + }, + "PublicCloudProviderResource": { + "properties": { + "component_versions": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "org_id": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "region": { + "type": "string" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + }, + "version_number": { + "type": "integer" + } + }, + "type": "object" + }, + "PutOrgUsersRoles": { + "properties": { + "roles": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Region": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "RequestAddonRequest": { + "properties": { + "addon_name": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "type": "object" + }, + "ResourcePricing": { + "properties": { + "addon_pricing": { + "items": { + "$ref": "#/definitions/AddOnPricing" + }, + "type": "array" + }, + "data_storage_pricing": { + "items": { + "$ref": "#/definitions/DataStoragePricing" + }, + "type": "array" + }, + "workspace_pricing": { + "items": { + "$ref": "#/definitions/WorkspacePricing" + }, + "type": "array" + } + }, + "type": "object" + }, + "Response": { + "properties": { + "Error": { + "type": "boolean" + }, + "ErrorDetails": { + "items": { + "$ref": "#/definitions/Error" + }, + "type": "array" + }, + "Message": { + "type": "string" + }, + "RequestID": { + "type": "string" + }, + "Result": { + "type": "object" + } + }, + "type": "object" + }, + "RestoreBackupRequest": { + "properties": { + "backup_id": { + "type": "string" + } + }, + "required": [ + "backup_id" + ], + "type": "object" + }, + "ServerMCPChatRequest": { + "properties": { + "authorization": { + "type": "string" + }, + "debug": { + "type": "boolean" + }, + "message": {}, + "thread_id": { + "type": "string" + }, + "type": { + "type": "string" + }, + "workspace_id": { + "type": "string" + } + }, + "type": "object" + }, + "SolutionInstallRequest": { + "properties": { + "addons": { + "items": { + "$ref": "#/definitions/WorkspaceAddonsRequest" + }, + "type": "array" + }, + "data_source_origin": { + "type": "string" + }, + "name": { + "type": "string" + }, + "solution_catalog_id": { + "type": "string" + } + }, + "type": "object" + }, + "TGDatabase": { + "properties": { + "create_time": { + "type": "string" + }, + "database_id": { + "type": "string" + }, + "folder_statistics": { + "$ref": "#/definitions/FolderStatistics" + }, + "name": { + "type": "string" + }, + "org_id": { + "type": "string" + }, + "org_name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "tg_version": { + "type": "string" + }, + "workgroup_id": { + "type": "string" + }, + "workspaces": { + "items": { + "$ref": "#/definitions/Workspace" + }, + "type": "array" + } + }, + "type": "object" + }, + "TGVersion": { + "properties": { + "allow_create": { + "type": "boolean" + }, + "allow_upgrade": { + "type": "boolean" + }, + "channel": { + "type": "string" + }, + "end_of_life": { + "type": "string" + }, + "image": { + "type": "string" + }, + "incompatible_upgrades_from": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "orgs": { + "description": "For customized versions", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "UpdateAddressRequest": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "line1": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "type": "object" + }, + "UpdateCloudProviderResourceRequest": { + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "UpdateConfigRequest": { + "properties": { + "config_value": { + "type": "string" + } + }, + "required": [ + "config_value" + ], + "type": "object" + }, + "UpdateTGDatabaseRequest": { + "properties": { + "tg_database_name": { + "type": "string" + } + }, + "required": [ + "tg_database_name" + ], + "type": "object" + }, + "UpdateWorkgroupRequest": { + "properties": { + "enable_application_log": { + "type": "boolean" + }, + "encryption_method": { + "$ref": "#/definitions/data.EncryptionMethod" + }, + "workgroup_name": { + "type": "string" + } + }, + "type": "object" + }, + "UpdateWorkspaceRequest": { + "properties": { + "addons": { + "items": { + "$ref": "#/definitions/WorkspaceAddonsRequest" + }, + "type": "array" + }, + "agent_config": { + "$ref": "#/definitions/AgentConfig" + }, + "auto_stop_minutes": { + "minimum": 0, + "type": "integer" + }, + "auto_upgrade_state": { + "type": "string" + }, + "desired_tg_version": { + "type": "string" + }, + "enable_auto_start": { + "type": "boolean" + }, + "enable_ha": { + "type": "boolean" + }, + "maintenance_window_day_of_week": { + "type": "integer" + }, + "maintenance_window_hour_of_day": { + "type": "integer" + }, + "maintenance_window_interval_weeks": { + "type": "integer" + }, + "maintenance_window_time_zone": { + "type": "string" + }, + "pause": { + "type": "boolean" + }, + "update_strategy": { + "type": "string" + }, + "workspace_name": { + "type": "string" + }, + "workspace_type_name": { + "type": "string" + } + }, + "type": "object" + }, + "UpgradeCloudProviderComponent": { + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "UpgradeCloudProviderResourceRequest": { + "properties": { + "cluster_enabled_log_types": { + "items": { + "$ref": "#/definitions/constants.ClusterLogType" + }, + "type": "array" + }, + "components": { + "items": { + "$ref": "#/definitions/UpgradeCloudProviderComponent" + }, + "type": "array" + }, + "node_group_config": { + "$ref": "#/definitions/aws.NodeGroupConfig" + } + }, + "type": "object" + }, + "UpgradeWorkspaceRequest": { + "description": "Upgrade Workspace Request", + "properties": { + "desired_version": { + "type": "string" + }, + "scheduled": { + "type": "boolean" + } + }, + "type": "object" + }, + "ValidateCloudProviderRequest": { + "properties": { + "account_id": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "region": { + "type": "string" + }, + "role_arn": { + "type": "string" + }, + "role_external_id": { + "type": "string" + }, + "secure_connection": { + "type": "boolean" + } + }, + "required": [ + "platform", + "region", + "role_arn" + ], + "type": "object" + }, + "Workgroup": { + "properties": { + "cloud_provider_id": { + "type": "string" + }, + "cloud_provider_name": { + "type": "string" + }, + "cloud_provider_status": { + "type": "string" + }, + "cloud_provider_type": { + "type": "string" + }, + "creator": { + "type": "string" + }, + "enable_allow_list": { + "type": "boolean" + }, + "enable_application_log": { + "type": "boolean" + }, + "encryption_method": { + "$ref": "#/definitions/data.EncryptionMethod" + }, + "is_current_ip_allowed": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "org_id": { + "type": "string" + }, + "org_name": { + "type": "string" + }, + "platform": { + "$ref": "#/definitions/Platform" + }, + "region": { + "type": "string" + }, + "shared_storage": { + "type": "boolean" + }, + "tg_databases": { + "items": { + "$ref": "#/definitions/TGDatabase" + }, + "type": "array" + }, + "workgroup_id": { + "type": "string" + }, + "workspaces": { + "items": { + "$ref": "#/definitions/Workspace" + }, + "type": "array" + } + }, + "type": "object" + }, + "Workspace": { + "properties": { + "addons": { + "items": { + "$ref": "#/definitions/WorkspaceAddonsRequest" + }, + "type": "array" + }, + "agent_config": { + "$ref": "#/definitions/AgentConfig" + }, + "auto_stop_minutes": { + "type": "integer" + }, + "auto_upgrade_state": { + "type": "string" + }, + "cloud_provider_id": { + "type": "string" + }, + "cloud_provider_name": { + "type": "string" + }, + "cloud_provider_short_id": { + "type": "string" + }, + "condition_type": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "creator": { + "type": "string" + }, + "database_id": { + "type": "string" + }, + "database_name": { + "type": "string" + }, + "deleted_at": { + "type": "string" + }, + "desired_tg_version": { + "type": "string" + }, + "display_status": { + "type": "string" + }, + "edge_count": { + "type": "integer" + }, + "enable_auto_start": { + "type": "boolean" + }, + "enable_copilot": { + "type": "boolean" + }, + "enable_ha": { + "type": "boolean" + }, + "err_message": { + "type": "string" + }, + "folder_statistics": { + "$ref": "#/definitions/FolderStatistics" + }, + "graph_topology_size_bytes": { + "type": "integer" + }, + "is_rw": { + "type": "boolean" + }, + "last_maintenance": { + "type": "string" + }, + "last_modified_time": { + "type": "string" + }, + "maintenance_window_day_of_week": { + "type": "integer" + }, + "maintenance_window_hour_of_day": { + "type": "integer" + }, + "maintenance_window_interval_weeks": { + "type": "integer" + }, + "maintenance_window_time_zone": { + "type": "string" + }, + "name": { + "type": "string" + }, + "nginx_host": { + "type": "string" + }, + "org_id": { + "type": "string" + }, + "org_name": { + "type": "string" + }, + "refresh_message": { + "type": "string" + }, + "refresh_status": { + "type": "string" + }, + "region": { + "type": "string" + }, + "replicas": { + "type": "integer" + }, + "snapshot_time": { + "type": "string" + }, + "solution_catalog_id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tg_version": { + "type": "string" + }, + "update_strategy": { + "type": "string" + }, + "version_number": { + "type": "integer" + }, + "vertex_count": { + "type": "integer" + }, + "workgroup_id": { + "type": "string" + }, + "workgroup_name": { + "type": "string" + }, + "workspace_id": { + "type": "string" + }, + "workspace_type": { + "$ref": "#/definitions/WorkspaceType" + } + }, + "type": "object" + }, + "WorkspaceAddonsRequest": { + "properties": { + "addons_id": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "enable_configuration": { + "additionalProperties": true, + "type": "object" + }, + "is_free": { + "type": "boolean" + }, + "unique_name": { + "type": "string" + }, + "workspace_id": { + "type": "string" + } + }, + "required": [ + "addons_id", + "enable" + ], + "type": "object" + }, + "WorkspaceMetadata": { + "properties": { + "regions": { + "items": { + "$ref": "#/definitions/Region" + }, + "type": "array" + }, + "tgVersions": { + "items": { + "$ref": "#/definitions/TGVersion" + }, + "type": "array" + }, + "workspaceTypes": { + "items": { + "$ref": "#/definitions/WorkspaceType" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkspacePricing": { + "properties": { + "cloud_provider": { + "type": "string" + }, + "ha": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "price_per_hour": { + "type": "number" + }, + "region": { + "type": "string" + }, + "workspace_type": { + "type": "string" + } + }, + "type": "object" + }, + "WorkspaceSchedule": { + "properties": { + "date": { + "type": "string" + }, + "id": { + "type": "string" + }, + "repeat": { + "type": "string" + }, + "repeat_on": { + "type": "string" + }, + "time": { + "type": "string" + }, + "timezone": { + "type": "string" + }, + "workspace_id": { + "type": "string" + }, + "workspace_type_name": { + "type": "string" + } + }, + "required": [ + "repeat", + "time", + "timezone", + "workspace_id" + ], + "type": "object" + }, + "WorkspaceSize": { + "properties": { + "size": { + "type": "integer" + }, + "workspace_id": { + "type": "string" + } + }, + "type": "object" + }, + "WorkspaceType": { + "properties": { + "cpu": { + "type": "string" + }, + "ha": { + "type": "integer" + }, + "memory": { + "type": "string" + }, + "partition": { + "type": "integer" + }, + "typeName": { + "type": "string" + } + }, + "type": "object" + }, + "aws.NodeGroup": { + "properties": { + "max_size": { + "type": "integer" + }, + "min_size": { + "type": "integer" + }, + "overprovisioning_factor": { + "type": "integer" + } + }, + "type": "object" + }, + "aws.NodeGroupConfig": { + "properties": { + "ng_16": { + "$ref": "#/definitions/aws.NodeGroup" + }, + "ng_32": { + "$ref": "#/definitions/aws.NodeGroup" + }, + "ng_48": { + "$ref": "#/definitions/aws.NodeGroup" + }, + "ng_64": { + "$ref": "#/definitions/aws.NodeGroup" + }, + "ng_system": { + "$ref": "#/definitions/aws.NodeGroup" + }, + "prefetch_image_list": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "constants.ClusterLogType": { + "enum": [ + "api", + "audit", + "authenticator", + "controllerManager", + "scheduler" + ], + "type": "string", + "x-enum-varnames": [ + "ClusterLogTypeAPIServer", + "ClusterLogTypeAudit", + "ClusterLogTypeAuthenticator", + "ClusterLogTypeControllerManager", + "ClusterLogTypeScheduler" + ] + }, + "data.EncryptionMethod": { + "enum": [ + "TMK" + ], + "type": "string", + "x-enum-varnames": [ + "TigerGraphManagedKey" + ] + }, + "observability.MetricValue": { + "description": "Workspace metric value", + "properties": { + "avgValue": { + "description": "Avg value", + "type": "number" + } + }, + "type": "object" + }, + "observability.WorkgroupMetric": { + "description": "Metrics for workspaces in a workgroup", + "properties": { + "workgroupID": { + "description": "Workgroup ID", + "type": "string" + }, + "workspaceMetrics": { + "description": "Workspace metrics", + "items": { + "$ref": "#/definitions/observability.WorkspaceMetric" + }, + "type": "array" + } + }, + "type": "object" + }, + "observability.WorkspaceMetric": { + "description": "Workspace metric", + "properties": { + "metrics": { + "additionalProperties": { + "$ref": "#/definitions/observability.MetricValue" + }, + "description": "Workspace metric map, key is metric name,\nvalue is the certain value for the metric name in the key", + "type": "object" + }, + "workspaceID": { + "description": "Workspace ID", + "type": "string" + } + }, + "type": "object" + }, + "tgIAM.Metadata": { + "additionalProperties": true, + "type": "object" + } + }, + "host": "api.tgcloud.io", + "info": { + "contact": {}, + "description": "This is a sample TigerGraph Savanna controller server api.", + "title": "TigerGraph Savanna Controller API", + "version": "2.0" + }, + "paths": { + "/cloud-providers/all": { + "get": { + "consumes": [ + "application/json" + ], + "description": "List all cloud provider", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "items": { + "$ref": "#/definitions/CloudProviderResource" + }, + "type": "array" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List all cloud provider for admin", + "tags": [ + "CloudProvider" + ] + } + }, + "/controller/v4/v2/add-ons/{installedAddonsID}/configs": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Create a new configuration for a specific installed add-on.", + "parameters": [ + { + "description": "Installed Add-on ID", + "in": "path", + "name": "installedAddonsID", + "required": true, + "type": "string" + }, + { + "description": "Create Configuration Request", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateConfigRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad creation input.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Failed to create configuration.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Create Add-on Configuration", + "tags": [ + "Add-ons" + ] + } + }, + "/controller/v4/v2/add-ons/{installedAddonsID}/configs/{configID}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "Delete a specific configuration for an add-on.", + "parameters": [ + { + "description": "Installed Add-on ID", + "in": "path", + "name": "installedAddonsID", + "required": true, + "type": "string" + }, + { + "description": "Configuration ID", + "in": "path", + "name": "configID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "boolean" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad delete input.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Failed to delete configuration.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Delete Add-on Configuration", + "tags": [ + "Add-ons" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "Update an existing configuration for an add-on.", + "parameters": [ + { + "description": "Installed Add-on ID", + "in": "path", + "name": "installedAddonsID", + "required": true, + "type": "string" + }, + { + "description": "Configuration ID", + "in": "path", + "name": "configID", + "required": true, + "type": "string" + }, + { + "description": "Update Configuration Request", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateConfigRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad update input.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Failed to update configuration.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Update Add-on Configuration", + "tags": [ + "Add-ons" + ] + } + }, + "/controller/v4/v2/addons/meta": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Get metadata for add-ons.", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get add-ons meta", + "tags": [ + "Add-ons" + ] + } + }, + "/controller/v4/v2/addons/request": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Request an add-on by providing the addon name and a message.", + "parameters": [ + { + "description": "Request body", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/RequestAddonRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully request addon.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Invalid request body.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Failed to request addon.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Request an add-on", + "tags": [ + "Add-ons" + ] + } + }, + "/controller/v4/v2/addons/{addonsID}/install": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Installs an add-on by ID.", + "parameters": [ + { + "description": "Add-on ID", + "in": "path", + "name": "addonsID", + "required": true, + "type": "string" + }, + { + "description": "Enable or disable add-on", + "in": "query", + "name": "enable", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Installs an add-on", + "tags": [ + "Add-ons" + ] + } + }, + "/controller/v4/v2/addons/{addonsID}/workspaces": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Retrieves a list of workspaces associated with a specific addons ID.", + "parameters": [ + { + "description": "Addons ID", + "in": "path", + "name": "addonsID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "items": { + "$ref": "#/definitions/Workspace" + }, + "type": "array" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List Workspaces by add-ons ID", + "tags": [ + "Add-ons" + ] + } + }, + "/controller/v4/v2/billing/credit": { + "get": { + "description": "Fetches the total credits available for the specified organization.", + "parameters": [ + { + "description": "Bearer token", + "in": "header", + "name": "Authorization", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "number" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Failed to retrieve credits", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve organization credits", + "tags": [ + "Billing" + ] + } + }, + "/controller/v4/v2/billing/credit-cards": { + "get": { + "description": "Retrieves the Amberlfo customer information based on the organization ID.", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully retrieved customer.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/CustomerResponse" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Unable to retrieve customer.", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Customer Information", + "tags": [ + "Billing" + ] + } + }, + "/controller/v4/v2/billing/credit-cards/{cardID}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "Deletes a customer's credit card by card ID.", + "parameters": [ + { + "description": "Card ID", + "in": "path", + "name": "cardID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully deleted customer's card.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "CardID is not provided.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Unable to delete customer's card.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Delete a customer's credit card", + "tags": [ + "Billing" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "Updates the default credit card for a customer based on the provided card ID.", + "parameters": [ + { + "description": "Card ID", + "in": "path", + "name": "cardID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully updated customer's default card.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "CardID is not provided.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Unable to update customer's default card.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Update Customer Default Card", + "tags": [ + "Billing" + ] + } + }, + "/controller/v4/v2/billing/payment/invoice": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Send invoice for payment", + "parameters": [ + { + "description": "Year of the invoice", + "in": "query", + "name": "year", + "required": true, + "type": "integer" + }, + { + "description": "Month of the invoice", + "in": "query", + "name": "month", + "required": true, + "type": "integer" + }, + { + "description": "Day of the invoice", + "in": "query", + "name": "day", + "required": true, + "type": "integer" + }, + { + "description": "Product Plan ID used when the invoice was generated", + "in": "query", + "name": "productPlanId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully paid invoice.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "boolean" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Failed to pay invoice.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Pay invoice", + "tags": [ + "Billing" + ] + } + }, + "/controller/v4/v2/billing/resource-pricing": { + "get": { + "description": "Retrieve the pricing information for resources", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/ResourcePricing" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get resource pricing", + "tags": [ + "Billing" + ] + } + }, + "/controller/v4/v2/billing/session": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Creates a new session for the billing manager using the provided organization ID.", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully retrieved session.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Failed to retrieve session.", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Create a new session", + "tags": [ + "Billing" + ] + } + }, + "/controller/v4/v2/billing/status": { + "get": { + "description": "Retrieves the marketplace status of each platform and currently active payment method for an organization.", + "parameters": [ + { + "description": "Bearer token", + "in": "header", + "name": "Authorization", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "number" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Failed to retrieve billing status", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve organization's marketplace status and currently active payment method", + "tags": [ + "Billing" + ] + } + }, + "/controller/v4/v2/billing/validation": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Validates if the payment can be processed for the organization", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successful payment validation check", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "boolean" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal server error", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Validate payment", + "tags": [ + "Billing" + ] + } + }, + "/controller/v4/v2/cloud-providers": { + "get": { + "consumes": [ + "application/json" + ], + "description": "List all cloud provider belonging to the org", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "items": { + "$ref": "#/definitions/CloudProviderResource" + }, + "type": "array" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List all cloud provider belonging to the org", + "tags": [ + "CloudProvider" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "Create a new cloud provider", + "parameters": [ + { + "description": "Create Cloud Provider Resource Request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreateCloudProviderResourceRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/CloudProviderResource" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Create a new cloud provider", + "tags": [ + "CloudProvider" + ] + } + }, + "/controller/v4/v2/cloud-providers/public": { + "get": { + "consumes": [ + "application/json" + ], + "description": "List of public cloud providers", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "items": { + "$ref": "#/definitions/PublicCloudProviderResource" + }, + "type": "array" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List of public cloud providers", + "tags": [ + "CloudProvider" + ] + } + }, + "/controller/v4/v2/cloud-providers/validate": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Validate the cloud provider request", + "parameters": [ + { + "description": "Validate Cloud Provider Request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ValidateCloudProviderRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully validated Cloud Provider", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Validate the cloud provider request", + "tags": [ + "CloudProvider" + ] + } + }, + "/controller/v4/v2/cloud-providers/{cloudProviderID}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "Delete a cloud provider", + "parameters": [ + { + "description": "Cloud Provider ID", + "in": "path", + "name": "cloudProviderID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Delete a cloud provider", + "tags": [ + "CloudProvider" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "Get a cloud provider by ID", + "parameters": [ + { + "description": "Cloud Provider ID", + "in": "path", + "name": "cloudProviderID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/CloudProviderResource" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get a cloud provider by ID", + "tags": [ + "CloudProvider" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "Update a cloud provider", + "parameters": [ + { + "description": "Cloud Provider ID", + "in": "path", + "name": "cloudProviderID", + "required": true, + "type": "string" + }, + { + "description": "Update Cloud Provider Resource Request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateCloudProviderResourceRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/CloudProviderResource" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Update a cloud provider", + "tags": [ + "CloudProvider" + ] + } + }, + "/controller/v4/v2/cloud-providers/{cloudProviderID}/upgrade": { + "put": { + "consumes": [ + "application/json" + ], + "description": "Upgrade a cloud provider", + "parameters": [ + { + "description": "Cloud Provider ID", + "in": "path", + "name": "cloudProviderID", + "required": true, + "type": "string" + }, + { + "description": "Upgrade Cloud Provider Resource Request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UpgradeCloudProviderResourceRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Upgrade a cloud provider", + "tags": [ + "CloudProvider" + ] + } + }, + "/controller/v4/v2/installed-addons": { + "get": { + "consumes": [ + "application/json" + ], + "description": "List all installed add-ons for the organization.", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List all installed add-ons", + "tags": [ + "Add-ons" + ] + } + }, + "/controller/v4/v2/installed-addons/{installedAddonsID}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Get details of an installed add-on by its ID.", + "parameters": [ + { + "description": "Installed Add-on ID", + "in": "path", + "name": "installedAddonsID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get installed add-on by ID", + "tags": [ + "Add-ons" + ] + } + }, + "/controller/v4/v2/installed-addons/{installedAddonsID}/configs/{configName}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "List configurations for a specific installed add-on.", + "parameters": [ + { + "description": "Installed Add-on ID", + "in": "path", + "name": "installedAddonsID", + "required": true, + "type": "string" + }, + { + "description": "Configuration Name", + "in": "path", + "name": "configName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Failed to parse addons_id.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Failed to get internal addons configurations.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "object" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List Add-on Configurations", + "tags": [ + "Add-ons" + ] + } + }, + "/controller/v4/v2/org": { + "put": { + "consumes": [ + "application/json" + ], + "description": "Update organization details such as name, display name, and logo URL", + "parameters": [ + { + "description": "Organization request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/OrgRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully updated the org.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad Request", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Update organization details", + "tags": [ + "Org" + ] + } + }, + "/controller/v4/v2/org/api-keys": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "Delete an external organization API key by its name.", + "parameters": [ + { + "description": "Delete API Key Request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DeleteAPIKeyRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully deleted the external org API key.", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "summary": "Delete External Org API Key", + "tags": [ + "APIKey" + ] + }, + "get": { + "description": "List all external organization API keys.", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully listed the external org API keys.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/APIKey" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "summary": "List External Org API Keys", + "tags": [ + "APIKey" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "Create a new external organization API key with an optional lifetime.", + "parameters": [ + { + "description": "Create API Key Request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreateAPIKeyRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully created the external org API key.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/APIKey" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "summary": "Create External Org API Key", + "tags": [ + "APIKey" + ] + } + }, + "/controller/v4/v2/org/quota": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Get the quota details for a specific organization by its ID", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully get org quota", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/OrgQuota" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve organization quota", + "tags": [ + "Org" + ] + } + }, + "/controller/v4/v2/org/self": { + "get": { + "consumes": [ + "application/json" + ], + "description": "List of orgs that the user has access to", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/Organization" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List of orgs that the user has access to", + "tags": [ + "Org" + ] + } + }, + "/controller/v4/v2/pooled-workgroups/acquire": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Acquire pooled workgroup in your org", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/Workgroup" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Acquire pooled workgroup in your org", + "tags": [ + "Workgroup" + ] + } + }, + "/controller/v4/v2/workgroups": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Get workgroups for your org", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "items": { + "$ref": "#/definitions/Workgroup" + }, + "type": "array" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get workgroups for your org", + "tags": [ + "Workgroup" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "Create workgroups in your org", + "parameters": [ + { + "description": "Create workgroup request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreateWorkgroupRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/Workgroup" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Create workgroups in your org", + "tags": [ + "Workgroup" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "Get workgroup detail in your org", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "delete workgroup detail in your org", + "tags": [ + "Workgroup" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "Get workgroup detail in your org", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/Workgroup" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get workgroup detail in your org", + "tags": [ + "Workgroup" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "Update workgroups in your org", + "parameters": [ + { + "description": "Update workgroup request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateWorkgroupRequest" + } + }, + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/Workgroup" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Update workgroups in your org", + "tags": [ + "Workgroup" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/allow_list": { + "get": { + "consumes": [ + "application/json" + ], + "description": "List all allowed IPs in the workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "items": { + "$ref": "#/definitions/AllowedIP" + }, + "type": "array" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List Allowed IPs", + "tags": [ + "AllowedIP" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "Add a new allowed IP to the workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Allowed IP request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AllowedIP" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/AllowedIP" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad Request", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Add Allowed IP", + "tags": [ + "AllowedIP" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/allow_list/current": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Get the current IP and check if it is allowed in the workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "properties": { + " IsAllowed": { + "type": "boolean" + }, + "CurrentIP": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Current IP", + "tags": [ + "AllowedIP" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/allow_list/disable": { + "put": { + "consumes": [ + "application/json" + ], + "description": "Disable the allow list for the workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Disable Allow List", + "tags": [ + "AllowedIP" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/allow_list/enable": { + "put": { + "consumes": [ + "application/json" + ], + "description": "Enable the allow list for the workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Enable Allow List", + "tags": [ + "AllowedIP" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/allow_list/{id}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "Delete an existing allowed IP from the workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Allowed IP ID", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Delete Allowed IP", + "tags": [ + "AllowedIP" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "Update an existing allowed IP in the workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Allowed IP ID", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "description": "Allowed IP request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AllowedIP" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/AllowedIP" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad Request", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Update Allowed IP", + "tags": [ + "AllowedIP" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "Delete database in workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Database ID", + "in": "path", + "name": "databaseID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Delete database in workgroup", + "tags": [ + "Database" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "Get database in workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Database ID", + "in": "path", + "name": "databaseID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/TGDatabase" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get database in workgroup", + "tags": [ + "Database" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "Update database in workgroup", + "parameters": [ + { + "description": "Update database request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateTGDatabaseRequest" + } + }, + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Database ID", + "in": "path", + "name": "databaseID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/TGDatabase" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Update database in workgroup", + "tags": [ + "Database" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Create workspace in workgroup", + "parameters": [ + { + "description": "Create workspace request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreateWorkspaceRequest" + } + }, + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/Workspace" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Create workspace in workgroup", + "tags": [ + "Workspace" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "Delete workspace in workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Delete workspace in workgroup", + "tags": [ + "Workspace" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "Get workspace in workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/Workspace" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get workspace in workgroup", + "tags": [ + "Workspace" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "Update workspace in workgroup", + "parameters": [ + { + "description": "Update workspace request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateWorkspaceRequest" + } + }, + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/Workspace" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Update workspace in workgroup", + "tags": [ + "Workspace" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "Delete a backup for a workspace", + "parameters": [ + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Delete Backup Request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DeleteBackupRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully deleted the backup.", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Delete a backup", + "tags": [ + "Backup" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "List all backups for a workspace", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully listed the backups.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "items": { + "$ref": "#/definitions/Backup" + }, + "type": "array" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List backups", + "tags": [ + "Backup" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/restore": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Restore a backup for a workspace", + "parameters": [ + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Restore Backup Request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/RestoreBackupRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully restored the backup.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Restore a backup", + "tags": [ + "Backup" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/schedule": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Get the backup schedule for a workspace", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully got the backup schedule.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/BackupSchedule" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get backup schedule", + "tags": [ + "Backup" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "Set a backup schedule for a workspace", + "parameters": [ + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Backup Schedule", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/BackupSchedule" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully set the backup schedule.", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Set backup schedule", + "tags": [ + "Backup" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/{job}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Get the status of a backup restore job", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "Job ID", + "in": "path", + "name": "job", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully got the backup restore status.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/BackupRestoreStatus" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get backup restore status", + "tags": [ + "Backup" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "Delete an in-database GSQL user in the specified workspace and workgroup.", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "In-database user request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InDatabaseUserRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully deleted the in-database GSQL user.", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Delete in-database GSQL user", + "tags": [ + "DatabaseUser" + ] + }, + "get": { + "description": "List all in-database GSQL users in the specified workspace and workgroup.", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully listed the in-database GSQL users.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "items": { + "$ref": "#/definitions/IAMUser" + }, + "type": "array" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List in-database GSQL users", + "tags": [ + "DatabaseUser" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "Create a new in-database GSQL user in the specified workspace and workgroup.", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "In-database user request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InDatabaseUserRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully created the in-database GSQL user.", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/IAMUser" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Create in-database GSQL user", + "tags": [ + "DatabaseUser" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "Update the password of an in-database GSQL user in the specified workspace and workgroup.", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "In-database user request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InDatabaseUserRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully updated the in-database GSQL password.", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Update in-database GSQL user password", + "tags": [ + "DatabaseUser" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/onboarding/chat": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Handle MCP chat requests and return streaming responses via Server-Sent Events", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "Thread ID", + "in": "header", + "name": "ThreadID", + "required": true, + "type": "string" + }, + { + "description": "MCP chat request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ServerMCPChatRequest" + } + } + ], + "produces": [ + "text/event-stream" + ], + "responses": { + "200": { + "description": "Server-Sent Events stream", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "MCP Chat for onboarding", + "tags": [ + "MCP" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/pause": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Pause workspace in workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Pause workspace in workgroup", + "tags": [ + "Workspace" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/refresh": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Refresh workspace in workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Refresh workspace in workgroup", + "tags": [ + "Workspace" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/resume": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Resume workspace in workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Resume workspace in workgroup", + "tags": [ + "Workspace" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules": { + "get": { + "description": "Retrieve the schedule for a given workspace", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "items": { + "$ref": "#/definitions/WorkspaceSchedule" + }, + "type": "array" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve workspace schedule", + "tags": [ + "WorkspaceSchedule" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "Create a new workspace schedule for a given workspace", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "Workspace Schedule", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WorkspaceSchedule" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/WorkspaceSchedule" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Create a new workspace schedule", + "tags": [ + "WorkspaceSchedule" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules/{scheduleID}": { + "delete": { + "description": "Delete an existing workspace schedule for a given workspace", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "Schedule ID", + "in": "path", + "name": "scheduleID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Delete an existing workspace schedule", + "tags": [ + "WorkspaceSchedule" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "Update an existing workspace schedule for a given workspace", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "Schedule ID", + "in": "path", + "name": "scheduleID", + "required": true, + "type": "string" + }, + { + "description": "Workspace Schedule", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WorkspaceSchedule" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Update an existing workspace schedule", + "tags": [ + "WorkspaceSchedule" + ] + } + }, + "/controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/upgrade": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Upgrade workspace in workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + }, + { + "description": "Upgrade workspace request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UpgradeWorkspaceRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Upgrade workspace in workgroup", + "tags": [ + "Workspace" + ] + } + }, + "/controller/v4/v2/workspaces/meta": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Get regions/tgVersions/workspaceTypes supported for your org", + "parameters": [ + { + "description": "When true, tgVersions only include versions with allow_upgrade; when false or omitted (default), all create-allowed versions for the org are returned", + "in": "query", + "name": "upgrade", + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/WorkspaceMetadata" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get an metadata for your org", + "tags": [ + "Org" + ] + } + }, + "/controller/v4/v2/workspaces/upgrade-next-window": { + "get": { + "consumes": [ + "application/json" + ], + "description": "List workspaces upgrading in next window", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List workspaces upgrading in next window", + "tags": [ + "Workspace" + ] + } + }, + "/metrics/{workgroupID}/{workspaceID}": { + "get": { + "description": "Returns the latest tigergraph_* samples for the given workspace as Prometheus text exposition format", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + }, + { + "description": "Workspace ID", + "in": "path", + "name": "workspaceID", + "required": true, + "type": "string" + } + ], + "produces": [ + "text/plain" + ], + "responses": { + "200": { + "description": "Prometheus exposition format", + "schema": { + "type": "string" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Scrape workspace metrics in Prometheus exposition format", + "tags": [ + "Workspace" + ] + } + }, + "/observability/{workgroupID}/metrics": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Get workspace metrics in a given workgroup", + "parameters": [ + { + "description": "Workgroup ID", + "in": "path", + "name": "workgroupID", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "properties": { + "Result": { + "$ref": "#/definitions/observability.WorkgroupMetric" + } + }, + "type": "object" + } + ] + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get workspace metrics in a given workgroup", + "tags": [ + "Workgroup" + ] + } + }, + "/users": { + "get": { + "consumes": [ + "application/json" + ], + "description": "List of users in the org. Note: this endpoint is not APIKEY compatible", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OrgListUserResponse" + } + } + }, + "summary": "List of users in the org", + "tags": [ + "Org" + ] + } + }, + "/users/{userId}/roles": { + "put": { + "consumes": [ + "application/json" + ], + "description": "Updates the role of an org user. Note: this endpoint is not APIKEY compatible", + "parameters": [ + { + "description": "Id of the user", + "in": "path", + "name": "userId", + "required": true, + "type": "string" + }, + { + "description": "Roles of the user", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PutOrgUsersRoles" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Update the role of an org user", + "tags": [ + "Org" + ] + } + } + }, + "schemes": [], + "securityDefinitions": { + "ApiKeyAuth": { + "description": "Authorization for TigerGraph Savanna", + "in": "header", + "name": "x-api-key", + "type": "apiKey" + } + }, + "swagger": "2.0" +} \ No newline at end of file diff --git a/modules/savanna/modules/rest-api/images/create-api-key.png b/modules/savanna/modules/rest-api/images/create-api-key.png new file mode 100644 index 00000000..98d11380 Binary files /dev/null and b/modules/savanna/modules/rest-api/images/create-api-key.png differ diff --git a/modules/savanna/modules/rest-api/nav.adoc b/modules/savanna/modules/rest-api/nav.adoc index b076ec70..89ce4ba9 100644 --- a/modules/savanna/modules/rest-api/nav.adoc +++ b/modules/savanna/modules/rest-api/nav.adoc @@ -1,5 +1,72 @@ +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. * REST API reference ** xref:index.adoc[Overview] -** xref:rest-api:authentication.adoc[Authentication] -** xref:rest-api:endpoints.adoc[Endpoints] -** xref:rest-api:definitions.adoc[Definitions] +** xref:rest-api:create-api-key.adoc[Create an API key] +** Cloud providers +*** xref:rest-api:endpoints/create-a-cloud-provider.adoc[POST Create a cloud provider] +*** xref:rest-api:endpoints/list-cloud-providers.adoc[GET List cloud providers] +*** xref:rest-api:endpoints/list-public-cloud-providers.adoc[GET List public cloud providers] +*** xref:rest-api:endpoints/validate-a-cloud-provider.adoc[POST Validate a cloud provider] +*** xref:rest-api:endpoints/get-cloud-provider-details.adoc[GET Get cloud provider details] +*** xref:rest-api:endpoints/update-a-cloud-provider.adoc[PUT Update a cloud provider] +*** xref:rest-api:endpoints/delete-a-cloud-provider.adoc[DELETE Delete a cloud provider] +*** xref:rest-api:endpoints/upgrade-a-cloud-provider.adoc[PUT Upgrade a cloud provider] +** Workgroups +*** xref:rest-api:endpoints/create-a-workgroup.adoc[POST Create a workgroup] +*** xref:rest-api:endpoints/list-workgroups.adoc[GET List workgroups] +*** xref:rest-api:endpoints/get-workgroup-details.adoc[GET Get workgroup details] +*** xref:rest-api:endpoints/update-a-workgroup.adoc[PUT Update a workgroup] +*** xref:rest-api:endpoints/delete-a-workgroup.adoc[DELETE Delete a workgroup] +** Workspaces +*** xref:rest-api:endpoints/create-a-workspace.adoc[POST Create a workspace] +*** xref:rest-api:endpoints/get-workspace-details.adoc[GET Get workspace details] +*** xref:rest-api:endpoints/update-a-workspace.adoc[PUT Update a workspace] +*** xref:rest-api:endpoints/delete-a-workspace.adoc[DELETE Delete a workspace] +*** xref:rest-api:endpoints/resume-a-workspace.adoc[POST Resume a workspace] +*** xref:rest-api:endpoints/pause-a-workspace.adoc[POST Pause a workspace] +*** xref:rest-api:endpoints/refresh-a-workspace.adoc[POST Refresh a workspace] +** Add-ons +*** xref:rest-api:endpoints/list-available-add-ons.adoc[GET List available add-ons] +*** xref:rest-api:endpoints/install-an-add-on.adoc[POST Install an add-on] +*** xref:rest-api:endpoints/list-installed-add-ons.adoc[GET List installed add-ons] +*** xref:rest-api:endpoints/get-installed-add-on-details.adoc[GET Get installed add-on details] +*** xref:rest-api:endpoints/list-add-on-workspaces.adoc[GET List add-on workspaces] +*** xref:rest-api:endpoints/list-add-on-configurations.adoc[GET List add-on configurations] +*** xref:rest-api:endpoints/create-an-add-on-configuration.adoc[POST Create an add-on configuration] +*** xref:rest-api:endpoints/update-an-add-on-configuration.adoc[PUT Update an add-on configuration] +*** xref:rest-api:endpoints/delete-an-add-on-configuration.adoc[DELETE Delete an add-on configuration] +** Workspace schedules +*** xref:rest-api:endpoints/create-a-workspace-schedule.adoc[POST Create a workspace schedule] +*** xref:rest-api:endpoints/list-workspace-schedules.adoc[GET List workspace schedules] +*** xref:rest-api:endpoints/update-a-workspace-schedule.adoc[PUT Update a workspace schedule] +*** xref:rest-api:endpoints/delete-a-workspace-schedule.adoc[DELETE Delete a workspace schedule] +** Databases +*** xref:rest-api:endpoints/get-database-details.adoc[GET Get database details] +*** xref:rest-api:endpoints/update-a-database.adoc[PUT Update a database] +*** xref:rest-api:endpoints/delete-a-database.adoc[DELETE Delete a database] +** Backups +*** xref:rest-api:endpoints/list-backups.adoc[GET List backups] +*** xref:rest-api:endpoints/restore-a-backup.adoc[POST Restore a backup] +*** xref:rest-api:endpoints/get-backup-restore-status.adoc[GET Get backup restore status] +*** xref:rest-api:endpoints/delete-a-backup.adoc[DELETE Delete a backup] +*** xref:rest-api:endpoints/get-backup-schedule.adoc[GET Get backup schedule] +*** xref:rest-api:endpoints/set-backup-schedule.adoc[POST Set backup schedule] +** IP allow list +*** xref:rest-api:endpoints/add-an-allowed-ip.adoc[POST Add an allowed IP] +*** xref:rest-api:endpoints/list-allowed-ips.adoc[GET List allowed IPs] +*** xref:rest-api:endpoints/check-the-current-ip.adoc[GET Check the current IP] +*** xref:rest-api:endpoints/update-an-allowed-ip.adoc[PUT Update an allowed IP] +*** xref:rest-api:endpoints/delete-an-allowed-ip.adoc[DELETE Delete an allowed IP] +*** xref:rest-api:endpoints/enable-the-allow-list.adoc[PUT Enable the allow list] +*** xref:rest-api:endpoints/disable-the-allow-list.adoc[PUT Disable the allow list] +** In-database users +*** xref:rest-api:endpoints/create-an-in-database-user.adoc[POST Create an in-database user] +*** xref:rest-api:endpoints/list-in-database-users.adoc[GET List in-database users] +*** xref:rest-api:endpoints/update-an-in-database-users-password.adoc[PUT Update an in-database user's password] +*** xref:rest-api:endpoints/delete-an-in-database-user.adoc[DELETE Delete an in-database user] +** Organization +*** xref:rest-api:endpoints/get-supported-workspace-options.adoc[GET Get supported workspace options] +*** xref:rest-api:endpoints/list-org-users.adoc[GET List org users] +*** xref:rest-api:endpoints/update-an-org-users-role.adoc[PUT Update an org user's role] diff --git a/modules/savanna/modules/rest-api/pages/authentication.adoc b/modules/savanna/modules/rest-api/pages/authentication.adoc deleted file mode 100644 index 781196e3..00000000 --- a/modules/savanna/modules/rest-api/pages/authentication.adoc +++ /dev/null @@ -1,23 +0,0 @@ -= Authentication - -To use the TigerGraph Savanna REST APIs, you need to authenticate your requests. Authentication is typically done using API keys. - -[IMPORTANT] -==== -The TigerGraph Savanna REST API is currently in preview version. Features and endpoints may change as the API evolves. -==== - -== Setup API Keys - -Before you can authenticate your API requests, you need to set up your API keys. Please refer to the xref:savanna:administration:settings/how2-create-api-key.adoc[API Key Setup] page for detailed instructions on how to generate and manage your API keys. - -== Example Request - -Here’s an example of how to consume the APIs using your API key: - -```bash -curl -X GET "https://api.tgcloud.io/controller/v4/v2/workgroups" \ - -H 'Content-Type: application/json' \ - -H "x-api-key: " -``` - diff --git a/modules/savanna/modules/rest-api/pages/create-api-key.adoc b/modules/savanna/modules/rest-api/pages/create-api-key.adoc new file mode 100644 index 00000000..61684520 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/create-api-key.adoc @@ -0,0 +1,29 @@ += Create an API key +:page-aliases: administration:settings/how2-create-api-key.adoc + +An API key authenticates requests to the xref:savanna:rest-api:index.adoc[Savanna REST API]. Every request sends it in the `x-api-key` header. Only an organization administrator can create one. + +== Create a key + +. In Savanna, open *Admin* → *Settings*. If you don't see *Admin*, you don't have the organization administrator role. Reach out to an organization administrator to mint a key with the access you need. +. Open the *API Keys* tab. +. Click *Create API Keys*. +. Give the key a name you will recognize later, such as `ci-provision` or `local-dev`. Grant only the permissions that job needs. Set an expiration if the key is for a short-lived environment. If you're unsure which role to pick, you can find more about roles and what they mean in xref:savanna:administration:how2-access-mgnt.adoc[Access management]. ++ +image::create-api-key.png[] +. Copy the key and store it securely. Savanna does not keep the plaintext, so you cannot retrieve the value later. If you lose it, create a new key. + +== Verify the API key + +This curl lists the workgroups in your organization so you can confirm the key works. Export it as `TG_API_KEY`. Do not put the key in source control. + +[source,bash] +---- +export TG_API_KEY='' + +curl -sS "https://api.tgcloud.io/controller/v4/v2/workgroups" \ + -H "Content-Type: application/json" \ + -H "x-api-key: $TG_API_KEY" +---- + +A JSON list of workgroups means the key works. Use the same header on every other xref:savanna:rest-api:index.adoc#_endpoints[control-plane endpoint]. diff --git a/modules/savanna/modules/rest-api/pages/data-plane-apis.adoc b/modules/savanna/modules/rest-api/pages/data-plane-apis.adoc new file mode 100644 index 00000000..901d8a2f --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/data-plane-apis.adoc @@ -0,0 +1,99 @@ += Data-plane APIs (REST++ and GSQL) +:experimental: +:page-hidden: true + +The xref:savanna:rest-api:index.adoc[Savanna REST API] is the *control plane*: it manages the resources _around_ your graph (workgroups, workspaces, backups). To read and write the data _inside_ a workspace, you call that workspace's *data-plane* APIs directly. + +The data-plane APIs are the standard TigerGraph database endpoints, fully documented in the https://www.tigergraph.com/docs/tigergraph-server/4.3/api/[TigerGraph DB REST Endpoints^] reference. That reference is written for self-managed installs, so its examples use `localhost:14240` and username/password auth. This page shows how to reach and authenticate the same endpoints on *Savanna*. + +== Two interfaces, one workspace + +The data plane exposes two interfaces on the same workspace host. They are not separate planes; they are two doors into the same database. + +[options="header",cols="1a,3a"] +|=== +|Interface |Use it for + +|*REST{plus}{plus}* (`/restpp/...`) +|Execute and move data at speed: run installed queries, and read or upsert vertices and edges. + +|*GSQL* (`/gsql/...`) +|Author and administer: define the schema, load data, write and *install* queries, and manage in-database users. Installing a query is what makes it callable through REST{plus}{plus}. +|=== + +[TIP] +==== +Rule of thumb: *GSQL* to author and administer, *REST{plus}{plus}* to execute and move data. +==== + +== Workspace host and base paths + +Data-plane requests go to your *workspace host*, not to `api.tgcloud.io`. On Savanna the host is reached over HTTPS on port `443`, so you do not append `:14240` as the TigerGraph DB docs show for self-managed installs. + +[source] +---- +https://.i.tgcloud.io/restpp/... # REST++ interface +https://.i.tgcloud.io/gsql/... # GSQL interface +---- + +Find your workspace host in the Savanna console from the workspace's *Connect* dialog, or from the control plane with xref:savanna:rest-api:endpoints/get-workspace-details.adoc[Get workspace details]. + +== Authentication + +The data plane does *not* accept the control-plane API key. Where the control plane uses an `x-api-key` header, the data plane authenticates with a xref:savanna:administration:settings/how2-create-database-secret.adoc[database secret] issued for the workspace. + +. xref:savanna:administration:settings/how2-create-database-secret.adoc[Create a database secret] for the workspace. +. Either pass the secret directly, or exchange it for a bearer token, on every request: + +[source,bash] +---- +# Option A: pass the secret directly +-H "Authorization: GSQL-Secret " + +# Option B: exchange the secret for a bearer token, then send the token +-H "Authorization: Bearer " +---- + +Tokens are requested per graph. You can find how to exchange a secret for a token, and which privileges each needs, in https://www.tigergraph.com/docs/tigergraph-server/4.3/user-access/user-credentials/[User credentials^]. + +[CAUTION] +==== +A database secret does not expire and carries the privileges of its user. Treat it like a password: keep it server-side, never in client code or source control, and revoke it if exposed. +==== + +== Example: run an installed query + +This calls the installed query `tg_wcc` on the `Transaction_Fraud` graph in one workspace. It is the same `POST /restpp/query/\{graph}/\{queryName}` endpoint from the TigerGraph DB docs, addressed at a Savanna workspace host and authenticated with a database secret. + +[source,bash] +---- +curl -X POST "https://.i.tgcloud.io/restpp/query/Transaction_Fraud/tg_wcc" \ + -H "Authorization: Bearer " \ + --data-raw '{"print_limit": 0, "print_results": false, "result_attribute": ""}' +---- + +A successful call returns JSON with `version`, `error`, `message`, and `results` fields, described under https://www.tigergraph.com/docs/tigergraph-server/4.3/api/[Output responses^]. + +[source,json] +---- +{ + "version": { "api": "v2", "schema": 0 }, + "error": false, + "message": "", + "results": [ { "@@components": 128 } ] +} +---- + +== Endpoint reference + +Savanna does not duplicate the data-plane endpoint catalog. You can find the full list of endpoints, parameters, and payload formats in the TigerGraph DB reference; apply the Savanna host and authentication from this page: + +* https://www.tigergraph.com/docs/tigergraph-server/4.3/api/[REST Endpoints overview^]. How to send requests, format parameters, and read responses. +* https://www.tigergraph.com/docs/tigergraph-server/4.3/api/built-in-endpoints[RESTPP & built-in endpoints^]. Run queries and read or upsert graph data. +* https://www.tigergraph.com/docs/tigergraph-server/4.3/api/[GSQL endpoints^]. Schema, loading, query installation, and user management. + +== Related topics + +* xref:savanna:workgroup-workspace:workspaces/connect-via-api.adoc[Connect via APIs]. Generated curl, Python, and JavaScript from the Savanna console. +* xref:savanna:administration:settings/how2-create-database-secret.adoc[Create a database secret]. The credential the data plane uses. +* xref:savanna:rest-api:index.adoc[Savanna REST API]. The control-plane API for managing workspaces. diff --git a/modules/savanna/modules/rest-api/pages/definitions.adoc b/modules/savanna/modules/rest-api/pages/definitions.adoc deleted file mode 100644 index 660a0a03..00000000 --- a/modules/savanna/modules/rest-api/pages/definitions.adoc +++ /dev/null @@ -1,888 +0,0 @@ -[[_definitions]] -= Data Definitions -:description: Descriptions of the data schemas used by the parameters, request bodies, and responses of Savanna endpoints - -Savanna uses several standardized data structures to pass information to and from its REST endpoints. -This data describes the data schemas for those data objects. - -== Data Objects - -[[_agentconfig]] -=== AgentConfig - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**catalog_activity_update_interval_seconds** + -__optional__|integer -|**enable_topology_force_update** + -__optional__|boolean -|**heartbeat_interval_seconds** + -__optional__|integer -|**query_activity_update_interval_seconds** + -__optional__|integer -|**topology_update_interval_seconds** + -__optional__|integer -|=== - - -[[_allowedip]] -=== AllowedIP - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**cidr** + -__required__|string -|**id** + -__optional__|string -|**note** + -__optional__|string -|=== - - -[[_backup]] -=== Backup - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**id** + -__optional__|string -|**is_automatic** + -__optional__|boolean -|**size_bytes** + -__optional__|string -|**status** + -__optional__|string -|**tag** + -__optional__|string -|**time** + -__optional__|string -|**type** + -__optional__|string -|**version** + -__optional__|string -|=== - - -[[_backuprestorestatus]] -=== BackupRestoreStatus - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**created_at** + -__optional__|string -|**name** + -__optional__|string -|**output** + -__optional__|string -|**status** + -__optional__|string -|=== - - -[[_backupschedule]] -=== BackupSchedule - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**max_backup_files** + -__optional__|integer -|**max_reserved_days** + -__optional__|integer -|**max_retry** + -__optional__|integer -|**pause** + -__optional__|boolean -|**schedule** + -__required__|string -|=== - - -[[_createworkgrouprequest]] -=== CreateWorkgroupRequest - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**cloud_provider_id** + -__required__|string -|**name** + -__optional__|string -|**platform** + -__optional__|<> -|**region** + -__optional__|string -|=== - - -[[_createworkspacerequest]] -=== CreateWorkspaceRequest -Create Workspace Request - - -[options="header", cols=".^3a,.^11a,.^4a"] -|=== -|Name|Description|Schema -|**addons** + -__optional__||< <> > array -|**auto_stop_minutes** + -__optional__||integer -|**enable_auto_start** + -__optional__||boolean -|**enable_ha** + -__optional__||boolean -|**is_rw** + -__optional__||boolean -|**name** + -__optional__||string -|**solution_install_request** + -__optional__||<> -|**tg_database_id** + -__optional__||string -|**tg_version** + -__optional__||string -|**workspace_type_name** + -__optional__|Workspace Type Name TG-0/TG-2|string -|=== - - -[[_deletebackuprequest]] -=== DeleteBackupRequest - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**backup_id** + -__required__|string -|=== - - -[[_folderstatistics]] -=== FolderStatistics - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**backup_size** + -__optional__|integer -|**billed_size** + -__optional__|integer -|**log_size** + -__optional__|integer -|**milvus_size** + -__optional__|integer -|**total_size** + -__optional__|integer -|**workspaces** + -__optional__|< <> > array -|=== - - -[[_indatabaseuserrequest]] -=== InDatabaseUserRequest - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**password** + -__optional__|string -|**username** + -__optional__|string -|=== - - -[[_region]] -=== Region - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**description** + -__optional__|string -|**name** + -__optional__|string -|=== - - -[[_restorebackuprequest]] -=== RestoreBackupRequest - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**backup_id** + -__required__|string -|=== - - -[[_solutioninstallrequest]] -=== SolutionInstallRequest - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**addons** + -__optional__|< <> > array -|**data_source_origin** + -__optional__|string -|**name** + -__optional__|string -|**solution_catalog_id** + -__optional__|string -|=== - - -[[_tgdatabase]] -=== TGDatabase - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**create_time** + -__optional__|string -|**database_id** + -__optional__|string -|**folder_statistics** + -__optional__|<> -|**name** + -__optional__|string -|**org_id** + -__optional__|string -|**org_name** + -__optional__|string -|**region** + -__optional__|string -|**tg_version** + -__optional__|string -|**workgroup_id** + -__optional__|string -|**workspaces** + -__optional__|< <> > array -|=== - - -[[_tgversion]] -=== TGVersion - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**image** + -__optional__|string -|**name** + -__optional__|string -|=== - - -[[_updatetgdatabaserequest]] -=== UpdateTGDatabaseRequest - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**tg_database_name** + -__required__|string -|=== - - -[[_updateworkgrouprequest]] -=== UpdateWorkgroupRequest - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**workgroup_name** + -__optional__|string -|=== - - -[[_updateworkspacerequest]] -=== UpdateWorkspaceRequest - -[options="header", cols=".^3a,.^11a,.^4a"] -|=== -|Name|Description|Schema -|**addons** + -__optional__||< <> > array -|**agent_config** + -__optional__||<> -|**auto_stop_minutes** + -__optional__|**Minimum value** : `0`|integer -|**enable_auto_start** + -__optional__||boolean -|**enable_ha** + -__optional__||boolean -|**pause** + -__optional__||boolean -|**workspace_name** + -__optional__||string -|**workspace_type_name** + -__optional__||string -|=== - - -[[_workgroup]] -=== Workgroup - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**cloud_provider_id** + -__optional__|string -|**creator** + -__optional__|string -|**enable_allow_list** + -__optional__|boolean -|**name** + -__optional__|string -|**org_id** + -__optional__|string -|**org_name** + -__optional__|string -|**platform** + -__optional__|<> -|**region** + -__optional__|string -|**tg_databases** + -__optional__|< <> > array -|**workgroup_id** + -__optional__|string -|**workspaces** + -__optional__|< <> > array -|=== - - -[[_workspace]] -=== Workspace - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**addons** + -__optional__|< <> > array -|**agent_config** + -__optional__|<> -|**auto_stop_minutes** + -__optional__|integer -|**cloud_provider_id** + -__optional__|string -|**condition_type** + -__optional__|string -|**created_at** + -__optional__|string -|**creator** + -__optional__|string -|**database_id** + -__optional__|string -|**edge_count** + -__optional__|integer -|**enable_auto_start** + -__optional__|boolean -|**enable_ha** + -__optional__|boolean -|**folder_statistics** + -__optional__|<> -|**graph_topology_size_bytes** + -__optional__|integer -|**is_rw** + -__optional__|boolean -|**last_modified_time** + -__optional__|string -|**name** + -__optional__|string -|**nginx_host** + -__optional__|string -|**org_id** + -__optional__|string -|**org_name** + -__optional__|string -|**refresh_message** + -__optional__|string -|**refresh_status** + -__optional__|string -|**region** + -__optional__|string -|**size** + -__optional__|integer -|**snapshot_time** + -__optional__|string -|**solution_catalog_id** + -__optional__|string -|**status** + -__optional__|string -|**tg_version** + -__optional__|string -|**version_number** + -__optional__|integer -|**vertex_count** + -__optional__|integer -|**workgroup_id** + -__optional__|string -|**workgroup_name** + -__optional__|string -|**workspace_id** + -__optional__|string -|**workspace_type** + -__optional__|<> -|=== - - -[[_workspaceschedule]] -=== WorkspaceSchedule - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**date** + -__optional__|string -|**id** + -__optional__|string -|**repeat** + -__required__|string -|**repeat_on** + -__optional__|string -|**time** + -__required__|string -|**timezone** + -__required__|string -|**workspace_id** + -__required__|string -|**workspace_type_name** + -__optional__|string -|=== - - -[[_workspacesize]] -=== WorkspaceSize - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**size** + -__optional__|integer -|**workspace_id** + -__optional__|string -|=== - - -[[_workspacetype]] -=== WorkspaceType - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**cpu** + -__optional__|string -|**ha** + -__optional__|integer -|**memory** + -__optional__|string -|**partition** + -__optional__|integer -|**typeName** + -__optional__|string -|=== - - -[[_middleware_error]] -=== middleware.Error - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**FieldName** + -__optional__|string -|**Reason** + -__optional__|string -|**Type** + -__optional__|<> -|=== - - -[[_middleware_errortype]] -=== middleware.ErrorType -__Type__ : enum (Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown) - - -[[_middleware_response]] -=== middleware.Response - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**Error** + -__optional__|boolean -|**ErrorDetails** + -__optional__|< <> > array -|**Message** + -__optional__|string -|**RequestID** + -__optional__|string -|**Result** + -__optional__|object -|=== - - -[[_org_handler_orglistuserresponse]] -=== org_handler.OrgListUserResponse - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**auth0UserID** + -__optional__|string -|**authID** + -__optional__|string -|**created** + -__optional__|string -|**email** + -__optional__|string -|**enabled** + -__optional__|boolean -|**firstName** + -__optional__|string -|**id** + -__optional__|string -|**lastName** + -__optional__|string -|**metadata** + -__optional__|<> -|**path** + -__optional__|string -|**roles** + -__optional__|< <> > array -|**tenantID** + -__optional__|string -|**trn** + -__optional__|string -|**updated** + -__optional__|string -|**username** + -__optional__|string -|=== - - -[[_org_handler_orgmetadata]] -=== org_handler.OrgMetadata - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**attachedTo** + -__optional__|< string > array -|**lastLogin** + -__optional__|string -|=== - - -[[_org_handler_orgrole]] -=== org_handler.OrgRole - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**displayName** + -__optional__|string -|**id** + -__optional__|string -|**name** + -__optional__|string -|**path** + -__optional__|string -|**tenantID** + -__optional__|string -|**trn** + -__optional__|string -|=== - - -[[_org_handler_putorgusersroles]] -=== org_handler.PutOrgUsersRoles - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**roles** + -__optional__|< string > array -|=== - - -[[_pb_apikey]] -=== pb.APIKey - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**created_at** + -__optional__|string -|**creator** + -__optional__|string -|**description** + -__optional__|string -|**expires_at** + -__optional__|string -|**key_name** + -__optional__|string -|**org_id** + -__optional__|string -|**plaintext_key** + -__optional__|string -|**redacted_key** + -__optional__|string -|**user_id** + -__optional__|string -|=== - - -[[_pb_createapikeyrequest]] -=== pb.CreateAPIKeyRequest - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**description** + -__optional__|string -|**life_time_in_seconds** + -__optional__|integer -|=== - - -[[_pb_customercreditcard]] -=== pb.CustomerCreditCard - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**brand** + -__optional__|string -|**card_id** + -__optional__|string -|**expire_month** + -__optional__|integer -|**expire_year** + -__optional__|integer -|**last_4_digits** + -__optional__|string -|**name_on_card** + -__optional__|string -|**org_id** + -__optional__|string -|=== - - -[[_pb_datastoragepricing]] -=== pb.DataStoragePricing - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**platform** + -__optional__|string -|**price_per_month** + -__optional__|number -|**region** + -__optional__|string -|=== - - -[[_pb_deleteapikeyrequest]] -=== pb.DeleteAPIKeyRequest - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**key_name** + -__optional__|string -|=== - - -[[_pb_featureflag]] -=== pb.FeatureFlag - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**enabled** + -__optional__|boolean -|**feature_name** + -__optional__|string -|=== - - -[[_pb_getcustomercreditcardsresponse]] -=== pb.GetCustomerCreditCardsResponse - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**credit_cards** + -__optional__|< <> > array -|**default_card** + -__optional__|string -|=== - - -[[_pb_orgquota]] -=== pb.OrgQuota - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**max_workspace_memory** + -__optional__|string -|**max_workspace_type** + -__optional__|string -|**memory_limit** + -__optional__|string -|**memory_usage_in_bytes** + -__optional__|integer -|**org_id** + -__optional__|string -|**ro_workspace_count_limit** + -__optional__|integer -|**ro_workspace_count_usage** + -__optional__|integer -|**rw_workspace_count_limit** + -__optional__|integer -|**rw_workspace_count_usage** + -__optional__|integer -|**tier** + -__optional__|string -|**workspace_auto_backup_count_limit** + -__optional__|integer -|**workspace_auto_backup_retention_in_days** + -__optional__|integer -|**workspace_manual_backup_count_limit** + -__optional__|integer -|=== - - -[[_pb_organization]] -=== pb.Organization - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**create_time** + -__optional__|string -|**creator** + -__optional__|string -|**feature_flag** + -__optional__|< <> > array -|**logo_url** + -__optional__|string -|**org_display_name** + -__optional__|string -|**org_id** + -__optional__|string -|**org_name** + -__optional__|string -|=== - - -[[_pb_resourcepricing]] -=== pb.ResourcePricing - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**addon_pricing** + -__optional__|< <> > array -|**data_storage_pricing** + -__optional__|< <> > array -|**workspace_pricing** + -__optional__|< <> > array -|=== - - -[[_pb_workspacepricing]] -=== pb.WorkspacePricing - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**cloud_provider** + -__optional__|string -|**ha** + -__optional__|string -|**platform** + -__optional__|string -|**price_per_hour** + -__optional__|number -|**region** + -__optional__|string -|**workspace_type** + -__optional__|string -|=== - - -[[_resource_manager_handler_getmetadata_metadata]] -=== resource_manager_handler.GetMetadata.metadata - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**regions** + -__optional__|< <> > array -|**tgVersions** + -__optional__|< <> > array -|**workspaceTypes** + -__optional__|< <> > array -|=== - - -[[_tgiam_iamuser]] -=== tgIAM.IAMUser - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**auth0UserID** + -__optional__|string -|**created** + -__optional__|string -|**email** + -__optional__|string -|**enabled** + -__optional__|boolean -|**firstName** + -__optional__|string -|**id** + -__optional__|string -|**lastName** + -__optional__|string -|**path** + -__optional__|string -|**tenantID** + -__optional__|string -|**trn** + -__optional__|string -|**updated** + -__optional__|string -|**username** + -__optional__|string -|=== - - -[[_tgiam_orgrequest]] -=== tgIAM.OrgRequest - -[options="header", cols=".^3a,.^4a"] -|=== -|Name|Schema -|**logoUrl** + -__optional__|string -|**orgDisplayName** + -__optional__|string -|**orgID** + -__optional__|string -|**orgName** + -__optional__|string -|=== - - - diff --git a/modules/savanna/modules/rest-api/pages/endpoints/add-an-allowed-ip.adoc b/modules/savanna/modules/rest-api/pages/endpoints/add-an-allowed-ip.adoc new file mode 100644 index 00000000..1dcad7ed --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/add-an-allowed-ip.adoc @@ -0,0 +1,485 @@ += Add an allowed IP +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Adds an IP address or CIDR range to a workgroup allow list.

+ +
+
+
+
+ POST + /controller/v4/v2/workgroups/{workgroupID}/allow_list +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+

Body

+
+
+ # + cidr + string + required +
+

IP address or range in CIDR notation, such as 192.168.1.0/24 for a range or 192.168.1.2/32 for a single address.

+
+
+
+ # + id + string +
+

Unique identifier of the allow list entry.

+
+
+
+ # + note + string +
+

Note recording why the address was allowed.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
cidrstringrequired
+

IP address or range in CIDR notation, such as 192.168.1.0/24 for a range or 192.168.1.2/32 for a single address.

+
+
+
idstring
+

Unique identifier of the allow list entry.

+
+
+
notestring
+

Note recording why the address was allowed.

+
+
+
+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/check-the-current-ip.adoc b/modules/savanna/modules/rest-api/pages/endpoints/check-the-current-ip.adoc new file mode 100644 index 00000000..80dc219c --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/check-the-current-ip.adoc @@ -0,0 +1,328 @@ += Check the current IP +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Returns your current public IP address and whether the workgroup allow list permits it.

+ +
+
+
+
+ GET + /controller/v4/v2/workgroups/{workgroupID}/allow_list/current +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
IsAllowedboolean
+
+
+
CurrentIPstring
+
+
+
+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/create-a-cloud-provider.adoc b/modules/savanna/modules/rest-api/pages/endpoints/create-a-cloud-provider.adoc new file mode 100644 index 00000000..3100e021 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/create-a-cloud-provider.adoc @@ -0,0 +1,740 @@ += Create a cloud provider +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Registers a cloud account you own with Savanna so workgroups can be deployed into it. This is the Bring Your Own Cloud (BYOC) setup step, and it grants Savanna a cross-account IAM role in your AWS account.

+ +
+
+
+
+ POST + /controller/v4/v2/cloud-providers +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Body

+
+
+ # + created_by + string +
+

User creating the cloud provider.

+
+
+
+ # + name + string +
+

Name for the new cloud provider.

+
+
+
+ # + options + object +
+

Additional cloud-provider configuration options.

+
+ + Show child attributes + Hide child attributes + +
+
+
account_idstring
+

Cloud account identifier associated with the provider.

+
+
+
secure_connectionboolean
+

Whether the provider uses a private, secure connection.

+
+
+
+
+
+
+ # + platform + string +
+

Cloud platform that hosts the provider.

+
+
+
+ # + region + string +
+

Cloud region that hosts the provider.

+
+
+
+ # + role_arn + string +
+

Amazon Resource Name of the IAM role TigerGraph assumes.

+
+
+
+ # + role_external_id + string +
+

External identifier used when TigerGraph assumes the IAM role.

+
+
+
+ # + type + string +
+

Type is used by two sets of API and will be set to 'private' when called by the Admin API +and 'public' when called by the public cloud provider creation API.

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
api_tokensstring[]
+

API tokens associated with the cloud provider.

+
+
+
availability_zonesstring[]
+

Availability zones configured for the cloud provider.

+
+
+
cluster_enabled_log_typesstring[]
+

Kubernetes control-plane log types enabled for the provider.

+

Available options: api, audit, authenticator, controllerManager, scheduler

+
+
+
component_versionsstring
+

Versions of the components installed for the provider.

+
+
+
created_atstring
+

Time the cloud provider was created.

+
+
+
created_bystring
+

User who created the cloud provider.

+
+
+
eks_idstring
+

Identifier of the Amazon EKS cluster.

+
+
+
endpoint_service_namestring
+

Name of the private endpoint service.

+
+
+
idstring
+

Unique identifier of the cloud provider.

+
+
+
last_errorstring
+

Most recent error reported while provisioning or updating the provider.

+
+
+
namestring
+

Name of the cloud provider.

+
+
+
node_group_configobject
+

Configuration of the Kubernetes node groups.

+
+ + Show child attributes + Hide child attributes + +
+
+
ng_16object
+

Configuration of the 16-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_32object
+

Configuration of the 32-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_48object
+

Configuration of the 48-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_64object
+

Configuration of the 64-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_systemobject
+

Configuration of the system node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
prefetch_image_liststring[]
+

Container images to prefetch onto the nodes.

+
+
+
+
+
+
optionsobject
+

Additional cloud-provider configuration options.

+
+ + Show child attributes + Hide child attributes + +
+
+
account_idstring
+

Cloud account identifier associated with the provider.

+
+
+
secure_connectionboolean
+

Whether the provider uses a private, secure connection.

+
+
+
+
+
+
org_idstring
+

Unique identifier of the organization that owns the provider.

+
+
+
platformstring
+

Cloud platform that hosts the provider.

+
+
+
regionstring
+

Cloud region that hosts the provider.

+
+
+
role_arnstring
+

Amazon Resource Name of the IAM role TigerGraph assumes.

+
+
+
role_external_idstring
+

External identifier used when TigerGraph assumes the IAM role.

+
+
+
security_group_idstring
+

Identifier of the network security group.

+
+
+
short_idstring
+

Short identifier of the cloud provider.

+
+
+
statusstring
+

Current status of the cloud provider.

+
+
+
subnet_idstring[]
+

Identifiers of the subnets used by the provider.

+
+
+
typestring
+

Access type of the cloud provider.

+
+
+
updated_atstring
+

Time the cloud provider was last updated.

+
+
+
versionstring
+

Version of the cloud provider deployment.

+
+
+
version_numberinteger
+

Internal version number of the cloud provider record.

+
+
+
vpc_idstring
+

Identifier of the virtual private cloud.

+
+
+
vpc_owned_by_tgboolean
+

Whether TigerGraph owns and manages the virtual private cloud.

+
+
+
work_dirstring
+

Working directory used while provisioning the provider.

+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/create-a-workgroup.adoc b/modules/savanna/modules/rest-api/pages/endpoints/create-a-workgroup.adoc new file mode 100644 index 00000000..86e2f991 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/create-a-workgroup.adoc @@ -0,0 +1,1305 @@ += Create a workgroup +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Creates a workgroup with the selected cloud provider, region, and deployment settings.

+ +
+
+
+
+ POST + /controller/v4/v2/workgroups +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Body

+
+
+ # + cloud_provider_id + string + required +
+

Unique identifier of the cloud provider configuration to use.

+
+
+
+ # + enable_application_log + boolean +
+

Whether application logging is enabled.

+
+
+
+ # + enable_encryption + boolean +
+

Whether data is encrypted at rest.

+
+
+
+ # + name + string +
+

Name for the new workgroup.

+
+
+
+ # + platform + string +
+

Cloud platform that hosts the workgroup.

+

Available options: aws, azure, gcp

+
+
+
+ # + region + string +
+

Cloud region that hosts the workgroup.

+
+
+
+ # + shared_storage + boolean +
+

Whether workspaces in the workgroup share storage.

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_statusstring
+

Current status of the cloud provider configuration.

+
+
+
cloud_provider_typestring
+

Type of cloud provider configuration.

+
+
+
creatorstring
+

User who created the workgroup.

+
+
+
enable_allow_listboolean
+

Whether the IP allow list is enabled.

+
+
+
enable_application_logboolean
+

Whether application logging is enabled.

+
+
+
encryption_methodstring
+

Encryption method used by the workgroup.

+

Available options: TMK

+
+
+
is_current_ip_allowedboolean
+

Whether the current client IP is allowed.

+
+
+
namestring
+

Name of the workgroup.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
platformstring
+

Cloud platform that hosts the workgroup.

+

Available options: aws, azure, gcp

+
+
+
regionstring
+

Cloud region that hosts the workgroup.

+
+
+
shared_storageboolean
+

Whether shared storage is enabled.

+
+
+
tg_databasesobject[]
+

Databases associated with the workgroup.

+
+ + Show child attributes + Hide child attributes + +
+
+
create_timestring
+

Time the database was created.

+
+
+
database_idstring
+

Unique identifier of the database.

+
+
+
folder_statisticsobject
+

Storage statistics for the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
namestring
+

Name of the database.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
regionstring
+

Cloud region that hosts the database.

+
+
+
tg_versionstring
+

TigerGraph version of the database.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workspacesobject[]
+

Workspaces attached to the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+
+
+
workgroup_idstring
+

Unique identifier of the workgroup.

+
+
+
workspacesobject[]
+

Workspaces associated with the workgroup.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/create-a-workspace-schedule.adoc b/modules/savanna/modules/rest-api/pages/endpoints/create-a-workspace-schedule.adoc new file mode 100644 index 00000000..814cbd41 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/create-a-workspace-schedule.adoc @@ -0,0 +1,598 @@ += Create a workspace schedule +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Creates a recurring workspace schedule.

+ +
+
+
+
+ POST + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+

Body

+
+
+ # + date + string +
+

Date the action runs when the schedule does not repeat.

+
+
+
+ # + id + string +
+

Unique identifier of the schedule.

+
+
+
+ # + repeat + string + required +
+

How often the action repeats: daily, weekly, or weekdays.

+
+
+
+ # + repeat_on + string +
+

Days the action runs when it repeats weekly.

+
+
+
+ # + time + string + required +
+

Time of day the action runs.

+
+
+
+ # + timezone + string + required +
+

Time zone the schedule is interpreted in.

+
+
+
+ # + workspace_id + string + required +
+

Unique identifier of the scheduled workspace.

+
+
+
+ # + workspace_type_name + string +
+

Workspace size to apply when the action runs.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
datestring
+

Date the action runs when the schedule does not repeat.

+
+
+
idstring
+

Unique identifier of the schedule.

+
+
+
repeatstringrequired
+

How often the action repeats: daily, weekly, or weekdays.

+
+
+
repeat_onstring
+

Days the action runs when it repeats weekly.

+
+
+
timestringrequired
+

Time of day the action runs.

+
+
+
timezonestringrequired
+

Time zone the schedule is interpreted in.

+
+
+
workspace_idstringrequired
+

Unique identifier of the scheduled workspace.

+
+
+
workspace_type_namestring
+

Workspace size to apply when the action runs.

+
+
+
+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/create-a-workspace.adoc b/modules/savanna/modules/rest-api/pages/endpoints/create-a-workspace.adoc new file mode 100644 index 00000000..e21a5022 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/create-a-workspace.adoc @@ -0,0 +1,1033 @@ += Create a workspace +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Creates a workspace in a workgroup. The workspace's database is created with it.

+ +
+
+
+
+ POST + /controller/v4/v2/workgroups/{workgroupID}/workspaces +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+

Body

+
+
+ # + addons + object[] +
+

Add-ons to enable on the new workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+ # + auto_stop_minutes + integer +
+

Idle minutes before the workspace stops automatically.

+
+
+
+ # + enable_auto_start + boolean +
+

Whether the workspace starts automatically on access.

+
+
+
+ # + enable_ha + boolean +
+

Whether high availability is enabled, which adds redundancy and improves fault tolerance.

+
+
+
+ # + is_rw + boolean +
+

Whether the workspace accepts writes. Backups require a read-write workspace.

+
+
+
+ # + maintenance_window_day_of_week + integer +
+

Day of the week the maintenance window starts.

+
+
+
+ # + maintenance_window_hour_of_day + integer +
+

Hour of the day the maintenance window starts.

+
+
+
+ # + maintenance_window_interval_weeks + integer +
+

Number of weeks between maintenance windows.

+
+
+
+ # + maintenance_window_time_zone + string +
+

Time zone used for the maintenance window.

+
+
+
+ # + name + string +
+

Name for the new workspace.

+
+
+
+ # + solution_install_request + object +
+

Solution to install on the new workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons to enable alongside the solution.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
data_source_originstring
+

Origin of the sample data loaded with the solution.

+
+
+
namestring
+

Name for the installed solution.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry to install.

+
+
+
+
+
+
+ # + tg_database_id + string +
+

Unique identifier of the database to attach.

+
+
+
+ # + tg_version + string +
+

TigerGraph version to run in the workspace.

+
+
+
+ # + update_strategy + string +
+

Strategy used to apply workspace updates.

+
+
+
+ # + workspace_type_name + string +
+

Workspace Type Name TG-0/TG-2

+
+
+
+ # + x_test_env + string +
+

Reserved for internal testing.

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/create-an-add-on-configuration.adoc b/modules/savanna/modules/rest-api/pages/endpoints/create-an-add-on-configuration.adoc new file mode 100644 index 00000000..6b5b313d --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/create-an-add-on-configuration.adoc @@ -0,0 +1,447 @@ += Create an add-on configuration +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Creates a configuration for an installed add-on.

+ +
+
+
+
+ POST + /controller/v4/v2/add-ons/{installedAddonsID}/configs +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + installedAddonsID + string + path + required +
+

Installed Add-on ID

+
+
+
+

Body

+
+
+ # + config_name + string + required +
+

Name of the configuration.

+
+
+
+ # + config_value + string + required +
+

Value of the configuration.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/create-an-in-database-user.adoc b/modules/savanna/modules/rest-api/pages/endpoints/create-an-in-database-user.adoc new file mode 100644 index 00000000..4a4883a6 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/create-an-in-database-user.adoc @@ -0,0 +1,539 @@ += Create an in-database user +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Creates an in-database GSQL user for a workspace.

+ +
+
+
+
+ POST + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+

Body

+
+
+ # + password + string +
+

Password for the in-database user.

+
+
+
+ # + username + string +
+

Username for the in-database user.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
auth0UserIDstring
+

Identifier of the user in the identity provider.

+
+
+
createdstring
+

Time the user was created.

+
+
+
descriptionstring
+

Description of the user.

+
+
+
emailstring
+

Email address of the user.

+
+
+
enabledboolean
+

Whether the user can sign in.

+
+
+
firstNamestring
+

Given name of the user.

+
+
+
idstring
+

Unique identifier of the user.

+
+
+
lastNamestring
+

Family name of the user.

+
+
+
metadataobject
+

Additional details about the user.

+
+
+
pathstring
+

Hierarchical path of the user within the organization.

+
+
+
rolestring
+

Role assigned to the user.

+
+
+
tenantIDstring
+

Unique identifier of the tenant the user belongs to.

+
+
+
trnstring
+

TigerGraph resource name of the user.

+
+
+
updatedstring
+

Time the user was last updated.

+
+
+
usernamestring
+

Username of the user.

+
+
+
+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/delete-a-backup.adoc b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-backup.adoc new file mode 100644 index 00000000..0e28ea00 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-backup.adoc @@ -0,0 +1,441 @@ += Delete a backup +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Deletes the specified workspace backup.

+ +
+
+
+
+ DELETE + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+

Body

+
+
+ # + backup_id + string + required +
+

Unique identifier of the backup to delete.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/delete-a-cloud-provider.adoc b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-cloud-provider.adoc new file mode 100644 index 00000000..7ac744e6 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-cloud-provider.adoc @@ -0,0 +1,225 @@ += Delete a cloud provider +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Unregisters a Bring Your Own Cloud (BYOC) provider and removes the Savanna components from that cloud account. Delete its workgroups first.

+ +
+
+
+
+ DELETE + /controller/v4/v2/cloud-providers/{cloudProviderID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + cloudProviderID + string + path + required +
+

Cloud Provider ID

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/delete-a-database.adoc b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-database.adoc new file mode 100644 index 00000000..7f444f66 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-database.adoc @@ -0,0 +1,235 @@ += Delete a database +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Deletes a database from a workgroup.

+ +
+
+
+
+ DELETE + /controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + databaseID + string + path + required +
+

Database ID

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/delete-a-workgroup.adoc b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-workgroup.adoc new file mode 100644 index 00000000..73947620 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-workgroup.adoc @@ -0,0 +1,225 @@ += Delete a workgroup +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Deletes a workgroup.

+ +
+
+
+
+ DELETE + /controller/v4/v2/workgroups/{workgroupID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + string +
+

Payload returned by the request.

+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/delete-a-workspace-schedule.adoc b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-workspace-schedule.adoc new file mode 100644 index 00000000..1e7a0780 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-workspace-schedule.adoc @@ -0,0 +1,331 @@ += Delete a workspace schedule +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Deletes a workspace schedule.

+ +
+
+
+
+ DELETE + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules/{scheduleID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+ # + scheduleID + string + path + required +
+

Schedule ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + string +
+

Payload returned by the request.

+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/delete-a-workspace.adoc b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-workspace.adoc new file mode 100644 index 00000000..3e058600 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/delete-a-workspace.adoc @@ -0,0 +1,235 @@ += Delete a workspace +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Deletes a workspace from a workgroup.

+ +
+
+
+
+ DELETE + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/delete-an-add-on-configuration.adoc b/modules/savanna/modules/rest-api/pages/endpoints/delete-an-add-on-configuration.adoc new file mode 100644 index 00000000..76ac8b7e --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/delete-an-add-on-configuration.adoc @@ -0,0 +1,398 @@ += Delete an add-on configuration +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Deletes a configuration of an installed add-on.

+ +
+
+
+
+ DELETE + /controller/v4/v2/add-ons/{installedAddonsID}/configs/{configID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + installedAddonsID + string + path + required +
+

Installed Add-on ID

+
+
+
+ # + configID + string + path + required +
+

Configuration ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + boolean +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/delete-an-allowed-ip.adoc b/modules/savanna/modules/rest-api/pages/endpoints/delete-an-allowed-ip.adoc new file mode 100644 index 00000000..206d6038 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/delete-an-allowed-ip.adoc @@ -0,0 +1,321 @@ += Delete an allowed IP +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Removes an IP address or CIDR range from a workgroup allow list.

+ +
+
+
+
+ DELETE + /controller/v4/v2/workgroups/{workgroupID}/allow_list/{id} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + id + string + path + required +
+

Allowed IP ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + string +
+

Payload returned by the request.

+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/delete-an-in-database-user.adoc b/modules/savanna/modules/rest-api/pages/endpoints/delete-an-in-database-user.adoc new file mode 100644 index 00000000..f60c7ed3 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/delete-an-in-database-user.adoc @@ -0,0 +1,455 @@ += Delete an in-database user +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Deletes an in-database GSQL user from a workspace.

+ +
+
+
+
+ DELETE + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+

Body

+
+
+ # + password + string +
+

Password for the in-database user.

+
+
+
+ # + username + string +
+

Username for the in-database user.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/disable-the-allow-list.adoc b/modules/savanna/modules/rest-api/pages/endpoints/disable-the-allow-list.adoc new file mode 100644 index 00000000..406a47dc --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/disable-the-allow-list.adoc @@ -0,0 +1,311 @@ += Disable the allow list +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Disables IP allow-list enforcement for a workgroup.

+ +
+
+
+
+ PUT + /controller/v4/v2/workgroups/{workgroupID}/allow_list/disable +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + string +
+

Payload returned by the request.

+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/enable-the-allow-list.adoc b/modules/savanna/modules/rest-api/pages/endpoints/enable-the-allow-list.adoc new file mode 100644 index 00000000..9e6cf263 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/enable-the-allow-list.adoc @@ -0,0 +1,311 @@ += Enable the allow list +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Enables IP allow-list enforcement for a workgroup.

+ +
+
+
+
+ PUT + /controller/v4/v2/workgroups/{workgroupID}/allow_list/enable +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + string +
+

Payload returned by the request.

+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/get-backup-restore-status.adoc b/modules/savanna/modules/rest-api/pages/endpoints/get-backup-restore-status.adoc new file mode 100644 index 00000000..ab170720 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/get-backup-restore-status.adoc @@ -0,0 +1,360 @@ += Get backup restore status +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Returns the status of a backup restore job.

+ +
+
+
+
+ GET + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/{job}/status +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+ # + job + string + path + required +
+

Job ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
created_atstring
+

Time the restore job started.

+
+
+
namestring
+

Name of the restore job.

+
+
+
outputstring
+

Log output produced by the restore job.

+
+
+
statusstring
+

Current status of the restore job.

+
+
+
+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/get-backup-schedule.adoc b/modules/savanna/modules/rest-api/pages/endpoints/get-backup-schedule.adoc new file mode 100644 index 00000000..06148787 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/get-backup-schedule.adoc @@ -0,0 +1,355 @@ += Get backup schedule +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Returns the backup schedule for a workspace.

+ +
+
+
+
+ GET + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/schedule +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_backup_filesinteger
+

Maximum number of backups to keep.

+
+
+
max_reserved_daysinteger
+

Number of days a backup is kept before it is removed.

+
+
+
max_retryinteger
+

Number of times a failed backup is retried.

+
+
+
pauseboolean
+

Whether the schedule is paused.

+
+
+
schedulestringrequired
+

Cron expression that sets when the backup runs.

+
+
+
+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/get-cloud-provider-details.adoc b/modules/savanna/modules/rest-api/pages/endpoints/get-cloud-provider-details.adoc new file mode 100644 index 00000000..30b0a1d7 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/get-cloud-provider-details.adoc @@ -0,0 +1,568 @@ += Get cloud provider details +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Returns a single Bring Your Own Cloud (BYOC) provider, including its status, the AWS resources Savanna created in your account, and its component versions.

+ +
+
+
+
+ GET + /controller/v4/v2/cloud-providers/{cloudProviderID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + cloudProviderID + string + path + required +
+

Cloud Provider ID

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
api_tokensstring[]
+

API tokens associated with the cloud provider.

+
+
+
availability_zonesstring[]
+

Availability zones configured for the cloud provider.

+
+
+
cluster_enabled_log_typesstring[]
+

Kubernetes control-plane log types enabled for the provider.

+

Available options: api, audit, authenticator, controllerManager, scheduler

+
+
+
component_versionsstring
+

Versions of the components installed for the provider.

+
+
+
created_atstring
+

Time the cloud provider was created.

+
+
+
created_bystring
+

User who created the cloud provider.

+
+
+
eks_idstring
+

Identifier of the Amazon EKS cluster.

+
+
+
endpoint_service_namestring
+

Name of the private endpoint service.

+
+
+
idstring
+

Unique identifier of the cloud provider.

+
+
+
last_errorstring
+

Most recent error reported while provisioning or updating the provider.

+
+
+
namestring
+

Name of the cloud provider.

+
+
+
node_group_configobject
+

Configuration of the Kubernetes node groups.

+
+ + Show child attributes + Hide child attributes + +
+
+
ng_16object
+

Configuration of the 16-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_32object
+

Configuration of the 32-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_48object
+

Configuration of the 48-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_64object
+

Configuration of the 64-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_systemobject
+

Configuration of the system node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
prefetch_image_liststring[]
+

Container images to prefetch onto the nodes.

+
+
+
+
+
+
optionsobject
+

Additional cloud-provider configuration options.

+
+ + Show child attributes + Hide child attributes + +
+
+
account_idstring
+

Cloud account identifier associated with the provider.

+
+
+
secure_connectionboolean
+

Whether the provider uses a private, secure connection.

+
+
+
+
+
+
org_idstring
+

Unique identifier of the organization that owns the provider.

+
+
+
platformstring
+

Cloud platform that hosts the provider.

+
+
+
regionstring
+

Cloud region that hosts the provider.

+
+
+
role_arnstring
+

Amazon Resource Name of the IAM role TigerGraph assumes.

+
+
+
role_external_idstring
+

External identifier used when TigerGraph assumes the IAM role.

+
+
+
security_group_idstring
+

Identifier of the network security group.

+
+
+
short_idstring
+

Short identifier of the cloud provider.

+
+
+
statusstring
+

Current status of the cloud provider.

+
+
+
subnet_idstring[]
+

Identifiers of the subnets used by the provider.

+
+
+
typestring
+

Access type of the cloud provider.

+
+
+
updated_atstring
+

Time the cloud provider was last updated.

+
+
+
versionstring
+

Version of the cloud provider deployment.

+
+
+
version_numberinteger
+

Internal version number of the cloud provider record.

+
+
+
vpc_idstring
+

Identifier of the virtual private cloud.

+
+
+
vpc_owned_by_tgboolean
+

Whether TigerGraph owns and manages the virtual private cloud.

+
+
+
work_dirstring
+

Working directory used while provisioning the provider.

+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/get-database-details.adoc b/modules/savanna/modules/rest-api/pages/endpoints/get-database-details.adoc new file mode 100644 index 00000000..6e5d8ea3 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/get-database-details.adoc @@ -0,0 +1,760 @@ += Get database details +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Returns details for a database in a workgroup.

+ +
+
+
+
+ GET + /controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + databaseID + string + path + required +
+

Database ID

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
create_timestring
+

Time the database was created.

+
+
+
database_idstring
+

Unique identifier of the database.

+
+
+
folder_statisticsobject
+

Storage statistics for the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
namestring
+

Name of the database.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
regionstring
+

Cloud region that hosts the database.

+
+
+
tg_versionstring
+

TigerGraph version of the database.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workspacesobject[]
+

Workspaces attached to the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/get-installed-add-on-details.adoc b/modules/savanna/modules/rest-api/pages/endpoints/get-installed-add-on-details.adoc new file mode 100644 index 00000000..a7ddbb0e --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/get-installed-add-on-details.adoc @@ -0,0 +1,388 @@ += Get installed add-on details +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Returns a single installed add-on.

+ +
+
+
+
+ GET + /controller/v4/v2/installed-addons/{installedAddonsID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + installedAddonsID + string + path + required +
+

Installed Add-on ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/get-supported-workspace-options.adoc b/modules/savanna/modules/rest-api/pages/endpoints/get-supported-workspace-options.adoc new file mode 100644 index 00000000..289aee5c --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/get-supported-workspace-options.adoc @@ -0,0 +1,360 @@ += Get supported workspace options +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the regions, TigerGraph versions, and workspace types available to your organization.

+ +
+
+
+
+ GET + /controller/v4/v2/workspaces/meta +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Query parameters

+
+
+ # + upgrade + boolean + query +
+

When true, tgVersions only include versions with allow_upgrade; when false or omitted (default), all create-allowed versions for the org are returned

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
regionsobject[]
+

Cloud regions available to your org.

+
+ + Show child attributes + Hide child attributes + +
+
+
descriptionstring
+

Description of the region.

+
+
+
namestring
+

Name of the region.

+
+
+
+
+
+
tgVersionsobject[]
+

TigerGraph versions available to your org.

+
+ + Show child attributes + Hide child attributes + +
+
+
allow_createboolean
+

Whether new workspaces can be created on this version.

+
+
+
allow_upgradeboolean
+

Whether existing workspaces can be upgraded to this version.

+
+
+
channelstring
+

Release channel the version belongs to.

+
+
+
end_of_lifestring
+

Date the version stops being supported.

+
+
+
imagestring
+

Container image that provides the version.

+
+
+
incompatible_upgrades_fromstring[]
+

Versions that cannot be upgraded to this version.

+
+
+
namestring
+

Version number.

+
+
+
orgsstring[]
+

For customized versions

+
+
+
+
+
+
workspaceTypesobject[]
+

Workspace sizes available to your org.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/get-workgroup-details.adoc b/modules/savanna/modules/rest-api/pages/endpoints/get-workgroup-details.adoc new file mode 100644 index 00000000..9eb38845 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/get-workgroup-details.adoc @@ -0,0 +1,1094 @@ += Get workgroup details +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Returns details for a workgroup in your organization.

+ +
+
+
+
+ GET + /controller/v4/v2/workgroups/{workgroupID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_statusstring
+

Current status of the cloud provider configuration.

+
+
+
cloud_provider_typestring
+

Type of cloud provider configuration.

+
+
+
creatorstring
+

User who created the workgroup.

+
+
+
enable_allow_listboolean
+

Whether the IP allow list is enabled.

+
+
+
enable_application_logboolean
+

Whether application logging is enabled.

+
+
+
encryption_methodstring
+

Encryption method used by the workgroup.

+

Available options: TMK

+
+
+
is_current_ip_allowedboolean
+

Whether the current client IP is allowed.

+
+
+
namestring
+

Name of the workgroup.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
platformstring
+

Cloud platform that hosts the workgroup.

+

Available options: aws, azure, gcp

+
+
+
regionstring
+

Cloud region that hosts the workgroup.

+
+
+
shared_storageboolean
+

Whether shared storage is enabled.

+
+
+
tg_databasesobject[]
+

Databases associated with the workgroup.

+
+ + Show child attributes + Hide child attributes + +
+
+
create_timestring
+

Time the database was created.

+
+
+
database_idstring
+

Unique identifier of the database.

+
+
+
folder_statisticsobject
+

Storage statistics for the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
namestring
+

Name of the database.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
regionstring
+

Cloud region that hosts the database.

+
+
+
tg_versionstring
+

TigerGraph version of the database.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workspacesobject[]
+

Workspaces attached to the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+
+
+
workgroup_idstring
+

Unique identifier of the workgroup.

+
+
+
workspacesobject[]
+

Workspaces associated with the workgroup.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/get-workspace-details.adoc b/modules/savanna/modules/rest-api/pages/endpoints/get-workspace-details.adoc new file mode 100644 index 00000000..5c7d2a94 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/get-workspace-details.adoc @@ -0,0 +1,653 @@ += Get workspace details +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Returns details for a workspace in a workgroup.

+ +
+
+
+
+ GET + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/install-an-add-on.adoc b/modules/savanna/modules/rest-api/pages/endpoints/install-an-add-on.adoc new file mode 100644 index 00000000..fb85f7e3 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/install-an-add-on.adoc @@ -0,0 +1,401 @@ += Install an add-on +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Installs an add-on for your organization, or enables or disables it.

+ +
+
+
+
+ POST + /controller/v4/v2/addons/{addonsID}/install +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + addonsID + string + path + required +
+

Add-on ID

+
+
+
+

Query parameters

+
+
+ # + enable + string + query + required +
+

Enable or disable add-on

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-add-on-configurations.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-add-on-configurations.adoc new file mode 100644 index 00000000..eb59983a --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-add-on-configurations.adoc @@ -0,0 +1,398 @@ += List add-on configurations +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists configurations of a given name for an installed add-on.

+ +
+
+
+
+ GET + /controller/v4/v2/installed-addons/{installedAddonsID}/configs/{configName} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + installedAddonsID + string + path + required +
+

Installed Add-on ID

+
+
+
+ # + configName + string + path + required +
+

Configuration Name

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-add-on-workspaces.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-add-on-workspaces.adoc new file mode 100644 index 00000000..1b3acae5 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-add-on-workspaces.adoc @@ -0,0 +1,803 @@ += List add-on workspaces +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the workspaces that have a given add-on enabled.

+ +
+
+
+
+ GET + /controller/v4/v2/addons/{addonsID}/workspaces +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + addonsID + string + path + required +
+

Addons ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object[] +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-allowed-ips.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-allowed-ips.adoc new file mode 100644 index 00000000..0a144c72 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-allowed-ips.adoc @@ -0,0 +1,337 @@ += List allowed IPs +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the IP addresses and CIDR ranges permitted by a workgroup allow list.

+ +
+
+
+
+ GET + /controller/v4/v2/workgroups/{workgroupID}/allow_list +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object[] +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
cidrstringrequired
+

IP address or range in CIDR notation, such as 192.168.1.0/24 for a range or 192.168.1.2/32 for a single address.

+
+
+
idstring
+

Unique identifier of the allow list entry.

+
+
+
notestring
+

Note recording why the address was allowed.

+
+
+
+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-available-add-ons.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-available-add-ons.adoc new file mode 100644 index 00000000..bd2d174f --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-available-add-ons.adoc @@ -0,0 +1,375 @@ += List available add-ons +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the add-ons available to your organization. Use an id from this list as addons_id when you install an add-on or enable one on a workspace.

+ +
+
+
+
+ GET + /controller/v4/v2/addons/meta +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-backups.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-backups.adoc new file mode 100644 index 00000000..58352f53 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-backups.adoc @@ -0,0 +1,372 @@ += List backups +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the backups for a workspace.

+ +
+
+
+
+ GET + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object[] +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
idstring
+

Unique identifier of the backup.

+
+
+
is_automaticboolean
+

Whether the backup came from the backup schedule rather than a manual request.

+
+
+
size_bytesstring
+

Size of the backup, in bytes.

+
+
+
statusstring
+

Current status of the backup.

+
+
+
tagstring
+

Tag that identifies the backup.

+
+
+
timestring
+

Time the backup was taken.

+
+
+
typestring
+

Scope of the data captured by the backup.

+
+
+
versionstring
+

TigerGraph version the backup was taken from.

+
+
+
+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-cloud-providers.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-cloud-providers.adoc new file mode 100644 index 00000000..4b73d3f8 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-cloud-providers.adoc @@ -0,0 +1,557 @@ += List cloud providers +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the Bring Your Own Cloud (BYOC) providers registered to your organization, the cloud accounts you own that Savanna deploys into. Use an id from this list as the cloud_provider_id when you create a workgroup.

+ +
+
+
+
+ GET + /controller/v4/v2/cloud-providers +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object[] +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
api_tokensstring[]
+

API tokens associated with the cloud provider.

+
+
+
availability_zonesstring[]
+

Availability zones configured for the cloud provider.

+
+
+
cluster_enabled_log_typesstring[]
+

Kubernetes control-plane log types enabled for the provider.

+

Available options: api, audit, authenticator, controllerManager, scheduler

+
+
+
component_versionsstring
+

Versions of the components installed for the provider.

+
+
+
created_atstring
+

Time the cloud provider was created.

+
+
+
created_bystring
+

User who created the cloud provider.

+
+
+
eks_idstring
+

Identifier of the Amazon EKS cluster.

+
+
+
endpoint_service_namestring
+

Name of the private endpoint service.

+
+
+
idstring
+

Unique identifier of the cloud provider.

+
+
+
last_errorstring
+

Most recent error reported while provisioning or updating the provider.

+
+
+
namestring
+

Name of the cloud provider.

+
+
+
node_group_configobject
+

Configuration of the Kubernetes node groups.

+
+ + Show child attributes + Hide child attributes + +
+
+
ng_16object
+

Configuration of the 16-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_32object
+

Configuration of the 32-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_48object
+

Configuration of the 48-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_64object
+

Configuration of the 64-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_systemobject
+

Configuration of the system node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
prefetch_image_liststring[]
+

Container images to prefetch onto the nodes.

+
+
+
+
+
+
optionsobject
+

Additional cloud-provider configuration options.

+
+ + Show child attributes + Hide child attributes + +
+
+
account_idstring
+

Cloud account identifier associated with the provider.

+
+
+
secure_connectionboolean
+

Whether the provider uses a private, secure connection.

+
+
+
+
+
+
org_idstring
+

Unique identifier of the organization that owns the provider.

+
+
+
platformstring
+

Cloud platform that hosts the provider.

+
+
+
regionstring
+

Cloud region that hosts the provider.

+
+
+
role_arnstring
+

Amazon Resource Name of the IAM role TigerGraph assumes.

+
+
+
role_external_idstring
+

External identifier used when TigerGraph assumes the IAM role.

+
+
+
security_group_idstring
+

Identifier of the network security group.

+
+
+
short_idstring
+

Short identifier of the cloud provider.

+
+
+
statusstring
+

Current status of the cloud provider.

+
+
+
subnet_idstring[]
+

Identifiers of the subnets used by the provider.

+
+
+
typestring
+

Access type of the cloud provider.

+
+
+
updated_atstring
+

Time the cloud provider was last updated.

+
+
+
versionstring
+

Version of the cloud provider deployment.

+
+
+
version_numberinteger
+

Internal version number of the cloud provider record.

+
+
+
vpc_idstring
+

Identifier of the virtual private cloud.

+
+
+
vpc_owned_by_tgboolean
+

Whether TigerGraph owns and manages the virtual private cloud.

+
+
+
work_dirstring
+

Working directory used while provisioning the provider.

+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-in-database-users.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-in-database-users.adoc new file mode 100644 index 00000000..c3f828cc --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-in-database-users.adoc @@ -0,0 +1,407 @@ += List in-database users +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the in-database GSQL users for a workspace.

+ +
+
+
+
+ GET + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object[] +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
auth0UserIDstring
+

Identifier of the user in the identity provider.

+
+
+
createdstring
+

Time the user was created.

+
+
+
descriptionstring
+

Description of the user.

+
+
+
emailstring
+

Email address of the user.

+
+
+
enabledboolean
+

Whether the user can sign in.

+
+
+
firstNamestring
+

Given name of the user.

+
+
+
idstring
+

Unique identifier of the user.

+
+
+
lastNamestring
+

Family name of the user.

+
+
+
metadataobject
+

Additional details about the user.

+
+
+
pathstring
+

Hierarchical path of the user within the organization.

+
+
+
rolestring
+

Role assigned to the user.

+
+
+
tenantIDstring
+

Unique identifier of the tenant the user belongs to.

+
+
+
trnstring
+

TigerGraph resource name of the user.

+
+
+
updatedstring
+

Time the user was last updated.

+
+
+
usernamestring
+

Username of the user.

+
+
+
+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-installed-add-ons.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-installed-add-ons.adoc new file mode 100644 index 00000000..df2270fd --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-installed-add-ons.adoc @@ -0,0 +1,298 @@ += List installed add-ons +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the add-ons installed for your organization.

+ +
+
+
+
+ GET + /controller/v4/v2/installed-addons +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-org-users.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-org-users.adoc new file mode 100644 index 00000000..c80017ca --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-org-users.adoc @@ -0,0 +1,330 @@ += List org users +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the users in your organization. This endpoint does not support API key authentication.

+ +
+
+
+
+ GET + /users +
+ +
+ +
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + auth0UserID + string +
+

Identifier of the user in the identity provider.

+
+
+
+ # + authID + string +
+

Identifier issued by the authentication provider.

+
+
+
+ # + created + string +
+

Time the user was created.

+
+
+
+ # + email + string +
+

Email address of the user.

+
+
+
+ # + enabled + boolean +
+

Whether the user can sign in.

+
+
+
+ # + firstName + string +
+

Given name of the user.

+
+
+
+ # + id + string +
+

Unique identifier of the user.

+
+
+
+ # + lastName + string +
+

Family name of the user.

+
+
+
+ # + metadata + object +
+

Additional details about the user.

+
+ + Show child attributes + Hide child attributes + +
+
+
attachedTostring[]
+

Resources the user is attached to.

+
+
+
lastLoginstring
+

Time the user last signed in.

+
+
+
+
+
+
+ # + path + string +
+

Hierarchical path of the user within the organization.

+
+
+
+ # + roles + object[] +
+

Roles assigned to the user.

+
+ + Show child attributes + Hide child attributes + +
+
+
displayNamestring
+

Name of the role as it appears in the TigerGraph Savanna console.

+
+
+
idstring
+

Unique identifier of the role.

+
+
+
namestring
+

Name of the role.

+
+
+
pathstring
+

Hierarchical path of the role within the organization.

+
+
+
tenantIDstring
+

Unique identifier of the tenant the role belongs to.

+
+
+
trnstring
+

TigerGraph resource name of the role.

+
+
+
+
+
+
+ # + tenantID + string +
+

Unique identifier of the tenant the user belongs to.

+
+
+
+ # + trn + string +
+

TigerGraph resource name of the user.

+
+
+
+ # + updated + string +
+

Time the user was last updated.

+
+
+
+ # + username + string +
+

Username of the user.

+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-public-cloud-providers.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-public-cloud-providers.adoc new file mode 100644 index 00000000..b91becf1 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-public-cloud-providers.adoc @@ -0,0 +1,268 @@ += List public cloud providers +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the cloud providers TigerGraph operates. Use an id from this list as the cloud_provider_id when you create a workgroup.

+ +
+
+
+
+ GET + /controller/v4/v2/cloud-providers/public +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object[] +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
component_versionsstring
+

Versions of the components installed for the provider.

+
+
+
idstring
+

Unique identifier of the public cloud provider.

+
+
+
namestring
+

Name of the public cloud provider.

+
+
+
org_idstring
+

Unique identifier of the organization that owns the provider.

+
+
+
platformstring
+

Cloud platform that hosts the provider.

+
+
+
regionstring
+

Cloud region that hosts the provider.

+
+
+
statusstring
+

Current status of the public cloud provider.

+
+
+
versionstring
+

Version of the cloud provider deployment.

+
+
+
version_numberinteger
+

Internal version number of the cloud provider record.

+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-workgroups.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-workgroups.adoc new file mode 100644 index 00000000..f09a6d04 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-workgroups.adoc @@ -0,0 +1,1147 @@ += List workgroups +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the workgroups in your organization.

+ +
+
+
+
+ GET + /controller/v4/v2/workgroups +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object[] +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_statusstring
+

Current status of the cloud provider configuration.

+
+
+
cloud_provider_typestring
+

Type of cloud provider configuration.

+
+
+
creatorstring
+

User who created the workgroup.

+
+
+
enable_allow_listboolean
+

Whether the IP allow list is enabled.

+
+
+
enable_application_logboolean
+

Whether application logging is enabled.

+
+
+
encryption_methodstring
+

Encryption method used by the workgroup.

+

Available options: TMK

+
+
+
is_current_ip_allowedboolean
+

Whether the current client IP is allowed.

+
+
+
namestring
+

Name of the workgroup.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
platformstring
+

Cloud platform that hosts the workgroup.

+

Available options: aws, azure, gcp

+
+
+
regionstring
+

Cloud region that hosts the workgroup.

+
+
+
shared_storageboolean
+

Whether shared storage is enabled.

+
+
+
tg_databasesobject[]
+

Databases associated with the workgroup.

+
+ + Show child attributes + Hide child attributes + +
+
+
create_timestring
+

Time the database was created.

+
+
+
database_idstring
+

Unique identifier of the database.

+
+
+
folder_statisticsobject
+

Storage statistics for the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
namestring
+

Name of the database.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
regionstring
+

Cloud region that hosts the database.

+
+
+
tg_versionstring
+

TigerGraph version of the database.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workspacesobject[]
+

Workspaces attached to the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+
+
+
workgroup_idstring
+

Unique identifier of the workgroup.

+
+
+
workspacesobject[]
+

Workspaces associated with the workgroup.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/list-workspace-schedules.adoc b/modules/savanna/modules/rest-api/pages/endpoints/list-workspace-schedules.adoc new file mode 100644 index 00000000..f571df2d --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/list-workspace-schedules.adoc @@ -0,0 +1,372 @@ += List workspace schedules +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Lists the schedules for a workspace.

+ +
+
+
+
+ GET + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object[] +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
datestring
+

Date the action runs when the schedule does not repeat.

+
+
+
idstring
+

Unique identifier of the schedule.

+
+
+
repeatstringrequired
+

How often the action repeats: daily, weekly, or weekdays.

+
+
+
repeat_onstring
+

Days the action runs when it repeats weekly.

+
+
+
timestringrequired
+

Time of day the action runs.

+
+
+
timezonestringrequired
+

Time zone the schedule is interpreted in.

+
+
+
workspace_idstringrequired
+

Unique identifier of the scheduled workspace.

+
+
+
workspace_type_namestring
+

Workspace size to apply when the action runs.

+
+
+
+
+
+ +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/pause-a-workspace.adoc b/modules/savanna/modules/rest-api/pages/endpoints/pause-a-workspace.adoc new file mode 100644 index 00000000..6494252d --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/pause-a-workspace.adoc @@ -0,0 +1,235 @@ += Pause a workspace +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Pauses a workspace.

+ +
+
+
+
+ POST + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/pause +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/refresh-a-workspace.adoc b/modules/savanna/modules/rest-api/pages/endpoints/refresh-a-workspace.adoc new file mode 100644 index 00000000..02e52c70 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/refresh-a-workspace.adoc @@ -0,0 +1,235 @@ += Refresh a workspace +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Refreshes a workspace.

+ +
+
+
+
+ POST + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/refresh +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/restore-a-backup.adoc b/modules/savanna/modules/rest-api/pages/endpoints/restore-a-backup.adoc new file mode 100644 index 00000000..e1a63ff8 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/restore-a-backup.adoc @@ -0,0 +1,441 @@ += Restore a backup +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Restores a workspace from a backup.

+ +
+
+
+
+ POST + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/restore +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+

Body

+
+
+ # + backup_id + string + required +
+

Unique identifier of the backup to restore.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + string +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/resume-a-workspace.adoc b/modules/savanna/modules/rest-api/pages/endpoints/resume-a-workspace.adoc new file mode 100644 index 00000000..7fc5be3a --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/resume-a-workspace.adoc @@ -0,0 +1,235 @@ += Resume a workspace +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Resumes a paused workspace.

+ +
+
+
+
+ POST + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/resume +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/set-backup-schedule.adoc b/modules/savanna/modules/rest-api/pages/endpoints/set-backup-schedule.adoc new file mode 100644 index 00000000..d6468292 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/set-backup-schedule.adoc @@ -0,0 +1,501 @@ += Set backup schedule +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Creates or replaces the backup schedule for a workspace.

+ +
+
+
+
+ POST + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/backups/schedule +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+

Body

+
+
+ # + max_backup_files + integer +
+

Maximum number of backups to keep.

+
+
+
+ # + max_reserved_days + integer +
+

Number of days a backup is kept before it is removed.

+
+
+
+ # + max_retry + integer +
+

Number of times a failed backup is retried.

+
+
+
+ # + pause + boolean +
+

Whether the schedule is paused.

+
+
+
+ # + schedule + string + required +
+

Cron expression that sets when the backup runs.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/update-a-cloud-provider.adoc b/modules/savanna/modules/rest-api/pages/endpoints/update-a-cloud-provider.adoc new file mode 100644 index 00000000..3160ca21 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/update-a-cloud-provider.adoc @@ -0,0 +1,625 @@ += Update a cloud provider +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Renames a Bring Your Own Cloud (BYOC) provider or records a version against it. Use the upgrade endpoint to change what is deployed in the cloud account.

+ +
+
+
+
+ PUT + /controller/v4/v2/cloud-providers/{cloudProviderID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + cloudProviderID + string + path + required +
+

Cloud Provider ID

+
+
+
+

Body

+
+
+ # + name + string +
+

New name for the cloud provider.

+
+
+
+ # + version + string +
+

Cloud provider deployment version to apply.

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
api_tokensstring[]
+

API tokens associated with the cloud provider.

+
+
+
availability_zonesstring[]
+

Availability zones configured for the cloud provider.

+
+
+
cluster_enabled_log_typesstring[]
+

Kubernetes control-plane log types enabled for the provider.

+

Available options: api, audit, authenticator, controllerManager, scheduler

+
+
+
component_versionsstring
+

Versions of the components installed for the provider.

+
+
+
created_atstring
+

Time the cloud provider was created.

+
+
+
created_bystring
+

User who created the cloud provider.

+
+
+
eks_idstring
+

Identifier of the Amazon EKS cluster.

+
+
+
endpoint_service_namestring
+

Name of the private endpoint service.

+
+
+
idstring
+

Unique identifier of the cloud provider.

+
+
+
last_errorstring
+

Most recent error reported while provisioning or updating the provider.

+
+
+
namestring
+

Name of the cloud provider.

+
+
+
node_group_configobject
+

Configuration of the Kubernetes node groups.

+
+ + Show child attributes + Hide child attributes + +
+
+
ng_16object
+

Configuration of the 16-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_32object
+

Configuration of the 32-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_48object
+

Configuration of the 48-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_64object
+

Configuration of the 64-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_systemobject
+

Configuration of the system node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
prefetch_image_liststring[]
+

Container images to prefetch onto the nodes.

+
+
+
+
+
+
optionsobject
+

Additional cloud-provider configuration options.

+
+ + Show child attributes + Hide child attributes + +
+
+
account_idstring
+

Cloud account identifier associated with the provider.

+
+
+
secure_connectionboolean
+

Whether the provider uses a private, secure connection.

+
+
+
+
+
+
org_idstring
+

Unique identifier of the organization that owns the provider.

+
+
+
platformstring
+

Cloud platform that hosts the provider.

+
+
+
regionstring
+

Cloud region that hosts the provider.

+
+
+
role_arnstring
+

Amazon Resource Name of the IAM role TigerGraph assumes.

+
+
+
role_external_idstring
+

External identifier used when TigerGraph assumes the IAM role.

+
+
+
security_group_idstring
+

Identifier of the network security group.

+
+
+
short_idstring
+

Short identifier of the cloud provider.

+
+
+
statusstring
+

Current status of the cloud provider.

+
+
+
subnet_idstring[]
+

Identifiers of the subnets used by the provider.

+
+
+
typestring
+

Access type of the cloud provider.

+
+
+
updated_atstring
+

Time the cloud provider was last updated.

+
+
+
versionstring
+

Version of the cloud provider deployment.

+
+
+
version_numberinteger
+

Internal version number of the cloud provider record.

+
+
+
vpc_idstring
+

Identifier of the virtual private cloud.

+
+
+
vpc_owned_by_tgboolean
+

Whether TigerGraph owns and manages the virtual private cloud.

+
+
+
work_dirstring
+

Working directory used while provisioning the provider.

+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/update-a-database.adoc b/modules/savanna/modules/rest-api/pages/endpoints/update-a-database.adoc new file mode 100644 index 00000000..ce8f107d --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/update-a-database.adoc @@ -0,0 +1,803 @@ += Update a database +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Renames a database in a workgroup.

+ +
+
+
+
+ PUT + /controller/v4/v2/workgroups/{workgroupID}/databases/{databaseID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + databaseID + string + path + required +
+

Database ID

+
+
+
+

Body

+
+
+ # + tg_database_name + string + required +
+

New name for the database.

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
create_timestring
+

Time the database was created.

+
+
+
database_idstring
+

Unique identifier of the database.

+
+
+
folder_statisticsobject
+

Storage statistics for the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
namestring
+

Name of the database.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
regionstring
+

Cloud region that hosts the database.

+
+
+
tg_versionstring
+

TigerGraph version of the database.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workspacesobject[]
+

Workspaces attached to the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/update-a-workgroup.adoc b/modules/savanna/modules/rest-api/pages/endpoints/update-a-workgroup.adoc new file mode 100644 index 00000000..dfbb7743 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/update-a-workgroup.adoc @@ -0,0 +1,1257 @@ += Update a workgroup +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Updates a workgroup name, application logging, or encryption settings.

+ +
+
+
+
+ PUT + /controller/v4/v2/workgroups/{workgroupID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+

Body

+
+
+ # + enable_application_log + boolean +
+

Whether application logging is enabled.

+
+
+
+ # + encryption_method + string +
+

Encryption method to apply to the workgroup.

+

Available options: TMK

+
+
+
+ # + workgroup_name + string +
+

New name for the workgroup.

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_statusstring
+

Current status of the cloud provider configuration.

+
+
+
cloud_provider_typestring
+

Type of cloud provider configuration.

+
+
+
creatorstring
+

User who created the workgroup.

+
+
+
enable_allow_listboolean
+

Whether the IP allow list is enabled.

+
+
+
enable_application_logboolean
+

Whether application logging is enabled.

+
+
+
encryption_methodstring
+

Encryption method used by the workgroup.

+

Available options: TMK

+
+
+
is_current_ip_allowedboolean
+

Whether the current client IP is allowed.

+
+
+
namestring
+

Name of the workgroup.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
platformstring
+

Cloud platform that hosts the workgroup.

+

Available options: aws, azure, gcp

+
+
+
regionstring
+

Cloud region that hosts the workgroup.

+
+
+
shared_storageboolean
+

Whether shared storage is enabled.

+
+
+
tg_databasesobject[]
+

Databases associated with the workgroup.

+
+ + Show child attributes + Hide child attributes + +
+
+
create_timestring
+

Time the database was created.

+
+
+
database_idstring
+

Unique identifier of the database.

+
+
+
folder_statisticsobject
+

Storage statistics for the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
namestring
+

Name of the database.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
regionstring
+

Cloud region that hosts the database.

+
+
+
tg_versionstring
+

TigerGraph version of the database.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workspacesobject[]
+

Workspaces attached to the database.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+
+
+
workgroup_idstring
+

Unique identifier of the workgroup.

+
+
+
workspacesobject[]
+

Workspaces associated with the workgroup.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/update-a-workspace-schedule.adoc b/modules/savanna/modules/rest-api/pages/endpoints/update-a-workspace-schedule.adoc new file mode 100644 index 00000000..8e9cd808 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/update-a-workspace-schedule.adoc @@ -0,0 +1,559 @@ += Update a workspace schedule +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Updates a workspace schedule.

+ +
+
+
+
+ PUT + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/schedules/{scheduleID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+ # + scheduleID + string + path + required +
+

Schedule ID

+
+
+
+

Body

+
+
+ # + date + string +
+

Date the action runs when the schedule does not repeat.

+
+
+
+ # + id + string +
+

Unique identifier of the schedule.

+
+
+
+ # + repeat + string + required +
+

How often the action repeats: daily, weekly, or weekdays.

+
+
+
+ # + repeat_on + string +
+

Days the action runs when it repeats weekly.

+
+
+
+ # + time + string + required +
+

Time of day the action runs.

+
+
+
+ # + timezone + string + required +
+

Time zone the schedule is interpreted in.

+
+
+
+ # + workspace_id + string + required +
+

Unique identifier of the scheduled workspace.

+
+
+
+ # + workspace_type_name + string +
+

Workspace size to apply when the action runs.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + string +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/update-a-workspace.adoc b/modules/savanna/modules/rest-api/pages/endpoints/update-a-workspace.adoc new file mode 100644 index 00000000..e4b584f3 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/update-a-workspace.adoc @@ -0,0 +1,1008 @@ += Update a workspace +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Updates a workspace configuration.

+ +
+
+
+
+ PUT + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+

Body

+
+
+ # + addons + object[] +
+

Add-ons to enable on the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+ # + agent_config + object +
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
+ # + auto_stop_minutes + integer +
+

Idle minutes before the workspace stops automatically.

+

Minimum: 0

+
+
+
+ # + auto_upgrade_state + string +
+

State of the automatic version upgrade.

+
+
+
+ # + desired_tg_version + string +
+

TigerGraph version to move the workspace to.

+
+
+
+ # + enable_auto_start + boolean +
+

Whether the workspace starts automatically on access.

+
+
+
+ # + enable_ha + boolean +
+

Whether high availability is enabled.

+
+
+
+ # + maintenance_window_day_of_week + integer +
+

Day of the week the maintenance window starts.

+
+
+
+ # + maintenance_window_hour_of_day + integer +
+

Hour of the day the maintenance window starts.

+
+
+
+ # + maintenance_window_interval_weeks + integer +
+

Number of weeks between maintenance windows.

+
+
+
+ # + maintenance_window_time_zone + string +
+

Time zone used for the maintenance window.

+
+
+
+ # + pause + boolean +
+

Whether the workspace is paused.

+
+
+
+ # + update_strategy + string +
+

Strategy used to apply workspace updates.

+
+
+
+ # + workspace_name + string +
+

New name for the workspace.

+
+
+
+ # + workspace_type_name + string +
+

Name of the workspace size to apply.

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
addonsobject[]
+

Add-ons enabled for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
addons_idstringrequired
+

Unique identifier of the add-on.

+
+
+
enablebooleanrequired
+

Whether the add-on is enabled.

+
+
+
enable_configurationobject
+

Configuration applied when the add-on is enabled.

+
+
+
is_freeboolean
+

Whether the add-on is available at no cost.

+
+
+
unique_namestring
+

Unique name of the add-on.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
agent_configobject
+

Agent heartbeat and polling configuration.

+
+ + Show child attributes + Hide child attributes + +
+
+
catalog_activity_update_interval_secondsinteger
+

Seconds between catalog activity updates.

+
+
+
enable_topology_force_updateboolean
+

Whether topology updates are forced.

+
+
+
heartbeat_interval_secondsinteger
+

Seconds between agent heartbeats.

+
+
+
query_activity_update_interval_secondsinteger
+

Seconds between query activity updates.

+
+
+
topology_update_interval_secondsinteger
+

Seconds between topology updates.

+
+
+
+
+
+
auto_stop_minutesinteger
+

Idle minutes before the workspace stops automatically.

+
+
+
auto_upgrade_statestring
+

State of the automatic version upgrade.

+
+
+
cloud_provider_idstring
+

Unique identifier of the cloud provider configuration.

+
+
+
cloud_provider_namestring
+

Display name of the cloud provider.

+
+
+
cloud_provider_short_idstring
+

Short identifier of the cloud provider configuration.

+
+
+
condition_typestring
+

Current condition reported for the workspace.

+
+
+
created_atstring
+

Time the workspace was created.

+
+
+
creatorstring
+

User who created the workspace.

+
+
+
database_idstring
+

Unique identifier of the attached database.

+
+
+
database_namestring
+

Name of the attached database.

+
+
+
deleted_atstring
+

Time the workspace was deleted.

+
+
+
desired_tg_versionstring
+

TigerGraph version the workspace is moving to.

+
+
+
display_statusstring
+

Status shown in the TigerGraph Savanna console.

+
+
+
edge_countinteger
+

Number of edges stored in the workspace.

+
+
+
enable_auto_startboolean
+

Whether the workspace starts automatically on access.

+
+
+
enable_copilotboolean
+

Whether TigerGraph CoPilot is enabled.

+
+
+
enable_haboolean
+

Whether high availability is enabled.

+
+
+
err_messagestring
+

Error message reported for the workspace.

+
+
+
folder_statisticsobject
+

Storage statistics for the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
backup_sizeinteger
+

Size of backup data, in bytes.

+
+
+
billed_sizeinteger
+

Storage size counted for billing, in bytes.

+
+
+
log_sizeinteger
+

Size of log data, in bytes.

+
+
+
milvus_sizeinteger
+

Size of vector index data, in bytes.

+
+
+
total_sizeinteger
+

Total storage size, in bytes.

+
+
+
workspacesobject[]
+

Storage used by each workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
sizeinteger
+

Storage used by the workspace, in bytes.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
+
+
+
+
+
+
graph_topology_size_bytesinteger
+

Size of the graph topology, in bytes.

+
+
+
is_rwboolean
+

Whether the workspace accepts writes.

+
+
+
last_maintenancestring
+

Time of the last maintenance run.

+
+
+
last_modified_timestring
+

Time the workspace was last modified.

+
+
+
maintenance_window_day_of_weekinteger
+

Day of the week the maintenance window starts.

+
+
+
maintenance_window_hour_of_dayinteger
+

Hour of the day the maintenance window starts.

+
+
+
maintenance_window_interval_weeksinteger
+

Number of weeks between maintenance windows.

+
+
+
maintenance_window_time_zonestring
+

Time zone used for the maintenance window.

+
+
+
namestring
+

Name of the workspace.

+
+
+
nginx_hoststring
+

Host name that serves the workspace endpoint.

+
+
+
org_idstring
+

Unique identifier of the organization.

+
+
+
org_namestring
+

Name of the organization.

+
+
+
refresh_messagestring
+

Message describing the most recent refresh.

+
+
+
refresh_statusstring
+

Status of the most recent refresh.

+
+
+
regionstring
+

Cloud region that hosts the workspace.

+
+
+
replicasinteger
+

Number of replicas provisioned for the workspace.

+
+
+
snapshot_timestring
+

Time of the snapshot the workspace was created from.

+
+
+
solution_catalog_idstring
+

Unique identifier of the solution catalog entry.

+
+
+
statusstring
+

Current status of the workspace.

+
+
+
tg_versionstring
+

TigerGraph version running in the workspace.

+
+
+
update_strategystring
+

Strategy used to apply workspace updates.

+
+
+
version_numberinteger
+

Internal version number of the workspace record.

+
+
+
vertex_countinteger
+

Number of vertices stored in the workspace.

+
+
+
workgroup_idstring
+

Unique identifier of the parent workgroup.

+
+
+
workgroup_namestring
+

Name of the parent workgroup.

+
+
+
workspace_idstring
+

Unique identifier of the workspace.

+
+
+
workspace_typeobject
+

Compute size and shape of the workspace.

+
+ + Show child attributes + Hide child attributes + +
+
+
cpustring
+

Number of vCPUs allocated to the workspace.

+
+
+
hainteger
+

Number of high-availability replicas.

+
+
+
memorystring
+

Memory allocated to the workspace.

+
+
+
partitioninteger
+

Number of partitions in the workspace.

+
+
+
typeNamestring
+

Name of the workspace size type.

+
+
+
+
+
+
+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/update-an-add-on-configuration.adoc b/modules/savanna/modules/rest-api/pages/endpoints/update-an-add-on-configuration.adoc new file mode 100644 index 00000000..df876791 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/update-an-add-on-configuration.adoc @@ -0,0 +1,441 @@ += Update an add-on configuration +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Updates a configuration of an installed add-on.

+ +
+
+
+
+ PUT + /controller/v4/v2/add-ons/{installedAddonsID}/configs/{configID} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + installedAddonsID + string + path + required +
+

Installed Add-on ID

+
+
+
+ # + configID + string + path + required +
+

Configuration ID

+
+
+
+

Body

+
+
+ # + config_value + string + required +
+

New value of the configuration.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/update-an-allowed-ip.adoc b/modules/savanna/modules/rest-api/pages/endpoints/update-an-allowed-ip.adoc new file mode 100644 index 00000000..aaddfedd --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/update-an-allowed-ip.adoc @@ -0,0 +1,495 @@ += Update an allowed IP +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Updates an entry in a workgroup allow list.

+ +
+
+
+
+ PUT + /controller/v4/v2/workgroups/{workgroupID}/allow_list/{id} +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + id + string + path + required +
+

Allowed IP ID

+
+
+
+

Body

+
+
+ # + cidr + string + required +
+

IP address or range in CIDR notation, such as 192.168.1.0/24 for a range or 192.168.1.2/32 for a single address.

+
+
+
+ # + id + string +
+

Unique identifier of the allow list entry.

+
+
+
+ # + note + string +
+

Note recording why the address was allowed.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
cidrstringrequired
+

IP address or range in CIDR notation, such as 192.168.1.0/24 for a range or 192.168.1.2/32 for a single address.

+
+
+
idstring
+

Unique identifier of the allow list entry.

+
+
+
notestring
+

Note recording why the address was allowed.

+
+
+
+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/update-an-in-database-users-password.adoc b/modules/savanna/modules/rest-api/pages/endpoints/update-an-in-database-users-password.adoc new file mode 100644 index 00000000..3804334f --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/update-an-in-database-users-password.adoc @@ -0,0 +1,455 @@ += Update an in-database user's password +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Updates an in-database GSQL user's password.

+ +
+
+
+
+ PUT + /controller/v4/v2/workgroups/{workgroupID}/workspaces/{workspaceID}/dbuser +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + workgroupID + string + path + required +
+

Workgroup ID

+
+
+
+ # + workspaceID + string + path + required +
+

Workspace ID

+
+
+
+

Body

+
+
+ # + password + string +
+

Password for the in-database user.

+
+
+
+ # + username + string +
+

Username for the in-database user.

+
+
+
+
+

Response

+
+
+ + +
+ application/json +
+
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+ + +
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/update-an-org-users-role.adoc b/modules/savanna/modules/rest-api/pages/endpoints/update-an-org-users-role.adoc new file mode 100644 index 00000000..cbbf3dc3 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/update-an-org-users-role.adoc @@ -0,0 +1,201 @@ += Update an org user's role +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Updates an organization user's role. This endpoint does not support API key authentication.

+ +
+
+
+
+ PUT + /users/{userId}/roles +
+ +
+ +
+

Path parameters

+
+
+ # + userId + string + path + required +
+

Id of the user

+
+
+
+

Body

+
+
+ # + roles + string[] +
+

Roles to assign to the user, replacing the roles they hold now.

+
+
+
+
+

Response

+
+ 204 +
+
+

No Content

+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/upgrade-a-cloud-provider.adoc b/modules/savanna/modules/rest-api/pages/endpoints/upgrade-a-cloud-provider.adoc new file mode 100644 index 00000000..be8348fd --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/upgrade-a-cloud-provider.adoc @@ -0,0 +1,523 @@ += Upgrade a cloud provider +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Upgrades the Savanna components deployed in a Bring Your Own Cloud (BYOC) provider's cloud account, and optionally resizes its node groups.

+ +
+
+
+
+ PUT + /controller/v4/v2/cloud-providers/{cloudProviderID}/upgrade +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Path parameters

+
+
+ # + cloudProviderID + string + path + required +
+

Cloud Provider ID

+
+
+
+

Body

+
+
+ # + cluster_enabled_log_types + string[] +
+

Kubernetes control-plane log types to enable after the upgrade.

+

Available options: api, audit, authenticator, controllerManager, scheduler

+
+
+
+ # + components + object[] +
+

Components and target versions to apply.

+
+ + Show child attributes + Hide child attributes + +
+
+
namestring
+

Name of the component to upgrade.

+
+
+
versionstring
+

Target version of the component.

+
+
+
+
+
+
+ # + node_group_config + object +
+

Kubernetes node-group configuration to apply during the upgrade.

+
+ + Show child attributes + Hide child attributes + +
+
+
ng_16object
+

Configuration of the 16-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_32object
+

Configuration of the 32-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_48object
+

Configuration of the 48-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_64object
+

Configuration of the 64-unit node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
ng_systemobject
+

Configuration of the system node group.

+
+ + Show child attributes + Hide child attributes + +
+
+
max_sizeinteger
+

Maximum number of nodes in the group.

+
+
+
min_sizeinteger
+

Minimum number of nodes in the group.

+
+
+
overprovisioning_factorinteger
+

Additional capacity factor reserved above the requested workload.

+
+
+
+
+
+
prefetch_image_liststring[]
+

Container images to prefetch onto the nodes.

+
+
+
+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + object +
+

Payload returned by the request.

+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/endpoints/validate-a-cloud-provider.adoc b/modules/savanna/modules/rest-api/pages/endpoints/validate-a-cloud-provider.adoc new file mode 100644 index 00000000..69ceed43 --- /dev/null +++ b/modules/savanna/modules/rest-api/pages/endpoints/validate-a-cloud-provider.adoc @@ -0,0 +1,332 @@ += Validate a cloud provider +:page-role: api-endpoint-detail +// Generated by lib/split-endpoints.js. Do not edit. +// Schemas and samples come from _catalog/openapi.json; attribute prose that +// the spec omits lives in lib/api-descriptions.json. + +++++ +
+

Checks whether a Bring Your Own Cloud (BYOC) registration would succeed, without creating anything.

+ +
+
+
+
+ POST + /controller/v4/v2/cloud-providers/validate +
+ +
+ +
+

Authorizations

+
+
+ x-api-key + string + header + required +
+

Authorization for TigerGraph Savanna. Send the key in the x-api-key request header.

+ Create an API key +
+
+
+

Body

+
+
+ # + account_id + string +
+

Cloud account identifier to validate.

+
+
+
+ # + platform + string + required +
+

Cloud platform to validate.

+
+
+
+ # + region + string + required +
+

Cloud region to validate.

+
+
+
+ # + role_arn + string + required +
+

Amazon Resource Name of the IAM role TigerGraph will assume.

+
+
+
+ # + role_external_id + string +
+

External identifier used when TigerGraph assumes the IAM role.

+
+
+
+ # + secure_connection + boolean +
+

Whether to validate a private, secure connection.

+
+
+
+
+

Response

+
+ 200 + application/json +
+
+
+
+ # + Error + boolean +
+

Indicates whether the request returned an error.

+
+
+
+ # + ErrorDetails + object[] +
+

Details about each error returned by the request.

+
+ + Show child attributes + Hide child attributes + +
+
+
FieldNamestring
+

Field associated with the error.

+
+
+
Reasonstring
+

Explanation of why the error occurred.

+
+
+
Typestring
+

Category of the error.

+

Available options: Internal-Error, Bad-Request, Not-Found, Forbidden, Unauthorized, API-Disabled, Quota-Exceed, Unknown

+
+
+
+
+
+
+ # + Message + string +
+

Human-readable summary of the request result.

+
+
+
+ # + RequestID + string +
+

Unique identifier for tracing the request.

+
+
+
+ # + Result + string +
+

Payload returned by the request.

+
+
+
+ + +
+
+++++ diff --git a/modules/savanna/modules/rest-api/pages/index.adoc b/modules/savanna/modules/rest-api/pages/index.adoc index 8bec0e47..5aba22c9 100644 --- a/modules/savanna/modules/rest-api/pages/index.adoc +++ b/modules/savanna/modules/rest-api/pages/index.adoc @@ -1,39 +1,133 @@ -= REST API reference (Preview) += Savanna REST API :experimental: +:page-aliases: rest-api.adoc, authentication.adoc, definitions.adoc, index-previous.adoc +:page-postman-url: https://app.getpostman.com/run-collection/58400411-0fa01886-653b-4b29-9e2e-6e3f17f01f34?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D58400411-0fa01886-653b-4b29-9e2e-6e3f17f01f34%26entityType%3Dcollection%26workspaceId%3D0c2ec169-63bb-4082-bba0-d73cec75c2b2 -Control-plane REST API for managing TigerGraph Savanna (workgroups, workspaces, and related resources) via `api.tgcloud.io`. +Use the Savanna REST (Representational State Transfer) API to provision workgroups and workspaces, manage cloud providers and add-ons, protect data with backups, control network access, and administer your organization programmatically. -For data-plane queries on a workspace, see xref:savanna:workgroup-workspace:workspaces/connect-via-api.adoc[Connect via APIs]. -For agent-based access, see xref:savanna:get-started:connect-agent-mcp.adoc[Connect AI tools with MCP]. +The Savanna REST API is the *control plane* for TigerGraph Savanna. It manages the resources around your graph so you can automate the full lifecycle of a workspace from your own scripts, services, and CI/CD pipelines instead of the Savanna UI. Every endpoint is relative to a single base URL: -[IMPORTANT] -==== -The TigerGraph Savanna REST API is currently in preview. Features and endpoints may change as the API evolves. -==== +[source] +---- +https://api.tgcloud.io +---- -== Reference +To read and write the data inside a workspace (schema, loading jobs, and GSQL), call that workspace host with the https://www.tigergraph.com/docs/tigergraph-server/4.3/api/gsql-endpoints[GSQL endpoints^] (schema, loading, and query installation) and the https://www.tigergraph.com/docs/tigergraph-server/4.3/api/built-in-endpoints[REST{plus}{plus} built-in endpoints^] (run queries and read or upsert graph data). You can also generate snippets from the console with xref:savanna:workgroup-workspace:workspaces/connect-via-api.adoc[Connect via APIs]. -[.start-cards,cols="2",grid=none,frame=none, separator=¦] -|=== -¦ -xref:savanna:rest-api:authentication.adoc[Authentication] +== The resource model -Authenticate to the control plane before you call any endpoint. -¦ -xref:savanna:rest-api:endpoints.adoc[Endpoints] +Control-plane resources are nested, which makes the endpoints predictable: an *organization* owns *cloud providers* and *workgroups*, a workgroup contains *workspaces*, and each workspace is attached to a *database* created with that workspace. Add-ons install at the organization and attach to a workspace. -Browse the available control-plane endpoints. -¦ -xref:savanna:rest-api:definitions.adoc[Definitions] +== Authentication -Look up request and response schemas used by the API. -¦ -xref:savanna:administration:settings/how2-create-api-key.adoc[Create an API key] +Every request to this API needs an API key in the `x-api-key` header. If you don't have a key yet, xref:savanna:rest-api:create-api-key.adoc[create an API key] in Savanna. Only an organization administrator can create one. If you don't have that role, reach out to an organization administrator to mint a key with the access you need. -Generate a key for scripts and services that call the control plane. -|=== +== Endpoints -== Where to go next +The list below is grouped by task. Each endpoint has its own page with the parameters, payload, and responses for that call. -* xref:savanna:workgroup-workspace:workspaces/connect-via-api.adoc[Connect via APIs] for data-plane curl, Python, and JavaScript examples. -* xref:savanna:get-started:connect-agent-mcp.adoc[Connect AI tools with MCP] when you want an AI agent to work against your database. +=== Choose a cloud provider + +TigerGraph-operated providers are the default. Bring Your Own Cloud (BYOC) registers a cloud account you own so workgroups can run there. + +* xref:savanna:rest-api:endpoints/list-public-cloud-providers.adoc[List public cloud providers]: list the providers TigerGraph operates. +* xref:savanna:rest-api:endpoints/list-cloud-providers.adoc[List cloud providers]: list the BYOC providers registered to your organization. +* xref:savanna:rest-api:endpoints/get-cloud-provider-details.adoc[Get cloud provider details]: return one BYOC provider. +* xref:savanna:rest-api:endpoints/create-a-cloud-provider.adoc[Create a cloud provider]: register a cloud account you own with Savanna. +* xref:savanna:rest-api:endpoints/validate-a-cloud-provider.adoc[Validate a cloud provider]: check whether a BYOC registration would succeed. +* xref:savanna:rest-api:endpoints/update-a-cloud-provider.adoc[Update a cloud provider]: rename a BYOC provider or record a version against it. +* xref:savanna:rest-api:endpoints/upgrade-a-cloud-provider.adoc[Upgrade a cloud provider]: upgrade Savanna components in a BYOC account. +* xref:savanna:rest-api:endpoints/delete-a-cloud-provider.adoc[Delete a cloud provider]: unregister a BYOC provider. + +=== Provision graph infrastructure + +Create, update, and delete the workgroups and workspaces that host your graphs. A database is created with the workspace; there is no separate create-database call. + +* xref:savanna:rest-api:endpoints/create-a-workgroup.adoc[Create a workgroup]: create a workgroup with a cloud provider, region, and deployment settings. +* xref:savanna:rest-api:endpoints/list-workgroups.adoc[List workgroups]: list the workgroups in your organization. +* xref:savanna:rest-api:endpoints/get-workgroup-details.adoc[Get workgroup details]: return details for a workgroup. +* xref:savanna:rest-api:endpoints/update-a-workgroup.adoc[Update a workgroup]: update a workgroup name, application logging, or encryption settings. +* xref:savanna:rest-api:endpoints/delete-a-workgroup.adoc[Delete a workgroup]: delete a workgroup. +* xref:savanna:rest-api:endpoints/create-a-workspace.adoc[Create a workspace]: create a workspace in a workgroup. The database is created with it. +* xref:savanna:rest-api:endpoints/get-workspace-details.adoc[Get workspace details]: return details for a workspace. +* xref:savanna:rest-api:endpoints/update-a-workspace.adoc[Update a workspace]: update a workspace configuration. +* xref:savanna:rest-api:endpoints/delete-a-workspace.adoc[Delete a workspace]: delete a workspace. +* xref:savanna:rest-api:endpoints/get-database-details.adoc[Get database details]: return details for a database. +* xref:savanna:rest-api:endpoints/update-a-database.adoc[Update a database]: rename a database. +* xref:savanna:rest-api:endpoints/delete-a-database.adoc[Delete a database]: delete a database. + +=== Run workspaces on your terms + +Control when a workspace is running so it is available when you need it and idle when you don't. + +* xref:savanna:rest-api:endpoints/resume-a-workspace.adoc[Resume a workspace]: resume a paused workspace. +* xref:savanna:rest-api:endpoints/pause-a-workspace.adoc[Pause a workspace]: pause a workspace. +* xref:savanna:rest-api:endpoints/refresh-a-workspace.adoc[Refresh a workspace]: refresh a workspace. +* xref:savanna:rest-api:endpoints/create-a-workspace-schedule.adoc[Create a workspace schedule]: create a recurring workspace schedule. +* xref:savanna:rest-api:endpoints/list-workspace-schedules.adoc[List workspace schedules]: list the schedules for a workspace. +* xref:savanna:rest-api:endpoints/update-a-workspace-schedule.adoc[Update a workspace schedule]: update a workspace schedule. +* xref:savanna:rest-api:endpoints/delete-a-workspace-schedule.adoc[Delete a workspace schedule]: delete a workspace schedule. + +=== Protect data with backups + +Back up a workspace, restore it, and automate backups on a recurring schedule. + +* xref:savanna:rest-api:endpoints/list-backups.adoc[List backups]: list the backups for a workspace. +* xref:savanna:rest-api:endpoints/restore-a-backup.adoc[Restore a backup]: restore a workspace from a backup. +* xref:savanna:rest-api:endpoints/get-backup-restore-status.adoc[Get backup restore status]: return the status of a backup restore job. +* xref:savanna:rest-api:endpoints/delete-a-backup.adoc[Delete a backup]: delete the specified workspace backup. +* xref:savanna:rest-api:endpoints/get-backup-schedule.adoc[Get backup schedule]: return the backup schedule for a workspace. +* xref:savanna:rest-api:endpoints/set-backup-schedule.adoc[Set backup schedule]: create or replace the backup schedule for a workspace. + +NOTE: A _backup schedule_ automates snapshots of your data. A _workspace schedule_ automates pausing and resuming compute. They are separate features on separate endpoints. + +=== Control who can connect + +Restrict network access to a workgroup and manage the database users inside a workspace. + +* xref:savanna:rest-api:endpoints/add-an-allowed-ip.adoc[Add an allowed IP]: add an IP address or CIDR range to a workgroup allow list. +* xref:savanna:rest-api:endpoints/list-allowed-ips.adoc[List allowed IPs]: list the IP addresses and CIDR ranges on a workgroup allow list. +* xref:savanna:rest-api:endpoints/check-the-current-ip.adoc[Check the current IP]: return your current public IP and whether the allow list permits it. +* xref:savanna:rest-api:endpoints/update-an-allowed-ip.adoc[Update an allowed IP]: update an entry in a workgroup allow list. +* xref:savanna:rest-api:endpoints/delete-an-allowed-ip.adoc[Delete an allowed IP]: remove an IP address or CIDR range from a workgroup allow list. +* xref:savanna:rest-api:endpoints/enable-the-allow-list.adoc[Enable the allow list]: enable IP allow-list enforcement for a workgroup. +* xref:savanna:rest-api:endpoints/disable-the-allow-list.adoc[Disable the allow list]: disable IP allow-list enforcement for a workgroup. +* xref:savanna:rest-api:endpoints/create-an-in-database-user.adoc[Create an in-database user]: create an in-database GSQL user for a workspace. +* xref:savanna:rest-api:endpoints/list-in-database-users.adoc[List in-database users]: list the in-database GSQL users for a workspace. +* xref:savanna:rest-api:endpoints/update-an-in-database-users-password.adoc[Update an in-database user's password]: update an in-database GSQL user's password. +* xref:savanna:rest-api:endpoints/delete-an-in-database-user.adoc[Delete an in-database user]: delete an in-database GSQL user from a workspace. + +=== Enable add-ons + +Install GraphStudio, Insights, GraphQL, and other add-ons, then attach them to a workspace. + +* xref:savanna:rest-api:endpoints/list-available-add-ons.adoc[List available add-ons]: list the add-ons available to your organization. +* xref:savanna:rest-api:endpoints/install-an-add-on.adoc[Install an add-on]: install an add-on, or enable or disable it. +* xref:savanna:rest-api:endpoints/list-installed-add-ons.adoc[List installed add-ons]: list the add-ons installed for your organization. +* xref:savanna:rest-api:endpoints/get-installed-add-on-details.adoc[Get installed add-on details]: return a single installed add-on. +* xref:savanna:rest-api:endpoints/list-add-on-workspaces.adoc[List add-on workspaces]: list the workspaces that have a given add-on enabled. +* xref:savanna:rest-api:endpoints/list-add-on-configurations.adoc[List add-on configurations]: list configurations of a given name for an installed add-on. +* xref:savanna:rest-api:endpoints/create-an-add-on-configuration.adoc[Create an add-on configuration]: create a configuration for an installed add-on. +* xref:savanna:rest-api:endpoints/update-an-add-on-configuration.adoc[Update an add-on configuration]: update a configuration of an installed add-on. +* xref:savanna:rest-api:endpoints/delete-an-add-on-configuration.adoc[Delete an add-on configuration]: delete a configuration of an installed add-on. + +=== Administer your organization + +Discover available capacity and manage the people in your org. + +* xref:savanna:rest-api:endpoints/get-supported-workspace-options.adoc[Get supported workspace options]: list the regions, TigerGraph versions, and workspace types available to your organization. +* xref:savanna:rest-api:endpoints/list-org-users.adoc[List org users]: list the users in your organization. This endpoint does not support API key authentication. +* xref:savanna:rest-api:endpoints/update-an-org-users-role.adoc[Update an org user's role]: update an organization user's role. This endpoint does not support API key authentication. + +== Common use cases + +* *Provision on demand*: pick a provider with xref:savanna:rest-api:endpoints/list-public-cloud-providers.adoc[List public cloud providers], stand up a full environment with xref:savanna:rest-api:endpoints/create-a-workgroup.adoc[Create a workgroup] and xref:savanna:rest-api:endpoints/create-a-workspace.adoc[Create a workspace], then tear it down with xref:savanna:rest-api:endpoints/delete-a-workspace.adoc[Delete a workspace]. +* *Control cost automatically*: pause idle compute with xref:savanna:rest-api:endpoints/pause-a-workspace.adoc[Pause a workspace] and xref:savanna:rest-api:endpoints/resume-a-workspace.adoc[Resume a workspace], or automate it with xref:savanna:rest-api:endpoints/create-a-workspace-schedule.adoc[Create a workspace schedule]. +* *Protect your data*: snapshot and recover with xref:savanna:rest-api:endpoints/set-backup-schedule.adoc[Set backup schedule] and xref:savanna:rest-api:endpoints/restore-a-backup.adoc[Restore a backup]. +* *Secure access*: restrict traffic with xref:savanna:rest-api:endpoints/add-an-allowed-ip.adoc[Add an allowed IP] and xref:savanna:rest-api:endpoints/enable-the-allow-list.adoc[Enable the allow list], and manage logins with xref:savanna:rest-api:endpoints/create-an-in-database-user.adoc[Create an in-database user]. +* *CI/CD integration*: create ephemeral workspaces for tests or preview environments, polling xref:savanna:rest-api:endpoints/get-workspace-details.adoc[Get workspace details] until the status is ready. + +== Related topics + +* xref:savanna:rest-api:create-api-key.adoc[Create an API key]. Generate a key in Organization Settings. +* xref:savanna:workgroup-workspace:workspaces/connect-via-api.adoc[Connect via APIs]. Data-plane curl, Python, and JavaScript examples. diff --git a/package.json b/package.json index 3203802d..8035d0cd 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,9 @@ "scripts": { "build": "antora generate --fetch antora-playbook.yml", "build:local": "antora generate antora-playbook.local.yml", - "dev": "PLAYBOOK=antora-playbook.local.yml gulp", + "dev": "PLAYBOOK=antora-playbook.local.yml PORT=5050 gulp devHot", + "dev:simple": "PLAYBOOK=antora-playbook.local.yml gulp", + "endpoints:split": "node lib/split-endpoints.js", "serve": "http-server build/site -c-1" }, "author": "",