import json
import os
from parable_types_web_api import ApproveTenantProviderPoolRebuildInput
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
auth_token=os.environ["PARABLE_API_TOKEN"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
input_data = ApproveTenantProviderPoolRebuildInput.model_validate(
json.loads("{\"classificationHash\":\"example\"}"),
)
result = sdk.tenant_connector_taps.approve_tenant_provider_pool_rebuild('example', input_data)sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
Auth: &webapisdk.AuthConfig{Token: os.Getenv("PARABLE_API_TOKEN")},
RequestInterceptor: func(ctx context.Context, req *http.Request) error {
req.Header.Set("X-Tenant", os.Getenv("PARABLE_WORKSPACE"))
return nil
},
})
if err != nil {
return err
}
var input webapitypes.ApproveTenantProviderPoolRebuildInput
if err := json.Unmarshal([]byte(`{"classificationHash":"example"}`), &input); err != nil {
return err
}
result, err := sdk.TenantConnectorTapsNamespace.ApproveTenantProviderPoolRebuild(ctx, "example", input){
"data": {
"classification": {
"classificationHash": "<string>",
"identityImpact": "IDENTITY_UNCHANGED",
"proposedPlanHash": "<string>",
"rebuildTableIds": [
"<string>"
],
"requiresRebuild": true,
"servedPlanHash": "<string>",
"tables": [
{
"cascaded": true,
"changes": [
{
"reason": "ACCESS_CHANGED",
"column": "<string>"
}
],
"kind": "main",
"tableClass": "NONE",
"tableId": "<string>",
"proposedPhysicalName": "<string>",
"servedPhysicalName": "<string>"
}
]
},
"classificationHash": "<string>",
"connectorId": "<string>",
"effectiveTapId": "<string>",
"fromLayoutId": "<string>",
"id": "<string>",
"identityImpact": "IDENTITY_UNCHANGED",
"reasons": [
"CONNECTOR_TAP_CHANGED"
],
"rebuildTableIds": [
"<string>"
],
"requestedAt": "2023-11-07T05:31:56Z",
"requestedBy": "<string>",
"stale": true,
"state": "PENDING_APPROVAL",
"tapName": "<string>",
"targetLayoutId": "<string>",
"tenantConnectorId": "<string>",
"tenantConnectorTapId": "<string>",
"abortedAt": "2023-11-07T05:31:56Z",
"abortedReason": "<string>",
"approvedAt": "2023-11-07T05:31:56Z",
"approvedBy": "<string>",
"declinedAt": "2023-11-07T05:31:56Z",
"declinedBy": "<string>",
"declinedReason": "<string>",
"failedAt": "2023-11-07T05:31:56Z",
"identityAccountsRekeyed": 0,
"notBefore": "2023-11-07T05:31:56Z",
"readyAt": "2023-11-07T05:31:56Z",
"staleAt": "2023-11-07T05:31:56Z",
"startedAt": "2023-11-07T05:31:56Z",
"supersededById": "<string>",
"swappedAt": "2023-11-07T05:31:56Z"
},
"meta": {
"requestId": "<string>",
"totalCount": 123
},
"links": {
"first": "<string>",
"last": "<string>",
"next": "<string>",
"prev": "<string>"
}
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Approve a Provider Pool rebuild
Approves a pending rebuild of a Tap’s stored tables. The request carries the classification hash you were shown, so a rebuild that changed since you read it is refused. With notBefore, the rebuild waits until that time.
import json
import os
from parable_types_web_api import ApproveTenantProviderPoolRebuildInput
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
auth_token=os.environ["PARABLE_API_TOKEN"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
input_data = ApproveTenantProviderPoolRebuildInput.model_validate(
json.loads("{\"classificationHash\":\"example\"}"),
)
result = sdk.tenant_connector_taps.approve_tenant_provider_pool_rebuild('example', input_data)sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
Auth: &webapisdk.AuthConfig{Token: os.Getenv("PARABLE_API_TOKEN")},
RequestInterceptor: func(ctx context.Context, req *http.Request) error {
req.Header.Set("X-Tenant", os.Getenv("PARABLE_WORKSPACE"))
return nil
},
})
if err != nil {
return err
}
var input webapitypes.ApproveTenantProviderPoolRebuildInput
if err := json.Unmarshal([]byte(`{"classificationHash":"example"}`), &input); err != nil {
return err
}
result, err := sdk.TenantConnectorTapsNamespace.ApproveTenantProviderPoolRebuild(ctx, "example", input){
"data": {
"classification": {
"classificationHash": "<string>",
"identityImpact": "IDENTITY_UNCHANGED",
"proposedPlanHash": "<string>",
"rebuildTableIds": [
"<string>"
],
"requiresRebuild": true,
"servedPlanHash": "<string>",
"tables": [
{
"cascaded": true,
"changes": [
{
"reason": "ACCESS_CHANGED",
"column": "<string>"
}
],
"kind": "main",
"tableClass": "NONE",
"tableId": "<string>",
"proposedPhysicalName": "<string>",
"servedPhysicalName": "<string>"
}
]
},
"classificationHash": "<string>",
"connectorId": "<string>",
"effectiveTapId": "<string>",
"fromLayoutId": "<string>",
"id": "<string>",
"identityImpact": "IDENTITY_UNCHANGED",
"reasons": [
"CONNECTOR_TAP_CHANGED"
],
"rebuildTableIds": [
"<string>"
],
"requestedAt": "2023-11-07T05:31:56Z",
"requestedBy": "<string>",
"stale": true,
"state": "PENDING_APPROVAL",
"tapName": "<string>",
"targetLayoutId": "<string>",
"tenantConnectorId": "<string>",
"tenantConnectorTapId": "<string>",
"abortedAt": "2023-11-07T05:31:56Z",
"abortedReason": "<string>",
"approvedAt": "2023-11-07T05:31:56Z",
"approvedBy": "<string>",
"declinedAt": "2023-11-07T05:31:56Z",
"declinedBy": "<string>",
"declinedReason": "<string>",
"failedAt": "2023-11-07T05:31:56Z",
"identityAccountsRekeyed": 0,
"notBefore": "2023-11-07T05:31:56Z",
"readyAt": "2023-11-07T05:31:56Z",
"staleAt": "2023-11-07T05:31:56Z",
"startedAt": "2023-11-07T05:31:56Z",
"supersededById": "<string>",
"swappedAt": "2023-11-07T05:31:56Z"
},
"meta": {
"requestId": "<string>",
"totalCount": 123
},
"links": {
"first": "<string>",
"last": "<string>",
"next": "<string>",
"prev": "<string>"
}
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Access
This operation needs a Parable token. An MCP token cannot call it. See Authentication for the kinds of token. Your roles must granttenant.connectors.rebuilds.approve.
Errors
WA-TCT-030: No rebuild with this ID belongs to this Workspace. Check the rebuild ID.WA-TCT-031: The classification hash differs from the rebuild’s. The details carry currentClassificationHash. Read the rebuild again and approve what it now changes.WA-TCT-032: A later change replaced the rebuild. The details carry successorId, null when the change was reverted. Approve the replacing rebuild instead.WA-TCT-033: Another rebuild of the same Tap is in progress. The details carry inProgressRebuildId. Wait for that rebuild to finish.WA-TCT-034: The rebuild is not waiting for approval. The details carry state. Read the rebuild’s state.
Authorizations
A personal access token, which starts with pat_. A Parable token can call each operation that the roles of its owner allow. An MCP token can call only the read operations that are open to agents. A SQL token does not work on this API.
Headers
Workspace slug. Overrides subdomain-based workspace resolution when provided.
"acme"
Optional request correlation ID echoed back in the response.
"550e8400-e29b-41d4-a716-446655440000"
Path Parameters
id parameter UUID v4 with automatic base62 encoding for client-facing APIs
Body
Approve one of this Workspace's Provider Pool rebuilds.