watsonx_data service has 17 resource kinds, each listed below with its endpoints, fields, and dependencies. Values resolve late, so you reference another resource with ${kind.ref_name}. For defaults, validation rules, and examples, run wxctl explain <kind>.
YAML envelope & reference syntax
YAML envelope & reference syntax
- Envelope: A config is one or more YAML documents separated by
---. Each has top-levelkindandref_name, then the fields below at the top level (not nested underspec). ref_name: Unique handle for this resource within the config. Used to reference it from other resources, then stripped before the API call (not a schema field).- References: Reference another resource by its ref_name:
${<kind>.<ref_name>}resolves to its id,${<kind>.<ref_name>.<field>}to a specific field. Values resolve late, at plan/apply time.
database_connection
Credential-holding kind for external database connections consumed by database_registration.
Runs on SaaS + Software · ID field ref_name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /local/database_connections |
| Read | GET | /local/database_connections/{ref_name} |
| Delete | DELETE | /local/database_connections/{ref_name} |
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Required | Connector type. Drives the active variant, fields outside the active variant emit WXCTL-V401 (warn); unknown types likewise warn rather than block. |
database_registration→.connection(required)
database_registration
Registers an external database (Db2, PostgreSQL, MySQL, Kafka, etc.) with watsonx.data and atomically creates its associated catalog.
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/database_registrations |
| Read | GET | /v3/database_registrations/{id} |
| List | GET | /v3/database_registrations |
| Update | PATCH | /v3/database_registrations/{id} |
| Delete | DELETE | /v3/database_registrations/{id} |
| Field | Type | Required | Description |
|---|---|---|---|
display_name | string | Required | |
description | string | Optional | |
connection | string | Required | Reference to a database_connection. The handler derives the type: and every connection.* wire-body field from the linked connection’s active variant. Immutable, rotating credentials happens on the connection; changing which connection backs a registration changes the registration’s identity. |
tags | array<string> | Optional | |
associated_catalog | object | Required | Catalog created atomically with the registration. |
id, catalog_name.
Depends on
connection→database_connection(required)
ingestion_job→.target.catalog(optional)prestissimo_engine→.associated_catalogs(optional)presto_engine→.associated_catalogs(optional)sal_enrichment_job→.changes.catalog(optional)spark_engine→.associated_catalogs(optional)
db2_engine
A Db2 Engine registers an external IBM Db2 instance as a federated query engine in watsonx.data.
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/db2_engines |
| Read | GET | /v3/db2_engines/{id} |
| List | GET | /v3/db2_engines?limit=100 |
| Update | PATCH | /v3/db2_engines/{id} |
| Delete | DELETE | /v3/db2_engines/{id} |
| Field | Type | Required | Description |
|---|---|---|---|
display_name | string | Required | Human-readable engine name; unique within the instance. |
origin | string | Required | Engine origin. External Db2 registration uses external. |
description | string | Optional | |
tags | array<string> | Optional | |
configuration | object | Required | External connection details. Sent on create only; the API enriches this object on reads, so it is excluded from drift detection. |
id.
ingestion_job
An Ingestion Job loads data from object storage (CSV, Parquet, JSON, ORC, Avro, or txt) into a watsonx.data lakehouse table.
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/lhingestion/api/v1/ingestion/jobs |
| Read | GET | /v3/lhingestion/api/v1/ingestion/jobs/{id} |
| List | GET | /v3/lhingestion/api/v1/ingestion/jobs?limit=100 |
| Delete | DELETE | /v3/lhingestion/api/v1/ingestion/jobs/{id} |
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Required | User-supplied job identifier (unique per instance). Also used as the resource id in get and delete paths. |
engine_id | string | Optional | Id of the Spark engine to run this ingestion on. Optional, when omitted the instance default engine is used. References a spark_engine resource. |
source | object | Required | Source descriptor, file paths, format, and bucket details. See the OpenAPI SourceDetails schema for the full shape. |
target | object | Required | Target table descriptor, catalog, schema, table, and write mode. |
partition_by | string | Optional | Comma-delimited list of target table columns to partition by (e.g., date,region). |
execute_config | object | Optional | Driver/executor resource configuration (cores, memory, instances). Defaults are instance-wide; provide only to override. |
generation | string | Optional | Optional nonce folded into the identity hash. Set any new value to force a fresh ingestion run with all other inputs unchanged; the prior run is retained (accumulate). LocalOnly, never sent to the API body. |
status.
Depends on
engine_id→spark_engine(optional)source.file_paths→s3_bucket(optional)source.file_paths→s3_object(optional)target.catalog→storage_registration(required)target.catalog→database_registration(optional)target.schema→schema(required)
integration
Registers an external governance / lineage service with watsonx.data, IBM Knowledge Catalog (ikc), Apache Ranger (ranger), Manta lineage (manta), or Databand (databand).
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/integrations |
| Read | GET | /v3/integrations/{id} |
| List | GET | /v3/integrations |
| Update | PATCH | /v3/integrations/{id} |
| Delete | DELETE | /v3/integrations/{id} |
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Required | Integration type, the identity field (one integration per type). Sent verbatim as type. (The IBM OpenAPI’s service_type name is REJECTED by the live 2.3.x Software API, json: unknown field "service_type"; live-discovered on CP4D 2026-06-05.) |
url | string | Optional | Integration endpoint URL (all types). |
apikey | string | Optional | API key (ikc, manta). ${env:}-sourced; excluded from drift. |
username | string | Optional | Username (ikc, manta, ranger). |
password | string | Optional | Password (ranger). ${env:}-sourced; excluded from drift. |
access_token | string | Optional | Access token (databand). ${env:}-sourced; excluded from drift. |
catalogs | object | Optional | Bucket catalogs governed by this integration (the UI’s “Bucket catalog” field). Sent as catalogs.catalog_names. (The OpenAPI’s flat storage_catalogs array is REJECTED by the live 2.3.x Software API, json: unknown field "storage_catalogs"; live-discovered on CP4D 2026-06-05.) |
connection_mode | string | Optional | Connection mode (manta), e.g. external. |
cross_account_integration | boolean | Optional | Enable cross-account IKC integration (IBM Cloud / MCSP). |
enable_data_policy_within_wxd | boolean | Optional | Enable watsonx.data policy enforcement (ranger). |
ikc_user_account_id | string | Optional | Account id for cross-account IKC (use with cross_account_integration). |
ssl | boolean | Optional | SSL enabled (ranger; ikc on CPD). NOT in the published OpenAPI, live-discovered. ⚠️ DO NOT set ssl: true for ikc on watsonx.data 2.3.x Software: although the create then succeeds (with certificate + certificate_extension, below), the backend stores an integration that PANICS the read path, every subsequent GET/list of integrations returns 500 (recovered panic in lhconsole-api-v3 uiMiddleware), which breaks discovery / re-plan / destroy. The watsonx.data UI’s IKC flow does not expose SSL at all; leave ssl unset (the integration then creates AND reads cleanly). Verified on CP4D 2026-06-05. |
certificate | string | Optional | PEM contents of the endpoint certificate, required when ssl: true. Live-discovered (not in the OpenAPI). Pair with certificate_extension. |
certificate_extension | string | Optional | Certificate file extension, pem or crt. Required alongside certificate when ssl: true. Live-discovered (not in the OpenAPI). |
resource | string | Optional | Selected resource (ranger). |
id.
milvus_service
A Milvus Service is the managed Milvus vector store in watsonx.data, the vector backend for embeddings / similarity search (e.g. RAG knowledge bases).
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/milvus_services |
| Read | GET | /v3/milvus_services/{id} |
| List | GET | /v3/milvus_services?limit=100 |
| Update | PATCH | /v3/milvus_services/{id} |
| Delete | DELETE | /v3/milvus_services/{id} |
| Field | Type | Required | Description |
|---|---|---|---|
display_name | string | Required | Human-readable service name shown in the watsonx.data UI. Unique within the instance. |
origin | string | Required | Service origin. native is a Milvus service provisioned inside watsonx.data. The only supported value at creation time. |
root_path | string | Required | Path prefix within the backing storage where Milvus vectors are stored, e.g. milvus/vectors. Create-only. |
tshirt_size | string | Required | Predefined size profile for the service. Create-only, resizing goes through the /scale endpoint (out of scope), so a change here is ignored (excluded from drift detection). |
storage_name | string | Optional | The registered watsonx.data storage that backs this service’s vector data. Accepts a ${storage_registration.<ref>} ref (resolved to the registration’s id) or a plain storage name string. |
description | string | Optional | Optional free-text description of the service’s purpose (max 50 chars). |
tags | array<string> | Optional | Free-form tags for organizing and filtering services. |
index_type | string | Optional | Vector index algorithm. Accepted by the create API only when tshirt_size: custom, the predefined sizes carry a fixed index type and reject an override (HTTP 400). Create-only; excluded from drift detection. |
vector_dimension | integer | Optional | Dimensionality of stored vectors (384-4000). Accepted by the create API only when tshirt_size: custom, predefined sizes reject it with HTTP 400 “VectorDimension can only be used with tshirt_size: custom”. Create-only; excluded from drift detection. |
status | string | Optional | Desired lifecycle state. Setting paused triggers POST /v3/milvus_services/{id}/pause; setting running triggers /resume. Handled in pre_update via HookOutcome::Handled so the transition does not flow through the normal PATCH path. The pre_create handler strips this field from the create payload, the Milvus create API does not accept a status input. |
id.
Depends on
storage_name→storage_registration(optional)
other_engine
An Other Engine registers a generic external query engine (anything not covered by the typed presto/spark/db2 kinds) with watsonx.data, identified by a display name plus a connection_string and an engine type.
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/other_engines |
| Read | GET | /v3/other_engines/{id} |
| List | GET | /v3/other_engines?limit=100 |
| Delete | DELETE | /v3/other_engines/{id} |
| Field | Type | Required | Description |
|---|---|---|---|
display_name | string | Required | Human-readable engine name; unique within the instance. |
origin | string | Required | |
description | string | Optional | |
tags | array<string> | Optional | |
configuration | object | Required | External engine connection details. Sent on create only; excluded from drift detection. |
id.
prestissimo_engine
A Prestissimo Engine is the C++ (Velox-backed) distributed SQL query engine in watsonx.data, the high-performance twin of the Java Presto engine.
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/prestissimo_engines |
| Read | GET | /v3/prestissimo_engines/{id} |
| List | GET | /v3/prestissimo_engines?limit=100 |
| Update | PATCH | /v3/prestissimo_engines/{id} |
| Delete | DELETE | /v3/prestissimo_engines/{id} |
| Field | Type | Required | Description |
|---|---|---|---|
display_name | string | Required | Human-readable engine name shown in the watsonx.data UI. Must be unique within the instance. |
origin | string | Required | Engine origin. native is a Prestissimo engine provisioned inside watsonx.data. The only supported value at creation time. |
description | string | Optional | Optional free-text description of the engine’s purpose (max 50 chars). |
associated_catalogs | array<string> | Optional | Catalogs attached to this engine. Accepts either wxctl-managed registrations via {storage_registration.name} / {database_registration.name} refs (resolved to their associated_catalog.catalog_name via the catalog_name computed field) or plain catalog-name strings for catalogs that already exist on the instance and are not managed by wxctl. |
tags | array<string> | Optional | Free-form tags for organizing and filtering engines. |
configuration | object | Required | Engine node topology and sizing. Sent on create only; the API enriches this object with runtime fields on subsequent reads, so it is excluded from drift detection. |
status | string | Optional | Desired lifecycle state. Setting paused triggers POST /v3/prestissimo_engines/{id}/pause; setting running triggers /resume. Handled in pre_update via HookOutcome::Handled so the transition does not flow through the normal PATCH path. The pre_create handler strips this field from the create payload, the Prestissimo create API does not accept a status input. |
id.
Depends on
associated_catalogs→storage_registration(optional)associated_catalogs→database_registration(optional)
sal_integration→.engine_id(optional)
presto_engine
A Presto Engine is a distributed SQL query engine in watsonx.data that runs analytical queries across lakehouse catalogs and object storage.
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/presto_engines |
| Read | GET | /v3/presto_engines/{id} |
| List | GET | /v3/presto_engines?limit=100 |
| Update | PATCH | /v3/presto_engines/{id} |
| Delete | DELETE | /v3/presto_engines/{id} |
| Field | Type | Required | Description |
|---|---|---|---|
display_name | string | Required | Human-readable engine name shown in the watsonx.data UI. Must be unique within the instance. |
origin | string | Required | Engine origin. native is a Presto engine provisioned inside watsonx.data. The only supported value at creation time. |
description | string | Optional | Optional free-text description of the engine’s purpose (max 50 chars). |
associated_catalogs | array<string> | Optional | Catalogs attached to this engine. Accepts either wxctl-managed registrations via {storage_registration.name} / {database_registration.name} refs (resolved to their associated_catalog.catalog_name via the catalog_name computed field) or plain catalog-name strings for catalogs that already exist on the instance and are not managed by wxctl. |
tags | array<string> | Optional | Free-form tags for organizing and filtering engines. |
configuration | object | Required | Engine node topology and sizing. Sent on create only; the API enriches this object with runtime fields on subsequent reads, so it is excluded from drift detection. |
status | string | Optional | Desired lifecycle state. Setting paused triggers POST /v3/presto_engines/{id}/pause; setting running triggers /resume. Handled in pre_update via HookOutcome::Handled so the transition does not flow through the normal PATCH path. The pre_create handler strips this field from the create payload, the Presto create API does not accept a status input. |
id, external_host_name, host_name.
Depends on
associated_catalogs→storage_registration(optional)associated_catalogs→database_registration(optional)
sal_integration→.engine_id(required)schema→.engine_id(required)
sal_enrichment_job
Runs a Semantic Automation Layer (SAL) metadata-enrichment job over a catalog/schema’s tables.
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/sal_integration/enrichment |
| Read | GET | /v3/sal_integration/enrichment/jobs |
| Delete | DELETE | /v3/sal_integration/enrichment/jobs |
| Field | Type | Required | Description |
|---|---|---|---|
project_id | string | Optional | Optional project for sal_enrichment_settings correlation. NOT used for the job-status poll and NOT sent on the create POST (the POST ignores project_id; SAL auto-creates a SAL Mapping /{catalog}/{schema} project per target, which the handler resolves from changes to poll the SAL_MDE job runs). Source via ${env:}. |
changes | array<object> | Required | Enrichment job spec, the v3 SalEnrichmentPrototype.changes array. Each element (EnrichmentObj) targets one catalog/schema. (v2 sent a single enrichment_prototype object; v3 wraps it in this array.) |
generation | string | Optional | Optional nonce folded into the identity hash. Set any new value to force a fresh enrichment run with all other inputs unchanged; prior runs are retained (accumulate). LocalOnly, never sent to the API body. |
id.
Depends on
changes.catalog→storage_registration(required)changes.catalog→database_registration(optional)
sal_enrichment_settings
Per-project metadata-enrichment settings for the Semantic Automation Layer (SAL) on watsonx.data.
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/sal_integration/enrichment/project_settings |
| Read | GET | /v3/sal_integration/enrichment/project_settings |
| Delete | DELETE | /v3/sal_integration/enrichment/project_settings |
| Field | Type | Required | Description |
|---|---|---|---|
project_id | string | Required | Project these enrichment settings apply to. Sent as the project_id query param on GET (discovery) and POST (create). Source via ${env:}. |
semantic_expansion | object | Optional | Semantic-expansion config, description/name generation toggles and assignment/suggestion thresholds. Pass-through object per the SAL spec. |
term_assignment | object | Optional | Term-assignment config, class/LLM/ML-based assignment toggles and term assignment/suggestion thresholds. Pass-through object per the SAL spec. |
id.
sal_global_settings
Global metadata-enrichment defaults for the Semantic Automation Layer (SAL) on watsonx.data.
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/sal_integration/enrichment/global_settings |
| Read | GET | /v3/sal_integration/enrichment/global_settings |
| Delete | DELETE | /v3/sal_integration/enrichment/global_settings |
| Field | Type | Required | Description |
|---|---|---|---|
semantic_expansion | object | Optional | Semantic-expansion config, description/name generation toggles and assignment/suggestion thresholds. Pass-through object per the SAL spec. |
term_assignment | object | Optional | Term-assignment config, class/LLM/ML-based assignment toggles and term assignment/suggestion thresholds. Pass-through object per the SAL spec. |
id.
sal_glossary
Uploads a business-glossary CSV into the watsonx.data Semantic Automation Layer (SAL) and polls the upload process to a terminal state, so a glossary can be uploaded before/around enrichment (richer term assignment).
Runs on Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/sal_integration/glossary/upload_processes |
| Read | GET | /v3/sal_integration/glossary/upload_processes |
| Delete | DELETE | /v3/sal_integration/glossary/upload_processes |
| Field | Type | Required | Description |
|---|---|---|---|
glossary_csv | string | Required | Path to the business-glossary CSV (relative to the config file or absolute). is_path: true ⇒ build.rs adds it to PATH_FIELDS ⇒ resolved against the config dir by resolve_file_paths; LocalOnly so the path is never sent to the API. |
replace_option | string | Optional | Field-merge strategy for the uploaded terms, sent as an extra multipart text field. Live-confirmed (CP4D) ∈ [all, specified, empty]: all replaces all fields of matching terms, specified only non-empty imported fields, empty only currently-empty fields. NOT a glossary wipe, terms absent from the CSV are retained (no DELETE surface). Omit when unset (do not guess a default into the form). |
generation | string | Optional | Optional nonce folded into the identity hash. Set any new value to force a fresh upload with all other inputs unchanged; uploaded terms accumulate/merge per replace_option. LocalOnly, never sent to the API body. |
csv_content_hash | string | Optional | BLAKE3 of the glossary CSV CONTENT, stamped by the handler’s post_validate (do not set by hand). It, not the machine-dependent file path, is folded into the identity hash, so editing the CSV re-runs the upload while moving the file does not. Absent when the file is missing at validation time (an apply-create then still fails in pre_create with a clear file-not-found). |
id.
sal_integration
Enables the Semantic Automation Layer (SAL) on watsonx.data, the metadata-enrichment / auto-cataloging integration that backs IKC governance.
Runs on SaaS + Software · ID field engine_id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/sal_integration |
| Read | GET | /v3/sal_integration |
| Update | PATCH | /v3/sal_integration |
| Delete | DELETE | /v3/sal_integration |
| Field | Type | Required | Description |
|---|---|---|---|
apikey | string | Required | IAM apikey SAL uses to drive enrichment. ${env:}-sourced; excluded from drift. |
engine_id | string | Required | Query engine SAL runs against. Accepts a ${presto_engine.<ref>.id} ref (also spark_engine / prestissimo_engine) or a plain engine id. |
storage_resource_crn | string | Optional | COS storage resource CRN backing SAL metadata. |
storage_type | string | Optional | Storage type, e.g. bmcos_object_storage. Required in practice on 2.3.x Software: omitting it enables SAL but leaves it in an error state (SAL0050E), whereas sending bmcos_object_storage yields a clean status: active. NOTE the backend REWRITES the stored value (bmcos_object_storage → assetfiles on CP4D), so it is deliberately excluded from state_fields below to avoid spurious drift on re-plan. Live-discovered on CP4D 2026-06-05. |
trial_plan | boolean | Optional | Whether SAL runs under a trial plan. |
engine_id→presto_engine(required)engine_id→spark_engine(optional)engine_id→prestissimo_engine(optional)
schema
A Schema is a logical grouping of tables within a watsonx.data catalog.
Runs on SaaS + Software · ID field name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/catalogs/{catalog_id}/schemas |
| Read | GET | /v3/catalogs/{catalog_id}/schemas |
| List | GET | /v3/catalogs/{catalog_id}/schemas |
| Delete | DELETE | /v3/catalogs/{catalog_id}/schemas/{name} |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Required | Schema name (unique within the catalog). Also used as the {name} path segment on delete. |
custom_path | string | Required | Path within the catalog’s backing bucket where the schema will be created (e.g., sales/raw). Must not collide with other schemas in the same bucket. |
storage_name | string | Optional | Name of the bucket associated with the catalog. Defaults to the catalog’s primary bucket when omitted. |
catalog_id | string | Required | Id of the parent catalog. Interpolated into the create, list, and delete paths. |
engine_id | string | Required | Id of the Presto engine to run the schema DDL against. Sent as ?engine_id=... on both create and delete. References a presto_engine resource. |
catalog_id→catalog(required)catalog_id→storage_registration(optional)engine_id→presto_engine(required)
ingestion_job→.target.schema(required)
spark_engine
A Spark Engine is a serverless Apache Spark execution environment in watsonx.data used for data ingestion jobs, Spark SQL, and general Spark applications.
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/spark_engines |
| Read | GET | /v3/spark_engines/{id} |
| List | GET | /v3/spark_engines |
| Update | PATCH | /v3/spark_engines/{id} |
| Delete | DELETE | /v3/spark_engines/{id} |
| Field | Type | Required | Description |
|---|---|---|---|
display_name | string | Required | Human-readable engine name shown in the watsonx.data UI. Must be unique within the instance. |
origin | string | Required | Engine origin. native is a Spark engine provisioned inside watsonx.data, supported on classic (lakehouse-enterprise), MCSP (lakehouse-enterprise-mcsp), and CPD. external registers a bring-your-own Spark cluster and requires an api_key field on create. |
description | string | Optional | Optional free-text description (max 50 chars). |
associated_catalogs | array<string> | Optional | Catalogs this engine can operate against. Accepts either wxctl-managed registrations via {storage_registration.name} / {database_registration.name} refs (resolved to their associated_catalog.catalog_name via the catalog_name computed field) or plain catalog-name strings for catalogs that already exist on the instance and are not managed by wxctl. |
dataplane_name | string | Optional | Remote-dataplane placement identifier (CPD only). Leave unset for SaaS. |
tags | array<string> | Optional | Free-form tags for organizing and filtering engines. |
type | string | Required | Engine flavour. spark is the standard Apache Spark runtime; gluten is the vectorised Velox-backed runtime. Required at the top level of the create body, the API’s opaque 500 on POST is typically caused by this field being omitted. |
configuration | object | Required | Engine configuration, sent on create only (the API enriches this object on reads, so it’s excluded from drift detection). Required sub-fields for origin: native: • default_version, one of 3.4, 3.5, 4.0 (query GET /v3/spark_versions for live values) • engine_home.storage_name, id of a registered storage_registration that will host engine metadata (SAAS; use engine_home.volume_id on CPD instead) • scale_config.node_type + scale_config.number_of_nodes, MCSP accepts tier names (starter, small, medium, large); CPD uses volume-backed sizing. Node counts are capped at 1000. For origin: external, include api_key, connection_string, and instance_id pointing at the existing IBM Analytics Engine deployment. |
status | string | Optional | Desired lifecycle state. Setting paused triggers POST /v3/spark_engines/{id}/pause; setting running triggers /resume. Handled in pre_update via HookOutcome::Handled. |
id.
Depends on
associated_catalogs→storage_registration(optional)associated_catalogs→database_registration(optional)associated_catalogs→s3_bucket(optional)
ingestion_job→.engine_id(optional)sal_integration→.engine_id(optional)
storage_registration
Registers an object-store bucket with watsonx.data and atomically creates its associated lakehouse catalog (iceberg or hive).
Runs on SaaS + Software · ID field id
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /v3/storage_registrations |
| Read | GET | /v3/storage_registrations/{id} |
| List | GET | /v3/storage_registrations |
| Update | PATCH | /v3/storage_registrations/{id} |
| Delete | DELETE | /v3/storage_registrations/{id} |
| Field | Type | Required | Description |
|---|---|---|---|
display_name | string | Required | |
description | string | Optional | |
bucket | string | Required | Reference to an s3_bucket (primary), adls_container, or gcs_bucket. The handler derives type:, bucket name, region, endpoint, and credentials from this edge + the bucket’s linked storage_connection. Never a user-set type or inline connection block anymore. |
managed_by | string | Optional | |
tags | array<string> | Optional | |
associated_catalog | object | Required | Catalog created atomically with the registration. |
id, catalog_name.
Depends on
bucket→s3_bucket(required)bucket→adls_container(optional)bucket→gcs_bucket(optional)
ingestion_job→.target.catalog(required)milvus_service→.storage_name(optional)prestissimo_engine→.associated_catalogs(optional)presto_engine→.associated_catalogs(optional)sal_enrichment_job→.changes.catalog(required)schema→.catalog_id(optional)spark_engine→.associated_catalogs(optional)

