From ba34fcb3ef8549a1071b2f57496173c6ba150c6a Mon Sep 17 00:00:00 2001 From: Michael Elrom Date: Wed, 23 Sep 2026 12:03:59 -0400 Subject: [PATCH] feat(starburst): add Enterprise Integration Model and Studio Project --- README.md | 1 + .../starburst_enterprise-482-e.2.json | 4709 +++++++++++++ .../OpenAPIs/starburst_enterprise-latest.json | 2349 +++++++ Starburst/Enterprise/README.md | 120 + .../Starburst Enterprise.project.json | 6185 +++++++++++++++++ 5 files changed, 13364 insertions(+) create mode 100644 Starburst/Enterprise/OpenAPIs/starburst_enterprise-482-e.2.json create mode 100644 Starburst/Enterprise/OpenAPIs/starburst_enterprise-latest.json create mode 100644 Starburst/Enterprise/README.md create mode 100644 Starburst/Enterprise/Studio Projects/Starburst Enterprise.project.json diff --git a/README.md b/README.md index c7dd557..2f689a9 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,7 @@ Assets are organized by vendor and product. Each folder may contain one or more | **SolarWinds** | Orion NPM ยท Service Desk | | **Sonatype** | Nexus | | **Spirent** | TestCenter | +| **Starburst** | Enterprise | | **Symantec** | Management Center | | **TCPWave** | IPAM (DNS-DHCP-IPAM / DDI) | | **Thruk** | Monitoring dashboard (Naemon / Nagios) | diff --git a/Starburst/Enterprise/OpenAPIs/starburst_enterprise-482-e.2.json b/Starburst/Enterprise/OpenAPIs/starburst_enterprise-482-e.2.json new file mode 100644 index 0000000..4b46147 --- /dev/null +++ b/Starburst/Enterprise/OpenAPIs/starburst_enterprise-482-e.2.json @@ -0,0 +1,4709 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Starburst Enterprise", + "description": "Starburst Enterprise is a self-hosted, Trino-based analytics platform for querying and governing data across catalogs. Its REST API manages built-in access control (roles, grants, role assignments), data products, ad hoc/scheduled SQL jobs, and cluster maintenance windows.", + "version": "482-e.2" + }, + "servers": [ + { + "url": "https://{host}:{port}", + "description": "Starburst Enterprise coordinator. This platform does not apply OpenAPI server variables/paths automatically \u2014 set the integration instance's server.base_path to \"/api\".", + "variables": { + "host": { + "default": "host.example.com", + "description": "Starburst Enterprise coordinator hostname or IP." + }, + "port": { + "default": "8443", + "description": "Starburst Enterprise coordinator port." + } + } + } + ], + "security": [ + { + "BasicAuth": [] + } + ], + "tags": [ + { + "name": "Roles", + "description": "Built-in access control roles, which bundle privileges and are assigned to users and groups." + }, + { + "name": "Grants", + "description": "Privilege grants that attach a role to an action on a catalog, schema, table, column, or other entity." + }, + { + "name": "LocationGrants", + "description": "Read/write privilege grants scoped to a storage location pattern rather than a catalog entity." + }, + { + "name": "Subjects", + "description": "Role assignments to and from users and groups." + }, + { + "name": "RoleAssignments", + "description": "Read-only view across all role assignments." + }, + { + "name": "Domains", + "description": "Data domains used to group and govern related data products." + }, + { + "name": "DataProducts", + "description": "Curated, published collections of views over one or more catalogs." + }, + { + "name": "Workflows", + "description": "Asynchronous data product lifecycle actions (publish, delete)." + }, + { + "name": "Tags", + "description": "Free-text tags applied to data products." + }, + { + "name": "SqlJobs", + "description": "Ad hoc or scheduled SQL statement execution." + }, + { + "name": "DataMaintenance", + "description": "Cluster maintenance window scheduling." + } + ], + "paths": { + "/v1/biac/roles": { + "post": { + "tags": [ + "Roles" + ], + "summary": "Create Role", + "description": "Create a built-in access control role.", + "operationId": "createRole", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RolePayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Role" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "Roles" + ], + "summary": "List Roles", + "description": "List all built-in access control roles.", + "operationId": "listRoles", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/roles/{roleId}": { + "get": { + "tags": [ + "Roles" + ], + "summary": "Get Role", + "description": "Retrieve details for a role.", + "operationId": "getRole", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Role" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "Roles" + ], + "summary": "Update Role", + "description": "Update a role.", + "operationId": "updateRole", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RolePayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Role" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Roles" + ], + "summary": "Delete Role", + "description": "Delete a role.", + "operationId": "deleteRole", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/grants": { + "post": { + "tags": [ + "Grants" + ], + "summary": "Create Grant", + "description": "Grant a privilege on an entity to a role.", + "operationId": "createGrant", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GrantPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Grant" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "Grants" + ], + "summary": "List Grants", + "description": "List all grants.", + "operationId": "listGrants", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Grant" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/grants/{grantId}": { + "get": { + "tags": [ + "Grants" + ], + "summary": "Get Grant", + "description": "Retrieve details for a grant.", + "operationId": "getGrant", + "parameters": [ + { + "name": "grantId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Grant identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Grant" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Grants" + ], + "summary": "Delete Grant", + "description": "Revoke a grant.", + "operationId": "deleteGrant", + "parameters": [ + { + "name": "grantId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Grant identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/locationGrants": { + "post": { + "tags": [ + "LocationGrants" + ], + "summary": "Create Location Grant", + "description": "Grant read or write access to a storage location pattern.", + "operationId": "createLocationGrant", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LocationGrantPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LocationGrant" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "LocationGrants" + ], + "summary": "List Location Grants", + "description": "List all location grants.", + "operationId": "listLocationGrants", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationGrant" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/locationGrants/{locationGrantId}": { + "get": { + "tags": [ + "LocationGrants" + ], + "summary": "Get Location Grant", + "description": "Retrieve details for a location grant.", + "operationId": "getLocationGrant", + "parameters": [ + { + "name": "locationGrantId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Location grant identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LocationGrant" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "LocationGrants" + ], + "summary": "Delete Location Grant", + "description": "Revoke a location grant.", + "operationId": "deleteLocationGrant", + "parameters": [ + { + "name": "locationGrantId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Location grant identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/subjects/users/{userId}/roles/{roleId}": { + "post": { + "tags": [ + "Subjects" + ], + "summary": "Assign Role To User", + "description": "Assign a role to a user.", + "operationId": "assignRoleToUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "User identifier." + }, + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Subjects" + ], + "summary": "Remove Role From User", + "description": "Remove a role assignment from a user.", + "operationId": "removeRoleFromUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "User identifier." + }, + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/subjects/users/{userId}/roles": { + "get": { + "tags": [ + "Subjects" + ], + "summary": "List User Role Assignments", + "description": "List the roles assigned to a user.", + "operationId": "listUserRoleAssignments", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "User identifier." + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/subjects/groups/{groupId}/roles/{roleId}": { + "post": { + "tags": [ + "Subjects" + ], + "summary": "Assign Role To Group", + "description": "Assign a role to a group.", + "operationId": "assignRoleToGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Group identifier." + }, + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Subjects" + ], + "summary": "Remove Role From Group", + "description": "Remove a role assignment from a group.", + "operationId": "removeRoleFromGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Group identifier." + }, + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/subjects/groups/{groupId}/roles": { + "get": { + "tags": [ + "Subjects" + ], + "summary": "List Group Role Assignments", + "description": "List the roles assigned to a group.", + "operationId": "listGroupRoleAssignments", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Group identifier." + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/roleAssignments": { + "get": { + "tags": [ + "RoleAssignments" + ], + "summary": "List All Role Assignments", + "description": "List every role assignment across users, groups, and roles.", + "operationId": "listRoleAssignments", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/domains": { + "post": { + "tags": [ + "Domains" + ], + "summary": "Create Domain", + "description": "Create a data domain used to organize data products.", + "operationId": "createDomain", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DomainPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Domain" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "Domains" + ], + "summary": "List Domains", + "description": "List all data domains.", + "operationId": "listDomains", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Domain" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/domains/{domainId}": { + "get": { + "tags": [ + "Domains" + ], + "summary": "Get Domain", + "description": "Retrieve details for a data domain.", + "operationId": "getDomain", + "parameters": [ + { + "name": "domainId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Domain identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Domain" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "Domains" + ], + "summary": "Update Domain", + "description": "Update a data domain.", + "operationId": "updateDomain", + "parameters": [ + { + "name": "domainId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Domain identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DomainPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Domain" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Domains" + ], + "summary": "Delete Domain", + "description": "Delete a data domain.", + "operationId": "deleteDomain", + "parameters": [ + { + "name": "domainId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Domain identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts": { + "post": { + "tags": [ + "DataProducts" + ], + "summary": "Create Data Product", + "description": "Create a data product.", + "operationId": "createDataProduct", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProductPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProduct" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/search": { + "get": { + "tags": [ + "DataProducts" + ], + "summary": "Search Data Products", + "description": "Search/list data products.", + "operationId": "searchDataProducts", + "parameters": [ + { + "name": "query", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Free-text search query." + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataProduct" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/{id}": { + "get": { + "tags": [ + "DataProducts" + ], + "summary": "Get Data Product", + "description": "Retrieve details for a data product.", + "operationId": "getDataProduct", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProduct" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "DataProducts" + ], + "summary": "Update Data Product", + "description": "Update a data product.", + "operationId": "updateDataProduct", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProductPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProduct" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/workflows/dataProducts/{id}": { + "delete": { + "tags": [ + "Workflows" + ], + "summary": "Delete Data Product", + "description": "Delete a data product.", + "operationId": "deleteDataProduct", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/workflows/dataProducts/{id}/publish": { + "post": { + "tags": [ + "Workflows" + ], + "summary": "Publish Data Product", + "description": "Publish a data product's views to its target catalog and schema.", + "operationId": "publishDataProduct", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/tags": { + "get": { + "tags": [ + "Tags" + ], + "summary": "List Tags", + "description": "List all tags.", + "operationId": "listTags", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/tags/{tagId}": { + "put": { + "tags": [ + "Tags" + ], + "summary": "Update Tag", + "description": "Rename a tag.", + "operationId": "updateTag", + "parameters": [ + { + "name": "tagId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Tag" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Tags" + ], + "summary": "Delete Tag", + "description": "Delete a tag.", + "operationId": "deleteTag", + "parameters": [ + { + "name": "tagId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/sqlJobs": { + "post": { + "tags": [ + "SqlJobs" + ], + "summary": "Create SQL Job", + "description": "Create a SQL job that runs one or more SQL statements on demand or on a schedule.", + "operationId": "createSqlJob", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlJobPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlJob" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "SqlJobs" + ], + "summary": "List SQL Jobs", + "description": "List all SQL jobs.", + "operationId": "listSqlJobs", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SqlJob" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/sqlJobs/{jobId}": { + "get": { + "tags": [ + "SqlJobs" + ], + "summary": "Get SQL Job", + "description": "Retrieve details for a SQL job.", + "operationId": "getSqlJob", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "SQL job identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlJob" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "SqlJobs" + ], + "summary": "Update SQL Job", + "description": "Update a SQL job.", + "operationId": "updateSqlJob", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "SQL job identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlJobPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlJob" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "SqlJobs" + ], + "summary": "Delete SQL Job", + "description": "Delete a SQL job.", + "operationId": "deleteSqlJob", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "SQL job identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/sqlJobs/{jobId}/execute": { + "post": { + "tags": [ + "SqlJobs" + ], + "summary": "Execute SQL Job", + "description": "Run a SQL job immediately, outside its schedule.", + "operationId": "executeSqlJob", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "SQL job identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/maintenance/cluster/apply": { + "post": { + "tags": [ + "DataMaintenance" + ], + "summary": "Apply Cluster Maintenance", + "description": "Define or replace the cluster's maintenance windows.", + "operationId": "applyClusterMaintenance", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MaintenancePayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MaintenancePayload" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/maintenance/cluster": { + "get": { + "tags": [ + "DataMaintenance" + ], + "summary": "Get Cluster Maintenance", + "description": "Retrieve the cluster's configured maintenance windows.", + "operationId": "getClusterMaintenance", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MaintenancePayload" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/maintenance": { + "delete": { + "tags": [ + "DataMaintenance" + ], + "summary": "Delete All Maintenance Data", + "description": "Delete all configured maintenance windows.", + "operationId": "deleteAllMaintenance", + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/audit/accessLogs": { + "get": { + "tags": [ + "AuditLogs" + ], + "summary": "List Access Logs", + "description": "List built-in access control access logs.", + "operationId": "listAccessLogs", + "parameters": [ + { + "name": "startDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "endDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "queryId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuditLogEntry" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/audit/changeLogs": { + "get": { + "tags": [ + "AuditLogs" + ], + "summary": "List Change Logs", + "description": "List built-in access control change logs.", + "operationId": "listChangeLogs", + "parameters": [ + { + "name": "startDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "endDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "queryId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuditLogEntry" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/roles/{roleId}/columnMasks": { + "post": { + "tags": [ + "ColumnMasks" + ], + "summary": "Add Column Mask To Role", + "description": "Attach a column mask expression to a role.", + "operationId": "addColumnMaskToRole", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ColumnMaskPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "ColumnMasks" + ], + "summary": "List Role Column Masks", + "description": "List column masks attached to a role.", + "operationId": "listRoleColumnMasks", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/expressions/columnMask": { + "post": { + "tags": [ + "ColumnMasks" + ], + "summary": "Create Column Mask Expression", + "description": "Create a reusable column mask expression.", + "operationId": "createColumnMaskExpression", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExpressionPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Expression" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "ColumnMasks" + ], + "summary": "List Column Mask Expressions", + "description": "List reusable column mask expressions.", + "operationId": "listColumnMaskExpressions", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Expression" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/expressions/columnMask/{columnMaskExpressionId}": { + "delete": { + "tags": [ + "ColumnMasks" + ], + "summary": "Delete Column Mask Expression", + "description": "Delete a column mask expression.", + "operationId": "deleteColumnMaskExpression", + "parameters": [ + { + "name": "columnMaskExpressionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Column mask expression identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "ColumnMasks" + ], + "summary": "Get Column Mask Expression", + "description": "Retrieve a column mask expression.", + "operationId": "getColumnMaskExpression", + "parameters": [ + { + "name": "columnMaskExpressionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Column mask expression identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Expression" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "ColumnMasks" + ], + "summary": "Update Column Mask Expression", + "description": "Update a column mask expression.", + "operationId": "updateColumnMaskExpression", + "parameters": [ + { + "name": "columnMaskExpressionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Column mask expression identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExpressionPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Expression" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/roles/{roleId}/columnMasks/{columnMaskId}": { + "delete": { + "tags": [ + "ColumnMasks" + ], + "summary": "Remove Column Mask From Role", + "description": "Detach a column mask from a role.", + "operationId": "removeColumnMaskFromRole", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + }, + { + "name": "columnMaskId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Column mask identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "ColumnMasks" + ], + "summary": "Get Role Column Mask", + "description": "Retrieve a column mask attached to a role.", + "operationId": "getRoleColumnMask", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + }, + { + "name": "columnMaskId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Column mask identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/roles/{roleId}/rowFilters": { + "post": { + "tags": [ + "RowFilters" + ], + "summary": "Add Row Filter To Role", + "description": "Attach a row filter expression to a role.", + "operationId": "addRowFilterToRole", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RowFilterPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "RowFilters" + ], + "summary": "List Role Row Filters", + "description": "List row filters attached to a role.", + "operationId": "listRoleRowFilters", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/expressions/rowFilter": { + "post": { + "tags": [ + "RowFilters" + ], + "summary": "Create Row Filter Expression", + "description": "Create a reusable row filter expression.", + "operationId": "createRowFilterExpression", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExpressionPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Expression" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "RowFilters" + ], + "summary": "List Row Filter Expressions", + "description": "List reusable row filter expressions.", + "operationId": "listRowFilterExpressions", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Expression" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/roles/{roleId}/rowFilters/{rowFilterId}": { + "delete": { + "tags": [ + "RowFilters" + ], + "summary": "Remove Row Filter From Role", + "description": "Detach a row filter from a role.", + "operationId": "removeRowFilterFromRole", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + }, + { + "name": "rowFilterId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Row filter identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "RowFilters" + ], + "summary": "Get Role Row Filter", + "description": "Retrieve a row filter attached to a role.", + "operationId": "getRoleRowFilter", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + }, + { + "name": "rowFilterId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Row filter identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/expressions/rowFilter/{rowFilterExpressionId}": { + "delete": { + "tags": [ + "RowFilters" + ], + "summary": "Delete Row Filter Expression", + "description": "Delete a row filter expression.", + "operationId": "deleteRowFilterExpression", + "parameters": [ + { + "name": "rowFilterExpressionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Row filter expression identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "RowFilters" + ], + "summary": "Get Row Filter Expression", + "description": "Retrieve a row filter expression.", + "operationId": "getRowFilterExpression", + "parameters": [ + { + "name": "rowFilterExpressionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Row filter expression identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Expression" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "RowFilters" + ], + "summary": "Update Row Filter Expression", + "description": "Update a row filter expression.", + "operationId": "updateRowFilterExpression", + "parameters": [ + { + "name": "rowFilterExpressionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Row filter expression identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExpressionPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Expression" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/subjects/roles/{parentRoleId}/roles/{childRoleId}": { + "post": { + "tags": [ + "Subjects" + ], + "summary": "Assign Role To Role", + "description": "Nest a role inside another role.", + "operationId": "assignRoleToRole", + "parameters": [ + { + "name": "parentRoleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Parent role identifier." + }, + { + "name": "childRoleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Child role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Subjects" + ], + "summary": "Remove Role From Role", + "description": "Remove a nested role assignment.", + "operationId": "removeRoleFromRole", + "parameters": [ + { + "name": "parentRoleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Parent role identifier." + }, + { + "name": "childRoleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Child role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/subjects/roles/{roleId}/roles": { + "get": { + "tags": [ + "Subjects" + ], + "summary": "List Role-To-Role Assignments", + "description": "List roles nested under a role.", + "operationId": "listRoleToRoleAssignments", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/clone": { + "post": { + "tags": [ + "DataProducts" + ], + "summary": "Clone Data Product", + "description": "Clone an existing data product.", + "operationId": "cloneDataProduct", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneDataProductPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProduct" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/domains/{domain}/dataProducts/{name}/export": { + "get": { + "tags": [ + "DataProducts" + ], + "summary": "Export Data Product By Domain And Name", + "description": "Export a data product's definition, looked up by domain and name.", + "operationId": "exportDataProductByDomainAndName", + "parameters": [ + { + "name": "domain", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Domain name." + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product name." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/{id}/export": { + "get": { + "tags": [ + "DataProducts" + ], + "summary": "Export Data Product", + "description": "Export a data product's definition by ID.", + "operationId": "exportDataProduct", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/{id}/materializedViewRefreshMetadata": { + "get": { + "tags": [ + "DataProducts" + ], + "summary": "Get Materialized View Refresh Metadata", + "description": "Retrieve materialized view refresh metadata for a data product.", + "operationId": "getMaterializedViewRefreshMetadata", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/{id}/openApi": { + "get": { + "tags": [ + "DataProducts" + ], + "summary": "Get Data Product OpenAPI Specification", + "description": "Retrieve the generated OpenAPI specification for a data product's views.", + "operationId": "getDataProductOpenApi", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/targetCatalogs": { + "get": { + "tags": [ + "DataProducts" + ], + "summary": "List Target Catalogs", + "description": "List catalogs available as a data product publish target.", + "operationId": "listTargetCatalogs", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TargetCatalog" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/import": { + "post": { + "tags": [ + "DataProducts" + ], + "summary": "Import Data Product", + "description": "Import a previously exported data product definition.", + "operationId": "importDataProduct", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportDataProductPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProduct" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/{id}/sampleQueries": { + "get": { + "tags": [ + "DataProducts" + ], + "summary": "List Data Product Sample Queries", + "description": "List sample queries defined for a data product.", + "operationId": "listDataProductSampleQueries", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "DataProducts" + ], + "summary": "Update Data Product Sample Queries", + "description": "Replace the sample queries defined for a data product.", + "operationId": "updateDataProductSampleQueries", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SampleQueriesPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/domains": { + "put": { + "tags": [ + "DataProducts" + ], + "summary": "Reassign Data Product Domains", + "description": "Move one or more data products to a different domain.", + "operationId": "reassignDataProductDomains", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReassignDomainPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/{id}/materializedViews/{viewName}": { + "put": { + "tags": [ + "DataProducts" + ], + "summary": "Update Data Product Materialized View", + "description": "Update a materialized view definition in a data product.", + "operationId": "updateDataProductMaterializedView", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + }, + { + "name": "viewName", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "View name." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MaterializedViewPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/{id}/views/{viewName}": { + "put": { + "tags": [ + "DataProducts" + ], + "summary": "Update Data Product View", + "description": "Update a view definition in a data product.", + "operationId": "updateDataProductView", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + }, + { + "name": "viewName", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "View name." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ViewPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/tags/unused": { + "delete": { + "tags": [ + "Tags" + ], + "summary": "Delete Unused Tags", + "description": "Delete every tag not currently applied to a data product.", + "operationId": "deleteUnusedTags", + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/{dataProductId}/tags/{tagId}": { + "delete": { + "tags": [ + "Tags" + ], + "summary": "Remove Tag From Data Product", + "description": "Remove a tag from a data product.", + "operationId": "removeTagFromDataProduct", + "parameters": [ + { + "name": "dataProductId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + }, + { + "name": "tagId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/{dataProductId}/tags": { + "get": { + "tags": [ + "Tags" + ], + "summary": "List Data Product Tags", + "description": "List tags applied to a data product.", + "operationId": "listDataProductTags", + "parameters": [ + { + "name": "dataProductId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "Tags" + ], + "summary": "Update Data Product Tags", + "description": "Replace the tags applied to a data product.", + "operationId": "updateDataProductTags", + "parameters": [ + { + "name": "dataProductId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagsPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/workflows/dataProducts/{id}/deleteStatus": { + "get": { + "tags": [ + "Workflows" + ], + "summary": "Get Data Product Deletion Status", + "description": "Check the status of an in-progress data product deletion.", + "operationId": "getDataProductDeleteStatus", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/workflows/dataProducts/{id}/publishStatus": { + "get": { + "tags": [ + "Workflows" + ], + "summary": "Get Data Product Publication Status", + "description": "Check the status of an in-progress data product publish.", + "operationId": "getDataProductPublishStatus", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/filterNestedEntities": { + "get": { + "tags": [ + "Default" + ], + "summary": "Filter Nested Entities", + "description": "List entities nested under a parent entity, filtered by category.", + "operationId": "filterNestedEntities", + "parameters": [ + { + "name": "entity", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/roleHierarchy": { + "get": { + "tags": [ + "Default" + ], + "summary": "Get Role Hierarchy", + "description": "Retrieve the full nested-role hierarchy.", + "operationId": "getRoleHierarchy", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/hasAccess": { + "get": { + "tags": [ + "Default" + ], + "summary": "Check Access", + "description": "Check whether a subject has a given privilege on a resource.", + "operationId": "hasAccess", + "parameters": [ + { + "name": "subject", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "action", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "resource", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/entityCategories/actions": { + "get": { + "tags": [ + "EntityCategories" + ], + "summary": "List Entity Category Actions", + "description": "List privilege actions available across entity categories.", + "operationId": "listEntityCategoryActions", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/entityCategories": { + "get": { + "tags": [ + "EntityCategories" + ], + "summary": "List Entity Categories", + "description": "List entity categories (catalog, schema, table, column, role, etc).", + "operationId": "listEntityCategories", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EntityCategory" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/sqlJobs/{jobId}/status": { + "get": { + "tags": [ + "SqlJobs" + ], + "summary": "Get SQL Job Status", + "description": "Check a SQL job's current execution status.", + "operationId": "getSqlJobStatus", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "SQL job identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlJobExecution" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/sqlJobs/{jobId}/history": { + "get": { + "tags": [ + "SqlJobs" + ], + "summary": "List SQL Job History", + "description": "List past executions of a SQL job.", + "operationId": "listSqlJobHistory", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "SQL job identifier." + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SqlJobExecution" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + } + }, + "components": { + "securitySchemes": { + "BasicAuth": { + "type": "http", + "scheme": "basic" + } + }, + "schemas": { + "RolePayload": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Role name." + }, + "description": { + "type": "string", + "description": "Human-readable description of the role." + } + } + }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Role identifier." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "GrantPayload": { + "type": "object", + "required": [ + "roleId", + "privilege", + "entityId" + ], + "properties": { + "roleId": { + "type": "string", + "description": "Role receiving the privilege." + }, + "privilege": { + "type": "string", + "description": "Privilege being granted.", + "enum": [ + "SELECT", + "INSERT", + "UPDATE", + "DELETE", + "CREATE", + "DROP", + "ALTER", + "SHOW", + "REFRESH", + "EXECUTE", + "IMPERSONATE" + ] + }, + "entityId": { + "type": "string", + "description": "Identifier of the catalog/schema/table/column/role/function/procedure entity the privilege applies to." + }, + "entityKind": { + "type": "string", + "enum": [ + "CATALOG", + "SCHEMA", + "TABLE", + "COLUMN", + "BRANCH", + "ROLE", + "USER", + "FUNCTION", + "PROCEDURE" + ] + }, + "grantOption": { + "type": "boolean", + "description": "Whether the grantee can re-grant this privilege to others.", + "default": false + } + } + }, + "Grant": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "roleId": { + "type": "string" + }, + "privilege": { + "type": "string" + }, + "entityId": { + "type": "string" + }, + "entityKind": { + "type": "string" + }, + "grantOption": { + "type": "boolean" + } + } + }, + "LocationGrantPayload": { + "type": "object", + "required": [ + "roleId", + "locationPattern", + "privilege" + ], + "properties": { + "roleId": { + "type": "string", + "description": "Role receiving the location privilege." + }, + "locationPattern": { + "type": "string", + "description": "Storage location or glob pattern this grant applies to, e.g. s3://bucket/prefix/*." + }, + "privilege": { + "type": "string", + "enum": [ + "READ", + "WRITE" + ] + }, + "grantOption": { + "type": "boolean", + "default": false + } + } + }, + "LocationGrant": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "roleId": { + "type": "string" + }, + "locationPattern": { + "type": "string" + }, + "privilege": { + "type": "string" + }, + "grantOption": { + "type": "boolean" + } + } + }, + "DomainPayload": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Data domain name." + }, + "description": { + "type": "string" + } + } + }, + "Domain": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "DataProductView": { + "type": "object", + "required": [ + "name", + "definitionQuery" + ], + "properties": { + "name": { + "type": "string", + "description": "View name." + }, + "definitionQuery": { + "type": "string", + "description": "SQL SELECT statement backing the view." + }, + "description": { + "type": "string" + }, + "columns": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + } + } + } + } + }, + "DataProductPayload": { + "type": "object", + "required": [ + "name", + "catalogName", + "schemaName", + "domainId" + ], + "properties": { + "name": { + "type": "string" + }, + "catalogName": { + "type": "string", + "description": "Target catalog the data product's views are published into." + }, + "schemaName": { + "type": "string", + "description": "Target schema the data product's views are published into." + }, + "domainId": { + "type": "string", + "description": "Data domain the data product belongs to." + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataProductView" + } + } + } + }, + "DataProduct": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "DRAFT", + "PUBLISHED", + "PUBLISHING", + "ERROR" + ] + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataProductView" + } + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "updateDate": { + "type": "string", + "format": "date-time" + } + } + }, + "TagPayload": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + } + } + }, + "Tag": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "SqlJobSchedule": { + "type": "object", + "properties": { + "cron": { + "type": "string", + "description": "Cron expression controlling when the job runs." + }, + "timeZone": { + "type": "string" + } + } + }, + "SqlJobPayload": { + "type": "object", + "required": [ + "name", + "catalogName", + "schemaName", + "sqlStatements" + ], + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "sqlStatements": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more SQL statements executed in sequence when the job runs." + }, + "schedule": { + "$ref": "#/components/schemas/SqlJobSchedule" + }, + "owner": { + "type": "string" + } + } + }, + "SqlJob": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "sqlStatements": { + "type": "array", + "items": { + "type": "string" + } + }, + "schedule": { + "$ref": "#/components/schemas/SqlJobSchedule" + }, + "owner": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "MaintenanceWindow": { + "type": "object", + "required": [ + "name", + "cronSchedule", + "durationMinutes" + ], + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "cronSchedule": { + "type": "string", + "description": "Cron expression controlling when the maintenance window opens." + }, + "durationMinutes": { + "type": "integer", + "description": "Length of the maintenance window in minutes." + } + } + }, + "MaintenancePayload": { + "type": "object", + "required": [ + "maintenanceWindows" + ], + "properties": { + "maintenanceWindows": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MaintenanceWindow" + } + } + } + }, + "PageMetadata": { + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "pageSize": { + "type": "integer" + } + } + }, + "ExpressionPayload": { + "type": "object", + "required": [ + "name", + "expression" + ], + "properties": { + "name": { + "type": "string" + }, + "expression": { + "type": "string", + "description": "SQL boolean (row filter) or scalar (column mask) expression." + }, + "description": { + "type": "string" + } + } + }, + "Expression": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "expression": { + "type": "string" + }, + "description": { + "type": "string" + } + } + }, + "ColumnMaskPayload": { + "type": "object", + "required": [ + "columnMaskExpressionId", + "entityId" + ], + "properties": { + "columnMaskExpressionId": { + "type": "string" + }, + "entityId": { + "type": "string", + "description": "Column entity the mask applies to." + } + } + }, + "RowFilterPayload": { + "type": "object", + "required": [ + "rowFilterExpressionId", + "entityId" + ], + "properties": { + "rowFilterExpressionId": { + "type": "string" + }, + "entityId": { + "type": "string", + "description": "Table entity the row filter applies to." + } + } + }, + "CloneDataProductPayload": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Data product to clone." + }, + "name": { + "type": "string", + "description": "Name for the cloned data product." + }, + "domainId": { + "type": "string" + } + } + }, + "ImportDataProductPayload": { + "type": "object", + "required": [ + "domainId", + "definition" + ], + "properties": { + "domainId": { + "type": "string" + }, + "definition": { + "type": "object", + "description": "Exported data product definition, as returned by the export endpoints." + } + } + }, + "ReassignDomainPayload": { + "type": "object", + "required": [ + "dataProductIds", + "domainId" + ], + "properties": { + "dataProductIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "domainId": { + "type": "string", + "description": "Domain the listed data products are reassigned to." + } + } + }, + "ViewPayload": { + "type": "object", + "properties": { + "definitionQuery": { + "type": "string" + }, + "description": { + "type": "string" + }, + "columns": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + } + } + } + } + }, + "MaterializedViewPayload": { + "type": "object", + "properties": { + "definitionQuery": { + "type": "string" + }, + "refreshSchedule": { + "type": "string", + "description": "Cron expression controlling refresh cadence." + } + } + }, + "SampleQueriesPayload": { + "type": "object", + "properties": { + "sampleQueries": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "query": { + "type": "string" + } + } + } + } + } + }, + "TagsPayload": { + "type": "object", + "properties": { + "tagIds": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TargetCatalog": { + "type": "object", + "properties": { + "catalogName": { + "type": "string" + } + } + }, + "EntityCategory": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "actions": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "AuditLogEntry": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + }, + "action": { + "type": "string" + }, + "queryId": { + "type": "string" + } + } + }, + "SqlJobExecution": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "jobId": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "RUNNING", + "SUCCEEDED", + "FAILED" + ] + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time" + } + } + } + } + } +} diff --git a/Starburst/Enterprise/OpenAPIs/starburst_enterprise-latest.json b/Starburst/Enterprise/OpenAPIs/starburst_enterprise-latest.json new file mode 100644 index 0000000..b837b04 --- /dev/null +++ b/Starburst/Enterprise/OpenAPIs/starburst_enterprise-latest.json @@ -0,0 +1,2349 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Starburst Enterprise", + "description": "Starburst Enterprise is a self-hosted, Trino-based analytics platform for querying and governing data across catalogs. Its REST API manages built-in access control (roles, grants, role assignments), data products, ad hoc/scheduled SQL jobs, and cluster maintenance windows.", + "version": "latest", + "x-vendor-api-version": "482-e.2", + "x-itential-curated": "Trimmed to 43 of 91 upstream operations across Built-in Access Control, Data Products, SQL Jobs, and Data Maintenance, covering common CRUD for role/privilege administration, data product lifecycle, and ad hoc SQL job automation. See the repo README for the full breakdown and the full spec." + }, + "servers": [ + { + "url": "https://{host}:{port}", + "description": "Starburst Enterprise coordinator. This platform does not apply OpenAPI server variables/paths automatically \u2014 set the integration instance's server.base_path to \"/api\".", + "variables": { + "host": { + "default": "host.example.com", + "description": "Starburst Enterprise coordinator hostname or IP." + }, + "port": { + "default": "8443", + "description": "Starburst Enterprise coordinator port." + } + } + } + ], + "security": [ + { + "BasicAuth": [] + } + ], + "tags": [ + { + "name": "Roles", + "description": "Built-in access control roles, which bundle privileges and are assigned to users and groups." + }, + { + "name": "Grants", + "description": "Privilege grants that attach a role to an action on a catalog, schema, table, column, or other entity." + }, + { + "name": "LocationGrants", + "description": "Read/write privilege grants scoped to a storage location pattern rather than a catalog entity." + }, + { + "name": "Subjects", + "description": "Role assignments to and from users and groups." + }, + { + "name": "RoleAssignments", + "description": "Read-only view across all role assignments." + }, + { + "name": "Domains", + "description": "Data domains used to group and govern related data products." + }, + { + "name": "DataProducts", + "description": "Curated, published collections of views over one or more catalogs." + }, + { + "name": "Workflows", + "description": "Asynchronous data product lifecycle actions (publish, delete)." + }, + { + "name": "Tags", + "description": "Free-text tags applied to data products." + }, + { + "name": "SqlJobs", + "description": "Ad hoc or scheduled SQL statement execution." + }, + { + "name": "DataMaintenance", + "description": "Cluster maintenance window scheduling." + } + ], + "paths": { + "/v1/biac/roles": { + "post": { + "tags": [ + "Roles" + ], + "summary": "Create Role", + "description": "Create a built-in access control role.", + "operationId": "createRole", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RolePayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Role" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "Roles" + ], + "summary": "List Roles", + "description": "List all built-in access control roles.", + "operationId": "listRoles", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/roles/{roleId}": { + "get": { + "tags": [ + "Roles" + ], + "summary": "Get Role", + "description": "Retrieve details for a role.", + "operationId": "getRole", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Role" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "Roles" + ], + "summary": "Update Role", + "description": "Update a role.", + "operationId": "updateRole", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RolePayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Role" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Roles" + ], + "summary": "Delete Role", + "description": "Delete a role.", + "operationId": "deleteRole", + "parameters": [ + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/grants": { + "post": { + "tags": [ + "Grants" + ], + "summary": "Create Grant", + "description": "Grant a privilege on an entity to a role.", + "operationId": "createGrant", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GrantPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Grant" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "Grants" + ], + "summary": "List Grants", + "description": "List all grants.", + "operationId": "listGrants", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Grant" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/grants/{grantId}": { + "get": { + "tags": [ + "Grants" + ], + "summary": "Get Grant", + "description": "Retrieve details for a grant.", + "operationId": "getGrant", + "parameters": [ + { + "name": "grantId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Grant identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Grant" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Grants" + ], + "summary": "Delete Grant", + "description": "Revoke a grant.", + "operationId": "deleteGrant", + "parameters": [ + { + "name": "grantId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Grant identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/locationGrants": { + "post": { + "tags": [ + "LocationGrants" + ], + "summary": "Create Location Grant", + "description": "Grant read or write access to a storage location pattern.", + "operationId": "createLocationGrant", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LocationGrantPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LocationGrant" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "LocationGrants" + ], + "summary": "List Location Grants", + "description": "List all location grants.", + "operationId": "listLocationGrants", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationGrant" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/locationGrants/{locationGrantId}": { + "get": { + "tags": [ + "LocationGrants" + ], + "summary": "Get Location Grant", + "description": "Retrieve details for a location grant.", + "operationId": "getLocationGrant", + "parameters": [ + { + "name": "locationGrantId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Location grant identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LocationGrant" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "LocationGrants" + ], + "summary": "Delete Location Grant", + "description": "Revoke a location grant.", + "operationId": "deleteLocationGrant", + "parameters": [ + { + "name": "locationGrantId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Location grant identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/subjects/users/{userId}/roles/{roleId}": { + "post": { + "tags": [ + "Subjects" + ], + "summary": "Assign Role To User", + "description": "Assign a role to a user.", + "operationId": "assignRoleToUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "User identifier." + }, + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Subjects" + ], + "summary": "Remove Role From User", + "description": "Remove a role assignment from a user.", + "operationId": "removeRoleFromUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "User identifier." + }, + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/subjects/users/{userId}/roles": { + "get": { + "tags": [ + "Subjects" + ], + "summary": "List User Role Assignments", + "description": "List the roles assigned to a user.", + "operationId": "listUserRoleAssignments", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "User identifier." + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/subjects/groups/{groupId}/roles/{roleId}": { + "post": { + "tags": [ + "Subjects" + ], + "summary": "Assign Role To Group", + "description": "Assign a role to a group.", + "operationId": "assignRoleToGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Group identifier." + }, + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Subjects" + ], + "summary": "Remove Role From Group", + "description": "Remove a role assignment from a group.", + "operationId": "removeRoleFromGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Group identifier." + }, + { + "name": "roleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Role identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/subjects/groups/{groupId}/roles": { + "get": { + "tags": [ + "Subjects" + ], + "summary": "List Group Role Assignments", + "description": "List the roles assigned to a group.", + "operationId": "listGroupRoleAssignments", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Group identifier." + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/roleAssignments": { + "get": { + "tags": [ + "RoleAssignments" + ], + "summary": "List All Role Assignments", + "description": "List every role assignment across users, groups, and roles.", + "operationId": "listRoleAssignments", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/domains": { + "post": { + "tags": [ + "Domains" + ], + "summary": "Create Domain", + "description": "Create a data domain used to organize data products.", + "operationId": "createDomain", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DomainPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Domain" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "Domains" + ], + "summary": "List Domains", + "description": "List all data domains.", + "operationId": "listDomains", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Domain" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/biac/domains/{domainId}": { + "get": { + "tags": [ + "Domains" + ], + "summary": "Get Domain", + "description": "Retrieve details for a data domain.", + "operationId": "getDomain", + "parameters": [ + { + "name": "domainId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Domain identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Domain" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "Domains" + ], + "summary": "Update Domain", + "description": "Update a data domain.", + "operationId": "updateDomain", + "parameters": [ + { + "name": "domainId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Domain identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DomainPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Domain" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Domains" + ], + "summary": "Delete Domain", + "description": "Delete a data domain.", + "operationId": "deleteDomain", + "parameters": [ + { + "name": "domainId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Domain identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts": { + "post": { + "tags": [ + "DataProducts" + ], + "summary": "Create Data Product", + "description": "Create a data product.", + "operationId": "createDataProduct", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProductPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProduct" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/search": { + "get": { + "tags": [ + "DataProducts" + ], + "summary": "Search Data Products", + "description": "Search/list data products.", + "operationId": "searchDataProducts", + "parameters": [ + { + "name": "query", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Free-text search query." + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataProduct" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/dataProducts/{id}": { + "get": { + "tags": [ + "DataProducts" + ], + "summary": "Get Data Product", + "description": "Retrieve details for a data product.", + "operationId": "getDataProduct", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProduct" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "DataProducts" + ], + "summary": "Update Data Product", + "description": "Update a data product.", + "operationId": "updateDataProduct", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProductPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataProduct" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/workflows/dataProducts/{id}": { + "delete": { + "tags": [ + "Workflows" + ], + "summary": "Delete Data Product", + "description": "Delete a data product.", + "operationId": "deleteDataProduct", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/workflows/dataProducts/{id}/publish": { + "post": { + "tags": [ + "Workflows" + ], + "summary": "Publish Data Product", + "description": "Publish a data product's views to its target catalog and schema.", + "operationId": "publishDataProduct", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Data product identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/tags": { + "get": { + "tags": [ + "Tags" + ], + "summary": "List Tags", + "description": "List all tags.", + "operationId": "listTags", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/tags/{tagId}": { + "put": { + "tags": [ + "Tags" + ], + "summary": "Update Tag", + "description": "Rename a tag.", + "operationId": "updateTag", + "parameters": [ + { + "name": "tagId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Tag" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "Tags" + ], + "summary": "Delete Tag", + "description": "Delete a tag.", + "operationId": "deleteTag", + "parameters": [ + { + "name": "tagId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/sqlJobs": { + "post": { + "tags": [ + "SqlJobs" + ], + "summary": "Create SQL Job", + "description": "Create a SQL job that runs one or more SQL statements on demand or on a schedule.", + "operationId": "createSqlJob", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlJobPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlJob" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "get": { + "tags": [ + "SqlJobs" + ], + "summary": "List SQL Jobs", + "description": "List all SQL jobs.", + "operationId": "listSqlJobs", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SqlJob" + } + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/sqlJobs/{jobId}": { + "get": { + "tags": [ + "SqlJobs" + ], + "summary": "Get SQL Job", + "description": "Retrieve details for a SQL job.", + "operationId": "getSqlJob", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "SQL job identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlJob" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "put": { + "tags": [ + "SqlJobs" + ], + "summary": "Update SQL Job", + "description": "Update a SQL job.", + "operationId": "updateSqlJob", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "SQL job identifier." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlJobPayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlJob" + } + } + } + }, + "default": { + "description": "Error response." + } + } + }, + "delete": { + "tags": [ + "SqlJobs" + ], + "summary": "Delete SQL Job", + "description": "Delete a SQL job.", + "operationId": "deleteSqlJob", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "SQL job identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/sqlJobs/{jobId}/execute": { + "post": { + "tags": [ + "SqlJobs" + ], + "summary": "Execute SQL Job", + "description": "Run a SQL job immediately, outside its schedule.", + "operationId": "executeSqlJob", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "SQL job identifier." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/maintenance/cluster/apply": { + "post": { + "tags": [ + "DataMaintenance" + ], + "summary": "Apply Cluster Maintenance", + "description": "Define or replace the cluster's maintenance windows.", + "operationId": "applyClusterMaintenance", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MaintenancePayload" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MaintenancePayload" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/maintenance/cluster": { + "get": { + "tags": [ + "DataMaintenance" + ], + "summary": "Get Cluster Maintenance", + "description": "Retrieve the cluster's configured maintenance windows.", + "operationId": "getClusterMaintenance", + "parameters": [ + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Opaque token for the next page of results." + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Maximum number of results to return." + }, + { + "name": "pageSort", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Field to sort results by." + } + ], + "responses": { + "200": { + "description": "Successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MaintenancePayload" + } + } + } + }, + "default": { + "description": "Error response." + } + } + } + }, + "/v1/maintenance": { + "delete": { + "tags": [ + "DataMaintenance" + ], + "summary": "Delete All Maintenance Data", + "description": "Delete all configured maintenance windows.", + "operationId": "deleteAllMaintenance", + "responses": { + "200": { + "description": "Successful response.", + "content": {} + }, + "default": { + "description": "Error response." + } + } + } + } + }, + "components": { + "securitySchemes": { + "BasicAuth": { + "type": "http", + "scheme": "basic" + } + }, + "schemas": { + "RolePayload": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Role name." + }, + "description": { + "type": "string", + "description": "Human-readable description of the role." + } + } + }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Role identifier." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "GrantPayload": { + "type": "object", + "required": [ + "roleId", + "privilege", + "entityId" + ], + "properties": { + "roleId": { + "type": "string", + "description": "Role receiving the privilege." + }, + "privilege": { + "type": "string", + "description": "Privilege being granted.", + "enum": [ + "SELECT", + "INSERT", + "UPDATE", + "DELETE", + "CREATE", + "DROP", + "ALTER", + "SHOW", + "REFRESH", + "EXECUTE", + "IMPERSONATE" + ] + }, + "entityId": { + "type": "string", + "description": "Identifier of the catalog/schema/table/column/role/function/procedure entity the privilege applies to." + }, + "entityKind": { + "type": "string", + "enum": [ + "CATALOG", + "SCHEMA", + "TABLE", + "COLUMN", + "BRANCH", + "ROLE", + "USER", + "FUNCTION", + "PROCEDURE" + ] + }, + "grantOption": { + "type": "boolean", + "description": "Whether the grantee can re-grant this privilege to others.", + "default": false + } + } + }, + "Grant": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "roleId": { + "type": "string" + }, + "privilege": { + "type": "string" + }, + "entityId": { + "type": "string" + }, + "entityKind": { + "type": "string" + }, + "grantOption": { + "type": "boolean" + } + } + }, + "LocationGrantPayload": { + "type": "object", + "required": [ + "roleId", + "locationPattern", + "privilege" + ], + "properties": { + "roleId": { + "type": "string", + "description": "Role receiving the location privilege." + }, + "locationPattern": { + "type": "string", + "description": "Storage location or glob pattern this grant applies to, e.g. s3://bucket/prefix/*." + }, + "privilege": { + "type": "string", + "enum": [ + "READ", + "WRITE" + ] + }, + "grantOption": { + "type": "boolean", + "default": false + } + } + }, + "LocationGrant": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "roleId": { + "type": "string" + }, + "locationPattern": { + "type": "string" + }, + "privilege": { + "type": "string" + }, + "grantOption": { + "type": "boolean" + } + } + }, + "DomainPayload": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Data domain name." + }, + "description": { + "type": "string" + } + } + }, + "Domain": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "DataProductView": { + "type": "object", + "required": [ + "name", + "definitionQuery" + ], + "properties": { + "name": { + "type": "string", + "description": "View name." + }, + "definitionQuery": { + "type": "string", + "description": "SQL SELECT statement backing the view." + }, + "description": { + "type": "string" + }, + "columns": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + } + } + } + } + }, + "DataProductPayload": { + "type": "object", + "required": [ + "name", + "catalogName", + "schemaName", + "domainId" + ], + "properties": { + "name": { + "type": "string" + }, + "catalogName": { + "type": "string", + "description": "Target catalog the data product's views are published into." + }, + "schemaName": { + "type": "string", + "description": "Target schema the data product's views are published into." + }, + "domainId": { + "type": "string", + "description": "Data domain the data product belongs to." + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataProductView" + } + } + } + }, + "DataProduct": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "DRAFT", + "PUBLISHED", + "PUBLISHING", + "ERROR" + ] + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataProductView" + } + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "updateDate": { + "type": "string", + "format": "date-time" + } + } + }, + "TagPayload": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + } + } + }, + "Tag": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "SqlJobSchedule": { + "type": "object", + "properties": { + "cron": { + "type": "string", + "description": "Cron expression controlling when the job runs." + }, + "timeZone": { + "type": "string" + } + } + }, + "SqlJobPayload": { + "type": "object", + "required": [ + "name", + "catalogName", + "schemaName", + "sqlStatements" + ], + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "sqlStatements": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more SQL statements executed in sequence when the job runs." + }, + "schedule": { + "$ref": "#/components/schemas/SqlJobSchedule" + }, + "owner": { + "type": "string" + } + } + }, + "SqlJob": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "sqlStatements": { + "type": "array", + "items": { + "type": "string" + } + }, + "schedule": { + "$ref": "#/components/schemas/SqlJobSchedule" + }, + "owner": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "MaintenanceWindow": { + "type": "object", + "required": [ + "name", + "cronSchedule", + "durationMinutes" + ], + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "cronSchedule": { + "type": "string", + "description": "Cron expression controlling when the maintenance window opens." + }, + "durationMinutes": { + "type": "integer", + "description": "Length of the maintenance window in minutes." + } + } + }, + "MaintenancePayload": { + "type": "object", + "required": [ + "maintenanceWindows" + ], + "properties": { + "maintenanceWindows": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MaintenanceWindow" + } + } + } + }, + "PageMetadata": { + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "pageSize": { + "type": "integer" + } + } + } + } + } +} diff --git a/Starburst/Enterprise/README.md b/Starburst/Enterprise/README.md new file mode 100644 index 0000000..9784df9 --- /dev/null +++ b/Starburst/Enterprise/README.md @@ -0,0 +1,120 @@ +# Enterprise + +Starburst Enterprise is a self-hosted, Trino-based analytics platform for querying and governing data across catalogs. Its management REST API is exposed directly by the coordinator at `https://:/api/v1/...`, with a full OpenAPI specification available on every instance at `/api/v1/openApi`. Authentication is HTTP Basic Auth (base64-encoded username/password) for password-based deployments. + +This project provides a Studio Project of workflows covering the REST API operations most useful for automation, plus OpenAPI specs for building your own automation via an Integration Model โ€” see **Studio Projects** and **OpenAPIs** below. + +## Table of Contents + +- [Enterprise](#enterprise) + - [Table of Contents](#table-of-contents) + - [Contents](#contents) + - [Requirements](#requirements) + - [Integration Configuration](#integration-configuration) + - [Connection Properties](#connection-properties) + - [OpenAPIs](#openapis) + - [`starburst_enterprise-latest.json`](#starburst_enterprise-latestjson) + - [`starburst_enterprise-482-e.2.json`](#starburst_enterprise-482-e2json) + - [Studio Projects](#studio-projects) + - [Starburst Enterprise Project](#starburst-enterprise-project) + - [Folder Structure](#folder-structure) + - [Dependencies](#dependencies) + +## Contents + +| Asset | Description | +|---|---| +| [OpenAPIs/](./OpenAPIs/) | Starburst Enterprise REST API OpenAPI specs โ€” curated `-latest` plus the full reconstructed spec | +| [Studio Projects/](./Studio%20Projects/) | Itential Platform project containing all 43 workflows in 9 folders | + +## Requirements + +| Requirement | Version | +|---|---| +| Itential Platform | P6+ | +| Starburst Enterprise | Any release exposing the `/api/v1` management REST API and `/api/v1/openApi` | +| `Starburst Enterprise:latest` Integration Model | Required to build automation against the OpenAPI specs | +| A Starburst Enterprise user or service account with a password | HTTP Basic Auth is only available for password-based deployments โ€” see **Integration Configuration** below | + +> **Note:** This project does not require Itential Gateway. All API calls are made directly from Itential Platform to the Starburst Enterprise coordinator. + +## Integration Configuration + +Import one of the OpenAPI specs from `OpenAPIs/` as an Integration Model in **Admin > Integrations**, then create an integration pointing at your Starburst Enterprise coordinator. + +### Connection Properties + +```json +{ + "server": { + "protocol": "https", + "host": "", + "port": "8443", + "base_path": "/api" + }, + "authentication": { + "BasicAuth": { + "username": "", + "password": "" + } + } +} +``` + +Starburst Enterprise accepts a static `Authorization: Basic` header built from a username and password. There's no login call or token refresh involved โ€” the credentials are sent as-is on every request. + +## OpenAPIs + +| Spec | Version | Operations | Description | +|---|---|---|---| +| [`starburst_enterprise-latest.json`](./OpenAPIs/starburst_enterprise-latest.json) | latest (curated) | 43 | Actively-maintained, trimmed to 43 of 91 upstream operations covering common CRUD for automation โ€” see breakdown below | +| [`starburst_enterprise-482-e.2.json`](./OpenAPIs/starburst_enterprise-482-e.2.json) | 482-e.2 | 91 | Full reconstructed spec across Built-in Access Control, Data Products, SQL Jobs, and Data Maintenance | + +### `starburst_enterprise-latest.json` + +Actively-maintained spec (`x-vendor-api-version: 482-e.2`). Trimmed to 43 of 91 upstream operations, covering common CRUD for automation. + +Resources included, by category: + +- **Roles**: Create/list/get/update/delete built-in access control roles +- **Grants**: Create/list/get/delete privilege grants on catalogs, schemas, tables, columns, and other entities +- **Location Grants**: Create/list/get/delete read/write grants scoped to a storage location pattern +- **Role Assignments**: Assign/remove roles to/from users and groups, list assignments for a user or group, list all assignments +- **Domains**: Create/list/get/update/delete data domains +- **Data Products**: Create/search/get/update/delete/publish data products +- **Tags**: List/update/delete tags +- **SQL Jobs**: Create/list/get/update/delete/execute ad hoc or scheduled SQL jobs +- **Data Maintenance**: Get/apply/delete cluster maintenance windows + +### `starburst_enterprise-482-e.2.json` + +Full reconstructed spec (91 operations) across Built-in Access Control (including column masks, row filters, audit logs, entity categories, and role-to-role nesting), Data Products (including clone/import/export, materialized views, sample queries, and per-product tag management), and SQL Jobs (including status/history). + +--- + +## Studio Projects + +### Starburst Enterprise Project + +Backed by the **`Starburst Enterprise:latest`** Integration Model (see [`starburst_enterprise-latest.json`](./OpenAPIs/starburst_enterprise-latest.json) above). The project contains **43 workflows** organized into **9 folders**, one atomic workflow per API operation. All workflows follow the naming convention ` ` (e.g. `List Roles`, `Create Grant`). + +#### Folder Structure + +| Folder | Workflows | Scope | +|---|---|---| +| Roles | List, Get, Create, Update, Delete | Role CRUD | +| Grants | List, Get, Create, Delete | Privilege grant management | +| Location Grants | List, Get, Create, Delete | Storage-location privilege grant management | +| Role Assignments | List All, List/Assign/Remove for User, List/Assign/Remove for Group | Role-to-subject assignment | +| Domains | List, Get, Create, Update, Delete | Data domain CRUD | +| Data Products | Search, Get, Create, Update, Publish, Delete | Data product lifecycle | +| Tags | List, Update, Delete | Tag management | +| SQL Jobs | List, Get, Create, Update, Delete, Execute | SQL job CRUD and execution | +| Data Maintenance | Get, Apply, Delete | Cluster maintenance window management | + +#### Dependencies + +| Dependency | Notes | +|---|---| +| `Starburst Enterprise:latest` Integration Model | Import from [`starburst_enterprise-latest.json`](./OpenAPIs/starburst_enterprise-latest.json) before importing the project | +| `Starburst` integration instance | Create in **Admin > Integrations** with the connection properties above. Workflows are wired to an integration instance named `Starburst` โ€” update the `adapter_id` value in each workflow task if yours is named differently | diff --git a/Starburst/Enterprise/Studio Projects/Starburst Enterprise.project.json b/Starburst/Enterprise/Studio Projects/Starburst Enterprise.project.json new file mode 100644 index 0000000..dcc84e5 --- /dev/null +++ b/Starburst/Enterprise/Studio Projects/Starburst Enterprise.project.json @@ -0,0 +1,6185 @@ +{ + "_id": "8482666c7eb257e48ef9e05a", + "name": "Starburst Enterprise", + "description": "Workflows covering Starburst Enterprise's built-in access control, data product, SQL job, and cluster maintenance REST API operations, organized by resource category.", + "components": [ + { + "iid": 0, + "type": "workflow", + "reference": "67b248bf-288e-53e4-a27b-cfee0992d3ca", + "folder": "/Roles", + "document": { + "name": "List Roles", + "description": "List Roles", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a10": { + "name": "listRoles", + "canvasName": "listRoles", + "summary": "List Roles", + "description": "List all built-in access control roles.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "pageToken": "$var.job.pageToken", + "pageSize": "$var.job.pageSize", + "pageSort": "$var.job.pageSort" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a10": { + "type": "standard", + "state": "success" + } + }, + "a10": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "pageToken": { + "type": "string", + "description": "Opaque token for the next page of results." + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of results to return." + }, + "pageSort": { + "type": "string", + "description": "Field to sort results by." + } + } + }, + "outputSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Role identifier." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "b53fe78e-1e13-5276-9210-73a9e8977d3c", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 1, + "type": "workflow", + "reference": "6328143e-3519-5a7b-8212-c4577b1b987a", + "folder": "/Roles", + "document": { + "name": "Get Role", + "description": "Get Role", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a11": { + "name": "getRole", + "canvasName": "getRole", + "summary": "Get Role", + "description": "Retrieve details for a role.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "roleId": "$var.job.roleId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a11": { + "type": "standard", + "state": "success" + } + }, + "a11": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "roleId": { + "type": "string", + "description": "Role identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Role identifier." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "f042e562-b9c3-5825-bafb-2da9c315eff0", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 2, + "type": "workflow", + "reference": "56cd3349-d6ac-5cb3-876b-9897cb30d2e0", + "folder": "/Roles", + "document": { + "name": "Create Role", + "description": "Create Role", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a12": { + "name": "createRole", + "canvasName": "createRole", + "summary": "Create Role", + "description": "Create a built-in access control role.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a12": { + "type": "standard", + "state": "success" + } + }, + "a12": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "body": { + "type": "object", + "description": "Request body for Create Role.", + "properties": { + "name": { + "type": "string", + "description": "Role name." + }, + "description": { + "type": "string", + "description": "Human-readable description of the role." + } + } + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Role identifier." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "ec430a08-fd49-5621-b101-13ac325681b3", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 3, + "type": "workflow", + "reference": "b3a279c0-7eb2-50f9-abb1-21d5960b8576", + "folder": "/Roles", + "document": { + "name": "Update Role", + "description": "Update Role", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a13": { + "name": "updateRole", + "canvasName": "updateRole", + "summary": "Update Role", + "description": "Update a role.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "roleId": "$var.job.roleId", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a13": { + "type": "standard", + "state": "success" + } + }, + "a13": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "roleId": { + "type": "string", + "description": "Role identifier." + }, + "body": { + "type": "object", + "description": "Request body for Update Role.", + "properties": { + "name": { + "type": "string", + "description": "Role name." + }, + "description": { + "type": "string", + "description": "Human-readable description of the role." + } + } + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Role identifier." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "ecbb5094-cb65-536c-89c5-a8fc8b62e00d", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 4, + "type": "workflow", + "reference": "9529f274-bce1-55e1-886e-a8876b16537b", + "folder": "/Roles", + "document": { + "name": "Delete Role", + "description": "Delete Role", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a14": { + "name": "deleteRole", + "canvasName": "deleteRole", + "summary": "Delete Role", + "description": "Delete a role.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "roleId": "$var.job.roleId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a14": { + "type": "standard", + "state": "success" + } + }, + "a14": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "roleId": { + "type": "string", + "description": "Role identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "e2b9f09a-6998-5381-9539-c08bab6b6230", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 5, + "type": "workflow", + "reference": "d2c0b3af-cb18-51de-bbc1-b2dd38058543", + "folder": "/Grants", + "document": { + "name": "List Grants", + "description": "List Grants", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a15": { + "name": "listGrants", + "canvasName": "listGrants", + "summary": "List Grants", + "description": "List all grants.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "pageToken": "$var.job.pageToken", + "pageSize": "$var.job.pageSize", + "pageSort": "$var.job.pageSort" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a15": { + "type": "standard", + "state": "success" + } + }, + "a15": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "pageToken": { + "type": "string", + "description": "Opaque token for the next page of results." + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of results to return." + }, + "pageSort": { + "type": "string", + "description": "Field to sort results by." + } + } + }, + "outputSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "roleId": { + "type": "string" + }, + "privilege": { + "type": "string" + }, + "entityId": { + "type": "string" + }, + "entityKind": { + "type": "string" + }, + "grantOption": { + "type": "boolean" + } + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "3910305d-e85d-55ee-bc8c-172158dd977b", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 6, + "type": "workflow", + "reference": "9e3f8cc4-be25-5a28-92c5-de85dd7aeee1", + "folder": "/Grants", + "document": { + "name": "Get Grant", + "description": "Get Grant", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a16": { + "name": "getGrant", + "canvasName": "getGrant", + "summary": "Get Grant", + "description": "Retrieve details for a grant.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "grantId": "$var.job.grantId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a16": { + "type": "standard", + "state": "success" + } + }, + "a16": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "grantId": { + "type": "string", + "description": "Grant identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "roleId": { + "type": "string" + }, + "privilege": { + "type": "string" + }, + "entityId": { + "type": "string" + }, + "entityKind": { + "type": "string" + }, + "grantOption": { + "type": "boolean" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "92db58a0-da7c-53c6-8a2e-d00260304564", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 7, + "type": "workflow", + "reference": "9f4e3a7f-34cf-5495-bf17-b2c81f4dd7b0", + "folder": "/Grants", + "document": { + "name": "Create Grant", + "description": "Create Grant", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a17": { + "name": "createGrant", + "canvasName": "createGrant", + "summary": "Create Grant", + "description": "Grant a privilege on an entity to a role.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a17": { + "type": "standard", + "state": "success" + } + }, + "a17": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "body": { + "type": "object", + "description": "Request body for Create Grant.", + "properties": { + "roleId": { + "type": "string", + "description": "Role receiving the privilege." + }, + "privilege": { + "type": "string", + "description": "Privilege being granted.", + "enum": [ + "SELECT", + "INSERT", + "UPDATE", + "DELETE", + "CREATE", + "DROP", + "ALTER", + "SHOW", + "REFRESH", + "EXECUTE", + "IMPERSONATE" + ] + }, + "entityId": { + "type": "string", + "description": "Identifier of the catalog/schema/table/column/role/function/procedure entity the privilege applies to." + }, + "entityKind": { + "type": "string", + "enum": [ + "CATALOG", + "SCHEMA", + "TABLE", + "COLUMN", + "BRANCH", + "ROLE", + "USER", + "FUNCTION", + "PROCEDURE" + ] + }, + "grantOption": { + "type": "boolean", + "description": "Whether the grantee can re-grant this privilege to others.", + "default": false + } + } + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "roleId": { + "type": "string" + }, + "privilege": { + "type": "string" + }, + "entityId": { + "type": "string" + }, + "entityKind": { + "type": "string" + }, + "grantOption": { + "type": "boolean" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "2ad938b5-b056-5789-94ce-eb188d8ac0a0", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 8, + "type": "workflow", + "reference": "9dedf861-3f46-5c07-a5da-a19bdd9b2863", + "folder": "/Grants", + "document": { + "name": "Delete Grant", + "description": "Delete Grant", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a18": { + "name": "deleteGrant", + "canvasName": "deleteGrant", + "summary": "Delete Grant", + "description": "Revoke a grant.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "grantId": "$var.job.grantId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a18": { + "type": "standard", + "state": "success" + } + }, + "a18": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "grantId": { + "type": "string", + "description": "Grant identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "ff6da77a-7eda-5845-800b-70da12c144f2", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 9, + "type": "workflow", + "reference": "177fbcb9-68c5-5971-a88a-0a863fe147d1", + "folder": "/Location Grants", + "document": { + "name": "List Location Grants", + "description": "List Location Grants", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a19": { + "name": "listLocationGrants", + "canvasName": "listLocationGrants", + "summary": "List Location Grants", + "description": "List all location grants.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "pageToken": "$var.job.pageToken", + "pageSize": "$var.job.pageSize", + "pageSort": "$var.job.pageSort" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a19": { + "type": "standard", + "state": "success" + } + }, + "a19": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "pageToken": { + "type": "string", + "description": "Opaque token for the next page of results." + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of results to return." + }, + "pageSort": { + "type": "string", + "description": "Field to sort results by." + } + } + }, + "outputSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "roleId": { + "type": "string" + }, + "locationPattern": { + "type": "string" + }, + "privilege": { + "type": "string" + }, + "grantOption": { + "type": "boolean" + } + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "17fe23f5-2079-57f4-8349-549024dff768", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 10, + "type": "workflow", + "reference": "ba4385ad-6019-5a92-953a-481ffb3bda0c", + "folder": "/Location Grants", + "document": { + "name": "Get Location Grant", + "description": "Get Location Grant", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a": { + "name": "getLocationGrant", + "canvasName": "getLocationGrant", + "summary": "Get Location Grant", + "description": "Retrieve details for a location grant.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "locationGrantId": "$var.job.locationGrantId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a": { + "type": "standard", + "state": "success" + } + }, + "a1a": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "locationGrantId": { + "type": "string", + "description": "Location grant identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "roleId": { + "type": "string" + }, + "locationPattern": { + "type": "string" + }, + "privilege": { + "type": "string" + }, + "grantOption": { + "type": "boolean" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "c3dd98b9-74a9-58ff-8623-a91ecd662f56", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 11, + "type": "workflow", + "reference": "179a3259-8a7e-5e5b-acfb-b5c719a14e30", + "folder": "/Location Grants", + "document": { + "name": "Create Location Grant", + "description": "Create Location Grant", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1b": { + "name": "createLocationGrant", + "canvasName": "createLocationGrant", + "summary": "Create Location Grant", + "description": "Grant read or write access to a storage location pattern.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1b": { + "type": "standard", + "state": "success" + } + }, + "a1b": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "body": { + "type": "object", + "description": "Request body for Create Location Grant.", + "properties": { + "roleId": { + "type": "string", + "description": "Role receiving the location privilege." + }, + "locationPattern": { + "type": "string", + "description": "Storage location or glob pattern this grant applies to, e.g. s3://bucket/prefix/*." + }, + "privilege": { + "type": "string", + "enum": [ + "READ", + "WRITE" + ] + }, + "grantOption": { + "type": "boolean", + "default": false + } + } + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "roleId": { + "type": "string" + }, + "locationPattern": { + "type": "string" + }, + "privilege": { + "type": "string" + }, + "grantOption": { + "type": "boolean" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "ece305ea-726f-5d95-986a-7155ec74db2d", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 12, + "type": "workflow", + "reference": "2ad89c81-805c-5128-88af-eec17940cf04", + "folder": "/Location Grants", + "document": { + "name": "Delete Location Grant", + "description": "Delete Location Grant", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1c": { + "name": "deleteLocationGrant", + "canvasName": "deleteLocationGrant", + "summary": "Delete Location Grant", + "description": "Revoke a location grant.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "locationGrantId": "$var.job.locationGrantId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1c": { + "type": "standard", + "state": "success" + } + }, + "a1c": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "locationGrantId": { + "type": "string", + "description": "Location grant identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "72ff5bad-0490-5083-ba74-21015ec8dcb8", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 13, + "type": "workflow", + "reference": "4cd443f5-f2f3-5643-8af7-f811efc0c701", + "folder": "/Role Assignments", + "document": { + "name": "List All Role Assignments", + "description": "List All Role Assignments", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1d": { + "name": "listRoleAssignments", + "canvasName": "listRoleAssignments", + "summary": "List All Role Assignments", + "description": "List every role assignment across users, groups, and roles.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "pageToken": "$var.job.pageToken", + "pageSize": "$var.job.pageSize", + "pageSort": "$var.job.pageSort" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1d": { + "type": "standard", + "state": "success" + } + }, + "a1d": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "pageToken": { + "type": "string", + "description": "Opaque token for the next page of results." + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of results to return." + }, + "pageSort": { + "type": "string", + "description": "Field to sort results by." + } + } + }, + "outputSchema": { + "type": "array", + "items": { + "type": "object" + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "2c4c59bd-9d11-5f21-acf8-bb37e182e8d8", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 14, + "type": "workflow", + "reference": "f0ec51c6-2fca-546c-ad7b-9ba9bdc8ec0e", + "folder": "/Role Assignments", + "document": { + "name": "List User Role Assignments", + "description": "List User Role Assignments", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1e": { + "name": "listUserRoleAssignments", + "canvasName": "listUserRoleAssignments", + "summary": "List User Role Assignments", + "description": "List the roles assigned to a user.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "userId": "$var.job.userId", + "pageToken": "$var.job.pageToken", + "pageSize": "$var.job.pageSize", + "pageSort": "$var.job.pageSort" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1e": { + "type": "standard", + "state": "success" + } + }, + "a1e": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User identifier." + }, + "pageToken": { + "type": "string", + "description": "Opaque token for the next page of results." + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of results to return." + }, + "pageSort": { + "type": "string", + "description": "Field to sort results by." + } + } + }, + "outputSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Role identifier." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "18aa6858-43ec-5911-a3d5-2bdf8f5efb57", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 15, + "type": "workflow", + "reference": "56eada4c-efb8-5fcd-a11b-c6a6d643564c", + "folder": "/Role Assignments", + "document": { + "name": "Assign Role To User", + "description": "Assign Role To User", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1f": { + "name": "assignRoleToUser", + "canvasName": "assignRoleToUser", + "summary": "Assign Role To User", + "description": "Assign a role to a user.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "userId": "$var.job.userId", + "roleId": "$var.job.roleId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1f": { + "type": "standard", + "state": "success" + } + }, + "a1f": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User identifier." + }, + "roleId": { + "type": "string", + "description": "Role identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "85c420ce-f4af-5326-a178-337498f54ccf", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 16, + "type": "workflow", + "reference": "1bc1fb85-32d5-5657-918c-8f02d68fb2d8", + "folder": "/Role Assignments", + "document": { + "name": "Remove Role From User", + "description": "Remove Role From User", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a110": { + "name": "removeRoleFromUser", + "canvasName": "removeRoleFromUser", + "summary": "Remove Role From User", + "description": "Remove a role assignment from a user.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "userId": "$var.job.userId", + "roleId": "$var.job.roleId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a110": { + "type": "standard", + "state": "success" + } + }, + "a110": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User identifier." + }, + "roleId": { + "type": "string", + "description": "Role identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "fc08192c-708f-5163-8a82-43cab8e751a3", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 17, + "type": "workflow", + "reference": "0a146e35-38ee-5805-a7a4-315d0d110d8a", + "folder": "/Role Assignments", + "document": { + "name": "List Group Role Assignments", + "description": "List Group Role Assignments", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a111": { + "name": "listGroupRoleAssignments", + "canvasName": "listGroupRoleAssignments", + "summary": "List Group Role Assignments", + "description": "List the roles assigned to a group.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "groupId": "$var.job.groupId", + "pageToken": "$var.job.pageToken", + "pageSize": "$var.job.pageSize", + "pageSort": "$var.job.pageSort" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a111": { + "type": "standard", + "state": "success" + } + }, + "a111": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "description": "Group identifier." + }, + "pageToken": { + "type": "string", + "description": "Opaque token for the next page of results." + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of results to return." + }, + "pageSort": { + "type": "string", + "description": "Field to sort results by." + } + } + }, + "outputSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Role identifier." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "faeace79-dde3-5c8e-a101-5eaedcbb1ff6", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 18, + "type": "workflow", + "reference": "6406e889-dc50-57ec-8407-afa8ff1edc97", + "folder": "/Role Assignments", + "document": { + "name": "Assign Role To Group", + "description": "Assign Role To Group", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a112": { + "name": "assignRoleToGroup", + "canvasName": "assignRoleToGroup", + "summary": "Assign Role To Group", + "description": "Assign a role to a group.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "groupId": "$var.job.groupId", + "roleId": "$var.job.roleId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a112": { + "type": "standard", + "state": "success" + } + }, + "a112": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "description": "Group identifier." + }, + "roleId": { + "type": "string", + "description": "Role identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "90b00057-d73c-5e23-972a-9de08e986442", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 19, + "type": "workflow", + "reference": "467fc8fa-ea9e-54a4-a2b2-462bc0808885", + "folder": "/Role Assignments", + "document": { + "name": "Remove Role From Group", + "description": "Remove Role From Group", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a113": { + "name": "removeRoleFromGroup", + "canvasName": "removeRoleFromGroup", + "summary": "Remove Role From Group", + "description": "Remove a role assignment from a group.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "groupId": "$var.job.groupId", + "roleId": "$var.job.roleId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a113": { + "type": "standard", + "state": "success" + } + }, + "a113": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "description": "Group identifier." + }, + "roleId": { + "type": "string", + "description": "Role identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "7c8a181d-80e5-5a4f-9306-db1eb2844fe3", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 20, + "type": "workflow", + "reference": "a863bad6-c501-5633-af9d-42947ef58290", + "folder": "/Domains", + "document": { + "name": "List Domains", + "description": "List Domains", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a114": { + "name": "listDomains", + "canvasName": "listDomains", + "summary": "List Domains", + "description": "List all data domains.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "pageToken": "$var.job.pageToken", + "pageSize": "$var.job.pageSize", + "pageSort": "$var.job.pageSort" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a114": { + "type": "standard", + "state": "success" + } + }, + "a114": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "pageToken": { + "type": "string", + "description": "Opaque token for the next page of results." + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of results to return." + }, + "pageSort": { + "type": "string", + "description": "Field to sort results by." + } + } + }, + "outputSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "cdf79128-9d6a-518e-b97d-639f36728891", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 21, + "type": "workflow", + "reference": "1dcceac0-d23c-5d67-b543-7b97a4e5b662", + "folder": "/Domains", + "document": { + "name": "Get Domain", + "description": "Get Domain", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a115": { + "name": "getDomain", + "canvasName": "getDomain", + "summary": "Get Domain", + "description": "Retrieve details for a data domain.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "domainId": "$var.job.domainId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a115": { + "type": "standard", + "state": "success" + } + }, + "a115": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "domainId": { + "type": "string", + "description": "Domain identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "d7a96578-2fcb-58b0-ab0f-8d8141ab113a", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 22, + "type": "workflow", + "reference": "63e4af1f-cf02-553f-886f-c1846ecefdd5", + "folder": "/Domains", + "document": { + "name": "Create Domain", + "description": "Create Domain", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a116": { + "name": "createDomain", + "canvasName": "createDomain", + "summary": "Create Domain", + "description": "Create a data domain used to organize data products.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a116": { + "type": "standard", + "state": "success" + } + }, + "a116": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "body": { + "type": "object", + "description": "Request body for Create Domain.", + "properties": { + "name": { + "type": "string", + "description": "Data domain name." + }, + "description": { + "type": "string" + } + } + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "919a4b63-1186-5da4-a704-f61c49a37850", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 23, + "type": "workflow", + "reference": "b0f98646-71a3-5c01-a17e-c66239b724a9", + "folder": "/Domains", + "document": { + "name": "Update Domain", + "description": "Update Domain", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a117": { + "name": "updateDomain", + "canvasName": "updateDomain", + "summary": "Update Domain", + "description": "Update a data domain.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "domainId": "$var.job.domainId", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a117": { + "type": "standard", + "state": "success" + } + }, + "a117": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "domainId": { + "type": "string", + "description": "Domain identifier." + }, + "body": { + "type": "object", + "description": "Request body for Update Domain.", + "properties": { + "name": { + "type": "string", + "description": "Data domain name." + }, + "description": { + "type": "string" + } + } + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "731be029-3a91-57ee-a549-6c8bbec2b39c", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 24, + "type": "workflow", + "reference": "97bca061-a309-533d-8e8b-d2d4b2048a95", + "folder": "/Domains", + "document": { + "name": "Delete Domain", + "description": "Delete Domain", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a118": { + "name": "deleteDomain", + "canvasName": "deleteDomain", + "summary": "Delete Domain", + "description": "Delete a data domain.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "domainId": "$var.job.domainId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a118": { + "type": "standard", + "state": "success" + } + }, + "a118": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "domainId": { + "type": "string", + "description": "Domain identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "bb20b7b9-5e3f-5073-a30c-a37355f1526b", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 25, + "type": "workflow", + "reference": "d841d9cc-3544-5b97-aef7-b8ad03af4a89", + "folder": "/Data Products", + "document": { + "name": "Search Data Products", + "description": "Search Data Products", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a119": { + "name": "searchDataProducts", + "canvasName": "searchDataProducts", + "summary": "Search Data Products", + "description": "Search/list data products.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "query": "$var.job.query", + "pageToken": "$var.job.pageToken", + "pageSize": "$var.job.pageSize", + "pageSort": "$var.job.pageSort" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a119": { + "type": "standard", + "state": "success" + } + }, + "a119": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "Free-text search query." + }, + "pageToken": { + "type": "string", + "description": "Opaque token for the next page of results." + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of results to return." + }, + "pageSort": { + "type": "string", + "description": "Field to sort results by." + } + } + }, + "outputSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "DRAFT", + "PUBLISHED", + "PUBLISHING", + "ERROR" + ] + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataProductView" + } + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "updateDate": { + "type": "string", + "format": "date-time" + } + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "3a7fb79d-45a6-5655-bff1-5f6450104782", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 26, + "type": "workflow", + "reference": "0f2ad396-cf43-5035-a3cc-2907c201ae74", + "folder": "/Data Products", + "document": { + "name": "Get Data Product", + "description": "Get Data Product", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a11a": { + "name": "getDataProduct", + "canvasName": "getDataProduct", + "summary": "Get Data Product", + "description": "Retrieve details for a data product.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "id": "$var.job.id" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a11a": { + "type": "standard", + "state": "success" + } + }, + "a11a": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Data product identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "DRAFT", + "PUBLISHED", + "PUBLISHING", + "ERROR" + ] + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataProductView" + } + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "updateDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "f838d58f-c02b-566b-919c-14898075c9f7", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 27, + "type": "workflow", + "reference": "2ecdcbad-3a55-536f-8930-71d70cd01548", + "folder": "/Data Products", + "document": { + "name": "Create Data Product", + "description": "Create Data Product", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a11b": { + "name": "createDataProduct", + "canvasName": "createDataProduct", + "summary": "Create Data Product", + "description": "Create a data product.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a11b": { + "type": "standard", + "state": "success" + } + }, + "a11b": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "body": { + "type": "object", + "description": "Request body for Create Data Product.", + "properties": { + "name": { + "type": "string" + }, + "catalogName": { + "type": "string", + "description": "Target catalog the data product's views are published into." + }, + "schemaName": { + "type": "string", + "description": "Target schema the data product's views are published into." + }, + "domainId": { + "type": "string", + "description": "Data domain the data product belongs to." + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "views": { + "type": "array", + "items": { + "type": "object", + "required": [ + "name", + "definitionQuery" + ], + "properties": { + "name": { + "type": "string", + "description": "View name." + }, + "definitionQuery": { + "type": "string", + "description": "SQL SELECT statement backing the view." + }, + "description": { + "type": "string" + }, + "columns": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "DRAFT", + "PUBLISHED", + "PUBLISHING", + "ERROR" + ] + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataProductView" + } + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "updateDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "8c692711-7235-501d-bf80-5fff55527d44", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 28, + "type": "workflow", + "reference": "86398571-b1a6-5c3f-9935-d49c50a886c4", + "folder": "/Data Products", + "document": { + "name": "Update Data Product", + "description": "Update Data Product", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a11c": { + "name": "updateDataProduct", + "canvasName": "updateDataProduct", + "summary": "Update Data Product", + "description": "Update a data product.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "id": "$var.job.id", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a11c": { + "type": "standard", + "state": "success" + } + }, + "a11c": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Data product identifier." + }, + "body": { + "type": "object", + "description": "Request body for Update Data Product.", + "properties": { + "name": { + "type": "string" + }, + "catalogName": { + "type": "string", + "description": "Target catalog the data product's views are published into." + }, + "schemaName": { + "type": "string", + "description": "Target schema the data product's views are published into." + }, + "domainId": { + "type": "string", + "description": "Data domain the data product belongs to." + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "views": { + "type": "array", + "items": { + "type": "object", + "required": [ + "name", + "definitionQuery" + ], + "properties": { + "name": { + "type": "string", + "description": "View name." + }, + "definitionQuery": { + "type": "string", + "description": "SQL SELECT statement backing the view." + }, + "description": { + "type": "string" + }, + "columns": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "DRAFT", + "PUBLISHED", + "PUBLISHING", + "ERROR" + ] + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataProductView" + } + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "updateDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "1f4c431a-82d9-551a-9e49-494879e00c72", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 29, + "type": "workflow", + "reference": "e2bdf115-cb9b-5cf6-910d-ada628d5cf7d", + "folder": "/Data Products", + "document": { + "name": "Publish Data Product", + "description": "Publish Data Product", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a11d": { + "name": "publishDataProduct", + "canvasName": "publishDataProduct", + "summary": "Publish Data Product", + "description": "Publish a data product's views to its target catalog and schema.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "id": "$var.job.id" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a11d": { + "type": "standard", + "state": "success" + } + }, + "a11d": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Data product identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "7ed890d0-ad98-5c52-abd3-144785f86b32", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 30, + "type": "workflow", + "reference": "dba300f3-15bb-5234-a8b0-e41dc2b33a63", + "folder": "/Data Products", + "document": { + "name": "Delete Data Product", + "description": "Delete Data Product", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a11e": { + "name": "deleteDataProduct", + "canvasName": "deleteDataProduct", + "summary": "Delete Data Product", + "description": "Delete a data product.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "id": "$var.job.id" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a11e": { + "type": "standard", + "state": "success" + } + }, + "a11e": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Data product identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "41e7ad4f-e23d-5635-816a-d65f0ce3c89f", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 31, + "type": "workflow", + "reference": "e5b89a1f-e14a-5b16-9708-ef8aedb24f3e", + "folder": "/Tags", + "document": { + "name": "List Tags", + "description": "List Tags", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a11f": { + "name": "listTags", + "canvasName": "listTags", + "summary": "List Tags", + "description": "List all tags.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "pageToken": "$var.job.pageToken", + "pageSize": "$var.job.pageSize", + "pageSort": "$var.job.pageSort" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a11f": { + "type": "standard", + "state": "success" + } + }, + "a11f": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "pageToken": { + "type": "string", + "description": "Opaque token for the next page of results." + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of results to return." + }, + "pageSort": { + "type": "string", + "description": "Field to sort results by." + } + } + }, + "outputSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "252661c5-a705-580e-8a50-4ec7c8bff48c", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 32, + "type": "workflow", + "reference": "06b3e5a6-8116-590f-8826-6ff2fbb414b0", + "folder": "/Tags", + "document": { + "name": "Update Tag", + "description": "Update Tag", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a120": { + "name": "updateTag", + "canvasName": "updateTag", + "summary": "Update Tag", + "description": "Rename a tag.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "tagId": "$var.job.tagId", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a120": { + "type": "standard", + "state": "success" + } + }, + "a120": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "tagId": { + "type": "string", + "description": "Tag identifier." + }, + "body": { + "type": "object", + "description": "Request body for Update Tag.", + "properties": { + "name": { + "type": "string" + } + } + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "bfaf04d3-49fe-5fd1-9829-359eef8689fc", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 33, + "type": "workflow", + "reference": "bb34fcba-fe69-5eda-9dae-4a028ca8a45b", + "folder": "/Tags", + "document": { + "name": "Delete Tag", + "description": "Delete Tag", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a121": { + "name": "deleteTag", + "canvasName": "deleteTag", + "summary": "Delete Tag", + "description": "Delete a tag.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "tagId": "$var.job.tagId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a121": { + "type": "standard", + "state": "success" + } + }, + "a121": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "tagId": { + "type": "string", + "description": "Tag identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "ab9b7a14-955a-5f26-b37e-906a6bf4df2d", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 34, + "type": "workflow", + "reference": "069836a4-ba55-528a-a108-30f4e0b04289", + "folder": "/SQL Jobs", + "document": { + "name": "List SQL Jobs", + "description": "List SQL Jobs", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a122": { + "name": "listSqlJobs", + "canvasName": "listSqlJobs", + "summary": "List SQL Jobs", + "description": "List all SQL jobs.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "pageToken": "$var.job.pageToken", + "pageSize": "$var.job.pageSize", + "pageSort": "$var.job.pageSort" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a122": { + "type": "standard", + "state": "success" + } + }, + "a122": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "pageToken": { + "type": "string", + "description": "Opaque token for the next page of results." + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of results to return." + }, + "pageSort": { + "type": "string", + "description": "Field to sort results by." + } + } + }, + "outputSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "sqlStatements": { + "type": "array", + "items": { + "type": "string" + } + }, + "schedule": { + "$ref": "#/components/schemas/SqlJobSchedule" + }, + "owner": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "1060643d-8a40-50f0-9853-d8b853e127f3", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 35, + "type": "workflow", + "reference": "16adf2c3-5c40-548e-b988-f74ef6d0786f", + "folder": "/SQL Jobs", + "document": { + "name": "Get SQL Job", + "description": "Get SQL Job", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a123": { + "name": "getSqlJob", + "canvasName": "getSqlJob", + "summary": "Get SQL Job", + "description": "Retrieve details for a SQL job.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "jobId": "$var.job.jobId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a123": { + "type": "standard", + "state": "success" + } + }, + "a123": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "jobId": { + "type": "string", + "description": "SQL job identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "sqlStatements": { + "type": "array", + "items": { + "type": "string" + } + }, + "schedule": { + "$ref": "#/components/schemas/SqlJobSchedule" + }, + "owner": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "26a062df-77a3-5e6a-94c4-08c418b08101", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 36, + "type": "workflow", + "reference": "4e5d9242-312f-592e-bd0c-d7fe00bcd7d0", + "folder": "/SQL Jobs", + "document": { + "name": "Create SQL Job", + "description": "Create SQL Job", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a124": { + "name": "createSqlJob", + "canvasName": "createSqlJob", + "summary": "Create SQL Job", + "description": "Create a SQL job that runs one or more SQL statements on demand or on a schedule.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a124": { + "type": "standard", + "state": "success" + } + }, + "a124": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "body": { + "type": "object", + "description": "Request body for Create SQL Job.", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "sqlStatements": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more SQL statements executed in sequence when the job runs." + }, + "schedule": { + "type": "object", + "properties": { + "cron": { + "type": "string", + "description": "Cron expression controlling when the job runs." + }, + "timeZone": { + "type": "string" + } + } + }, + "owner": { + "type": "string" + } + } + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "sqlStatements": { + "type": "array", + "items": { + "type": "string" + } + }, + "schedule": { + "$ref": "#/components/schemas/SqlJobSchedule" + }, + "owner": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "76277db8-501e-5a50-8012-ac4d8b6f7871", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 37, + "type": "workflow", + "reference": "00ac2fc6-aa1a-589b-8471-b4eb69bb2ef1", + "folder": "/SQL Jobs", + "document": { + "name": "Update SQL Job", + "description": "Update SQL Job", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a125": { + "name": "updateSqlJob", + "canvasName": "updateSqlJob", + "summary": "Update SQL Job", + "description": "Update a SQL job.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "jobId": "$var.job.jobId", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a125": { + "type": "standard", + "state": "success" + } + }, + "a125": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "jobId": { + "type": "string", + "description": "SQL job identifier." + }, + "body": { + "type": "object", + "description": "Request body for Update SQL Job.", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "sqlStatements": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more SQL statements executed in sequence when the job runs." + }, + "schedule": { + "type": "object", + "properties": { + "cron": { + "type": "string", + "description": "Cron expression controlling when the job runs." + }, + "timeZone": { + "type": "string" + } + } + }, + "owner": { + "type": "string" + } + } + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "catalogName": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "sqlStatements": { + "type": "array", + "items": { + "type": "string" + } + }, + "schedule": { + "$ref": "#/components/schemas/SqlJobSchedule" + }, + "owner": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "createDate": { + "type": "string", + "format": "date-time" + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "834eac0f-a230-56d2-988b-b73642e32a15", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 38, + "type": "workflow", + "reference": "6f73bcdb-06c4-5b0e-86fd-d59ea0688143", + "folder": "/SQL Jobs", + "document": { + "name": "Delete SQL Job", + "description": "Delete SQL Job", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a126": { + "name": "deleteSqlJob", + "canvasName": "deleteSqlJob", + "summary": "Delete SQL Job", + "description": "Delete a SQL job.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "jobId": "$var.job.jobId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a126": { + "type": "standard", + "state": "success" + } + }, + "a126": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "jobId": { + "type": "string", + "description": "SQL job identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "25061305-c73e-5508-8e99-f32a5dbbebca", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 39, + "type": "workflow", + "reference": "423ae2b3-1efd-5480-b878-ef8334f503a4", + "folder": "/SQL Jobs", + "document": { + "name": "Execute SQL Job", + "description": "Execute SQL Job", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a127": { + "name": "executeSqlJob", + "canvasName": "executeSqlJob", + "summary": "Execute SQL Job", + "description": "Run a SQL job immediately, outside its schedule.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "jobId": "$var.job.jobId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a127": { + "type": "standard", + "state": "success" + } + }, + "a127": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "jobId": { + "type": "string", + "description": "SQL job identifier." + } + } + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "5132c66a-1ff0-538f-8c43-8addddae60c1", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 40, + "type": "workflow", + "reference": "a1c2efbe-d143-5349-b95f-91e7115fc50e", + "folder": "/Data Maintenance", + "document": { + "name": "Get Cluster Maintenance", + "description": "Get Cluster Maintenance", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a128": { + "name": "getClusterMaintenance", + "canvasName": "getClusterMaintenance", + "summary": "Get Cluster Maintenance", + "description": "Retrieve the cluster's configured maintenance windows.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "pageToken": "$var.job.pageToken", + "pageSize": "$var.job.pageSize", + "pageSort": "$var.job.pageSort" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a128": { + "type": "standard", + "state": "success" + } + }, + "a128": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "pageToken": { + "type": "string", + "description": "Opaque token for the next page of results." + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of results to return." + }, + "pageSort": { + "type": "string", + "description": "Field to sort results by." + } + } + }, + "outputSchema": { + "type": "object", + "required": [ + "maintenanceWindows" + ], + "properties": { + "maintenanceWindows": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MaintenanceWindow" + } + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "370e499b-93fb-540f-b6b1-1a93e5899f53", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 41, + "type": "workflow", + "reference": "30a58a72-e4de-5249-9c6e-3de20025c0cb", + "folder": "/Data Maintenance", + "document": { + "name": "Apply Cluster Maintenance", + "description": "Apply Cluster Maintenance", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a129": { + "name": "applyClusterMaintenance", + "canvasName": "applyClusterMaintenance", + "summary": "Apply Cluster Maintenance", + "description": "Define or replace the cluster's maintenance windows.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.body" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a129": { + "type": "standard", + "state": "success" + } + }, + "a129": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "body": { + "type": "object", + "description": "Request body for Apply Cluster Maintenance.", + "properties": { + "maintenanceWindows": { + "type": "array", + "items": { + "type": "object", + "required": [ + "name", + "cronSchedule", + "durationMinutes" + ], + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "cronSchedule": { + "type": "string", + "description": "Cron expression controlling when the maintenance window opens." + }, + "durationMinutes": { + "type": "integer", + "description": "Length of the maintenance window in minutes." + } + } + } + } + } + } + } + }, + "outputSchema": { + "type": "object", + "required": [ + "maintenanceWindows" + ], + "properties": { + "maintenanceWindows": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MaintenanceWindow" + } + } + } + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "192943d6-bebf-5bbb-a3b0-0f5d19f2618c", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 42, + "type": "workflow", + "reference": "847ee19b-9dc6-56dd-aa53-4cc3a5bb487b", + "folder": "/Data Maintenance", + "document": { + "name": "Delete All Maintenance Data", + "description": "Delete All Maintenance Data", + "type": "automation", + "canvasVersion": 3, + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a12a": { + "name": "deleteAllMaintenance", + "canvasName": "deleteAllMaintenance", + "summary": "Delete All Maintenance Data", + "description": "Delete all configured maintenance windows.", + "location": "Adapter", + "locationType": "Starburst Enterprise:latest", + "app": "Starburst Enterprise:latest", + "type": "automatic", + "displayName": "Starburst", + "variables": { + "incoming": { + "adapter_id": "Starburst" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a12a": { + "type": "standard", + "state": "success" + } + }, + "a12a": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": {} + }, + "outputSchema": { + "type": "object", + "properties": {} + }, + "last_updated": "2026-09-23T12:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "5.55.5", + "uuid": "2822b448-9b50-5a21-88fc-c3fd1e4ad223", + "created": "2026-09-23T12:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "tags": [], + "groups": [], + "migrationVersion": 8 + } + } + ], + "folders": [ + { + "nodeType": "folder", + "name": "Roles", + "children": [ + { + "nodeType": "component", + "iid": 0 + }, + { + "nodeType": "component", + "iid": 1 + }, + { + "nodeType": "component", + "iid": 2 + }, + { + "nodeType": "component", + "iid": 3 + }, + { + "nodeType": "component", + "iid": 4 + } + ] + }, + { + "nodeType": "folder", + "name": "Grants", + "children": [ + { + "nodeType": "component", + "iid": 5 + }, + { + "nodeType": "component", + "iid": 6 + }, + { + "nodeType": "component", + "iid": 7 + }, + { + "nodeType": "component", + "iid": 8 + } + ] + }, + { + "nodeType": "folder", + "name": "Location Grants", + "children": [ + { + "nodeType": "component", + "iid": 9 + }, + { + "nodeType": "component", + "iid": 10 + }, + { + "nodeType": "component", + "iid": 11 + }, + { + "nodeType": "component", + "iid": 12 + } + ] + }, + { + "nodeType": "folder", + "name": "Role Assignments", + "children": [ + { + "nodeType": "component", + "iid": 13 + }, + { + "nodeType": "component", + "iid": 14 + }, + { + "nodeType": "component", + "iid": 15 + }, + { + "nodeType": "component", + "iid": 16 + }, + { + "nodeType": "component", + "iid": 17 + }, + { + "nodeType": "component", + "iid": 18 + }, + { + "nodeType": "component", + "iid": 19 + } + ] + }, + { + "nodeType": "folder", + "name": "Domains", + "children": [ + { + "nodeType": "component", + "iid": 20 + }, + { + "nodeType": "component", + "iid": 21 + }, + { + "nodeType": "component", + "iid": 22 + }, + { + "nodeType": "component", + "iid": 23 + }, + { + "nodeType": "component", + "iid": 24 + } + ] + }, + { + "nodeType": "folder", + "name": "Data Products", + "children": [ + { + "nodeType": "component", + "iid": 25 + }, + { + "nodeType": "component", + "iid": 26 + }, + { + "nodeType": "component", + "iid": 27 + }, + { + "nodeType": "component", + "iid": 28 + }, + { + "nodeType": "component", + "iid": 29 + }, + { + "nodeType": "component", + "iid": 30 + } + ] + }, + { + "nodeType": "folder", + "name": "Tags", + "children": [ + { + "nodeType": "component", + "iid": 31 + }, + { + "nodeType": "component", + "iid": 32 + }, + { + "nodeType": "component", + "iid": 33 + } + ] + }, + { + "nodeType": "folder", + "name": "SQL Jobs", + "children": [ + { + "nodeType": "component", + "iid": 34 + }, + { + "nodeType": "component", + "iid": 35 + }, + { + "nodeType": "component", + "iid": 36 + }, + { + "nodeType": "component", + "iid": 37 + }, + { + "nodeType": "component", + "iid": 38 + }, + { + "nodeType": "component", + "iid": 39 + } + ] + }, + { + "nodeType": "folder", + "name": "Data Maintenance", + "children": [ + { + "nodeType": "component", + "iid": 40 + }, + { + "nodeType": "component", + "iid": 41 + }, + { + "nodeType": "component", + "iid": 42 + } + ] + } + ], + "createdBy": { + "_id": "699f3e2b85569c9f5d8e1f39", + "provenance": "LDAP", + "username": "admin@itential" + }, + "lastUpdatedBy": { + "_id": "699f3e2b85569c9f5d8e1f39", + "provenance": "LDAP", + "username": "admin@itential" + }, + "created": "2026-09-23T12:00:00.000Z", + "lastUpdated": "2026-09-23T12:00:00.000Z", + "iid": 43, + "backgroundColor": "#1E88E5", + "referencedComponentHashes": [], + "thumbnail": "" +}