# Manage a Connection

This page details the `/data` v1 API, which allows users to register a connection to Immuta with a single set of credentials rather than configuring an integration and creating data sources separately. For a how-to on registering a connection, see the [Register a connection reference guide](https://documentation.immuta.com/latest/developer-guides/api-intro/connections-api/how-to-guides/register-a-connection).

<table><thead><tr><th width="114">Method</th><th width="352">Endpoint</th><th>Description</th></tr></thead><tbody><tr><td><strong>GET</strong></td><td><a href="#get-data-connection-connectionkey"><mark style="color:blue;"><code>/data/connection/{connectionKey}</code></mark></a></td><td>Search for a connection using a connection key</td></tr><tr><td><strong>GET</strong></td><td><a href="#get-data-object-objectpath"><mark style="color:blue;"><code>/data/object/{objectPath}</code></mark></a></td><td>Search for a specific data object</td></tr><tr><td><strong>POST</strong></td><td><a href="#post-data-object-search-objectpath"><mark style="color:blue;"><code>/data/object/search/{objectPath}</code></mark></a></td><td>Search for the child objects of the data object defined in the objectPath or search all top-level data objects (connections) if the objectPath is omitted</td></tr><tr><td><strong>PUT</strong></td><td><a href="#put-data-connection-connectionkey"><mark style="color:blue;"><code>/data/connection/{connectionKey}</code></mark></a></td><td>Update the connection information for the specified connection</td></tr><tr><td><strong>POST</strong></td><td><a href="#post-data-crawl-objectpath"><mark style="color:blue;"><code>/data/crawl/{objectPath}</code></mark></a></td><td>Trigger object sync for the specified data object</td></tr><tr><td><strong>PUT</strong></td><td><a href="#put-data-settings-objectpath"><mark style="color:blue;"><code>/data/settings/{objectPath}</code></mark></a></td><td>Update the settings through overrides for the specified data object</td></tr><tr><td><strong>DELETE</strong></td><td><a href="#delete-data-object-objectpath"><mark style="color:blue;"><code>/data/object/{objectPath}</code></mark></a></td><td>Delete the given data object and all its child objects</td></tr></tbody></table>

## <mark style="color:green;">`GET`</mark> `/data/connection/{connectionKey}`

Search for a connection using a connection key.

**Required Immuta permission**: `CREATE_DATA_SOURCE`, `APPLICATION_ADMIN`, `GOVERNANCE`, or Data Owner within the hierarchy

```
curl -X 'GET' \
  'https://your-immuta-url.com/data/connection/yourConnectionKey' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer your-bearer-token'
```

#### Path parameters

<table><thead><tr><th width="197">Attribute</th><th width="414">Description</th><th>Required</th></tr></thead><tbody><tr><td><strong>connectionKey</strong> <code>string</code></td><td>The key to uniquely identify the connection. This is the same as the display name of the connection in the Immuta UI.</td><td><strong>Yes</strong></td></tr></tbody></table>

#### Response schema

<table><thead><tr><th width="197">Attribute</th><th>Description</th></tr></thead><tbody><tr><td><strong>connectionKey</strong> <code>string</code></td><td>The key to uniquely identify the connection.</td></tr><tr><td><strong>connection</strong> <code>object</code></td><td>Integration-specific connection information (i.e., hostname, authentication type, warehouse, etc.)</td></tr><tr><td><strong>createdAt</strong> <code>timestamp</code></td><td>The time the connection was registered in Immuta.</td></tr><tr><td><strong>createdBy</strong> <code>integer</code></td><td>The ID of the user who registered the connection.</td></tr><tr><td>creator.<strong>id</strong> <code>integer</code></td><td>The ID of the user who registered the connection.</td></tr><tr><td>creator.<strong>name</strong> <code>string</code></td><td>The name of the user who registered the connection.</td></tr><tr><td>creator.<strong>email</strong> <code>string</code></td><td>The email of the user who registered the connection.</td></tr><tr><td><strong>updatedAt</strong> <code>timestamp</code></td><td>The time the connection was updated in Immuta.</td></tr><tr><td><strong>updatedBy</strong> <code>integer</code></td><td>The ID of the user who updated the connection.</td></tr><tr><td>updater.<strong>id</strong> <code>integer</code></td><td>The ID of the user who updated the connection.</td></tr><tr><td>updater.<strong>name</strong> <code>string</code></td><td>The name of the user who updated the connection.</td></tr><tr><td>updater.<strong>email</strong> <code>string</code></td><td>The email of the user who updated the connection.</td></tr><tr><td><strong>nativeIntegrationId</strong> <code>integer</code></td><td>The ID of the integration backing the connection.</td></tr></tbody></table>

#### Example response

```
{
  "connectionKey": "yourConnectionKey",
  "connection": {
    "port": 443,
    "role": "IMMUTA_SNOWFLAKE_ROLE",
    "hostname": "example.us-east-1.snowflakecomputing.com",
    "username": "IMMUTA_DB_SYSTEM_ACCOUNT",
    "warehouse": "your-warehouse",
    "technology": "Snowflake",
    "authenticationType": "userPassword"
  },
  "createdAt": "2023-12-22T18:28:46.328Z",
  "createdBy": 2,
  "updatedAt": "2023-12-22T18:28:46.328Z",
  "updatedBy": 2,
  "creator": {
    "id": 2,
    "name": "Taylor Smith",
    "email": "taylor@immuta.com"
  },
  "updater": {
    "id": 2,
    "name": "Taylor Smith",
    "email": "taylor@immuta.com"
  },
  "nativeIntegrationId": 1
}
```

## <mark style="color:green;">`GET`</mark> `/data/object/{objectPath}`

Search for a specific data object using the object path.

**Required Immuta permission**: `CREATE_DATA_SOURCE`, `APPLICATION_ADMIN`, `GOVERNANCE`, or Data Owner within the hierarchy

```
curl -X 'GET' \
  'https://your-immuta-url.com/data/object/yourConnectionKey' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer your-bearer-token'
```

#### Path parameters

<table><thead><tr><th width="163">Attribute</th><th width="435">Description</th><th>Required</th></tr></thead><tbody><tr><td><strong>objectPath</strong> <code>string</code></td><td>The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the <a data-footnote-ref href="#user-content-fn-1"><code>connectionKey</code></a> and all names should be separated by forward slashes (<code>/</code>). For example, <code>yourConnectionKey/yourDatabase/yourSchema</code>.</td><td><strong>Yes</strong></td></tr></tbody></table>

#### Response schema

<table><thead><tr><th width="162">Attribute</th><th>Description</th></tr></thead><tbody><tr><td><strong>objectPath</strong> <code>string</code></td><td>The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the <code>connectionKey</code> and all names are separated by forward slashes.</td></tr><tr><td><strong>technology</strong> <code>string</code></td><td>The technology that the object comes from: <code>Databricks</code> or <code>Snowflake</code>.</td></tr><tr><td><strong>state</strong> <code>string</code></td><td>Whether the object is currently <code>active</code> (enabled) or <code>inactive</code> (disabled).</td></tr><tr><td><strong>settings</strong> <code>object</code></td><td>Specifications of the connection's settings, including status, new children status, and data owners.</td></tr><tr><td><strong>overrides</strong> <code>object</code></td><td>Specifications of the data object's settings that differ from its parents' settings.</td></tr><tr><td><strong>dataSourceId</strong> <code>integer</code></td><td>The ID of the data source if it is a table object that is active.</td></tr><tr><td><strong>createdAt</strong> <code>timestamp</code></td><td>The time the data object was created in Immuta.</td></tr><tr><td><strong>lastCrawled</strong> <code>timestamp</code></td><td>The time object sync was last run on the data object.</td></tr><tr><td><strong>remoteId</strong> <code>string</code></td><td>The ID of the remote data object.</td></tr></tbody></table>

#### Example response

```
{
  "objectPath": ["yourConnectionKey"],
  "technology": "Snowflake",
  "state": "active",
  "settings": {
    "activateNewChildren": {
      "value": true,
      "hasDescendantsWithOverrides": false
    },
    "dataOwners": {
      "value": [{
        "id": 2,
        "type": "user"
      }],
      "hasDescendantsWithOverrides": false
    },
    "isActive": {
      "value": true,
      "hasDescendantsWithOverrides": false
    }
  },
  "overrides": [],
  "lastCrawled": 2023 - 08 - 21 T10: 39: 00.250 Z,
  "createdAt": 2023 - 08 - 21 T10: 39: 00.250 Z,
  "remoteId": null
}
```

## <mark style="color:green;">`POST`</mark> `/data/object/search/{objectPath}`

Search for the children of the object defined in the objectPath. Or search all top-level data objects if the objectPath is omitted.

**Required Immuta permission**: `CREATE_DATA_SOURCE`, `APPLICATION_ADMIN`, `GOVERNANCE`, or Data Owner on the object

```
curl -X 'POST' \
  'https://your-immuta-url.com/data/object/search/yourConnectionKey' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer your-bearer-token'
```

#### Path parameters

<table><thead><tr><th width="184">Attribute</th><th width="433">Description</th><th>Required</th></tr></thead><tbody><tr><td><strong>objectPath</strong> <code>string</code></td><td>The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the <a data-footnote-ref href="#user-content-fn-1"><code>connectionKey</code></a> and all names should be separated by forward slashes (<code>/</code>). For example, <code>yourConnectionKey/yourDatabase/yourSchema</code>.</td><td><strong>Yes</strong></td></tr></tbody></table>

#### Query parameters

<table><thead><tr><th width="181">Attribute</th><th width="442">Description</th><th>Required</th></tr></thead><tbody><tr><td><strong>sortField</strong> <code>string</code></td><td>The field to sort the search results.</td><td>No</td></tr><tr><td><strong>sortOrder</strong> <code>string</code></td><td>Denotes whether to sort the results in ascending (<code>asc</code>) or descending (<code>desc</code>) order. <strong>Default is <code>asc</code>.</strong></td><td>No</td></tr><tr><td><strong>offset</strong> <code>integer</code></td><td>Use in combination with <code>limit</code> to fetch pages.</td><td>No</td></tr><tr><td><strong>limit</strong> <code>integer</code></td><td>Limits the number of results displayed per page.</td><td>No</td></tr><tr><td><strong>searchText</strong> <code>string</code></td><td>A partial, case-insensitive search on name.</td><td>No</td></tr></tbody></table>

#### Response schema

<table><thead><tr><th width="183">Attribute</th><th>Description</th></tr></thead><tbody><tr><td><strong>count</strong> <code>integer</code></td><td>The number of results for your search.</td></tr><tr><td>hits.<strong>objectPath</strong> <code>string</code></td><td>The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the <code>connectionKey</code> and all names are separated by forward slashes.</td></tr><tr><td>hits.<strong>technology</strong> <code>string</code></td><td>The technology that the object comes from (i.e., Snowflake, Databricks, etc.).</td></tr><tr><td>hits.<strong>state</strong> <code>string</code></td><td>Whether the object is currently <code>active</code> (enabled) or <code>inactive</code> (disabled).</td></tr><tr><td>hits.<strong>settings</strong> <code>object</code></td><td>Specifications of the connection's settings, including status, new children status, and data owners.</td></tr><tr><td>hits.<strong>overrides</strong> <code>object</code></td><td>Specifications of the data object's settings that differ from its parents' settings.</td></tr><tr><td>hits.<strong>dataSourceId</strong> <code>integer</code></td><td>The ID of the data source if it is a table object that is active (enabled).</td></tr><tr><td>hits.<strong>createdAt</strong> <code>timestamp</code></td><td>The time the data object was created in Immuta.</td></tr><tr><td>hits.<strong>lastCrawled</strong> <code>timestamp</code></td><td>The time object sync was last run on the data object.</td></tr><tr><td>hits.<strong>remoteId</strong> <code>string</code></td><td>The ID of the remote data object.</td></tr></tbody></table>

#### Example response

```
{
  "count": 1,
  "hits": [{
    "objectPath": ["yourConnectionKey"],
    "technology": "Snowflake",
    "state": "active",
    "settings": {
      "activateNewChildren": {
        "value": true,
        "hasDescendantsWithOverrides": false
      },
      "dataOwners": {
        "value": [{
          "id": 2,
          "type": "user"
        }],
        "hasDescendantsWithOverrides": false
      },
      "isActive": {
        "value": true,
        "hasDescendantsWithOverrides": false
      }
    },
    "overrides": [],
    "lastCrawled": 2023 - 08 - 21 T10: 39: 00.250 Z,
    "createdAt": 2023 - 08 - 21 T10: 39: 00.250 Z,
    "remoteId": null
  }]
}
```

## <mark style="color:green;">`PUT`</mark> `/data/connection/{connectionKey}`

Update the connection information for the specified connection. Partial updates are not supported.

**Required Immuta permission**: `APPLICATION_ADMIN`

{% hint style="warning" %}
**What can be updated?**

Using this endpoint, you can only update connection information. To update other integration details, use the [<mark style="color:blue;">PUT</mark> <mark style="color:blue;">`/integrations/{id}`</mark>](https://documentation.immuta.com/latest/developer-guides/integrations-api/reference-guides/integrations-api#put-integrations-id) endpoint.
{% endhint %}

{% tabs %}
{% tab title="Snowflake username and password" %}

```
curl -X 'PUT' \
    'https://<your-immuta-url>/data/connection/yourConnectionKey' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: <your-bearer-token>' \
    -d '{
     "connection": {
       "technology": "Snowflake",
       "hostname": "<your-Snowflake-hostname-url>",
       "port": <your-Snowflake-port>,
       "warehouse": "<your-Snowflake-warehouse>",
       "role": "<your-Snowflake-role>",
       "authenticationType": "userPassword",
       "username": "<your-Snowflake-username>",
       "password": "<your-Snowflake-password>"
     }
    }'
```

{% endtab %}

{% tab title="Snowflake key pair" %}

```
curl -X 'PUT' \
    'https://<your-immuta-url>/data/connection/yourConnectionKey' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: <your-bearer-token>' \
    -d '{
     "connection": {
       "technology": "Snowflake",
       "hostname": "<your-Snowflake-hostname-url>",
       "port": <your-Snowflake-port>,
       "warehouse": "<your-Snowflake-warehouse>",
       "role": "<your-Snowflake-role>",
       "authenticationType": "keyPair",
       "username": "<the-Snowflake-username>",
       "privateKeyPassword": "<your-Snowflake-key-password>",
       "privateKey": {
         "keyName": "PRIV_KEY_FILE",
         "userFilename": "<your-private-key-file-name>",
         "content": "<-----BEGIN PRIVATE KEY-----your-private-key-----END PRIVATE KEY----->"
       }
     }
    }'
```

{% endtab %}

{% tab title="Snowflake OAuth with certificate" %}

```
curl -X 'PUT' \
    'https://<your-immuta-url>/data/connection/yourConnectionKey' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: <your-bearer-token>' \
    -d '{
     "connection": {
       "technology": "Snowflake",
       "hostname": "<your-Snowflake-hostname-url>",
       "port": <your-Snowflake-port>,
       "warehouse": "<your-Snowflake-warehouse>",
       "role": "<your-Snowflake-role>",
       "authenticationType": "oAuthClientCredentials",
       "oAuthClientConfig": {
         "useCertificate": true,
         "clientId": "<your-client-ID>",
         "authorityUrl": "<your-example.authority.com>",
         "scope": "session:role-any",
         "publicCertificateThumbprint": "<your-certificate-thumbprint>",
         "resource": "<your-optional-resource>",
         "oauthPrivateKey": {
           "keyName": "oauth client certificate",
           "userFilename": "<your-user-file.pem>",
           "content": "<-----BEGIN PRIVATE KEY-----your-private-key-----END PRIVATE KEY----->"
         }
       }
     }
    }'
```

{% endtab %}

{% tab title="Snowflake OAuth with secret" %}

```
curl -X 'PUT' \
    'https://<your-immuta-url>/data/connection/yourConnectionKey' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: <your-bearer-token>' \
    -d '{
     "connection": {
       "technology": "Snowflake",
       "hostname": "<your-Snowflake-hostname-url>",
       "port": <your-Snowflake-port>,
       "warehouse": "<your-Snowflake-warehouse>",
       "role": "<your-Snowflake-role>",
       "authenticationType": "oAuthClientCredentials",
       "oAuthClientConfig": {
         "useCertificate": false,
         "clientId": "<your-client-ID>",
         "authorityUrl": "<your-example.authority.com>",
         "scope": "session:role-any",
         "resource": "<your-optional-resource>",
         "clientSecret": "<your-client-secret>"
       }
     }
    }'
```

{% endtab %}

{% tab title="Databricks Unity Catalog" %}

```
curl -X 'PUT' \
    'https://<your-immuta-url>/data/connection/yourConnectionKey' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: <your-bearer-token>' \
    -d '{
     "connection": {
       "technology": "Databricks",
       "hostname": "<www.your-workspace.cloud.databricks.com>",
       "port": <your-Databricks-port>,
       "httpPath": "<your-Databricks-warehouse-path>",
       "authenticationType": "token",
       "token": "<your-service-principal-pat>"
     }
    }'
```

{% endtab %}
{% endtabs %}

#### Path parameters

| Attribute                  | Description                                                                                                           | Required |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------- |
| **connectionKey** `string` | The key to uniquely identify the connection. This is the same as the display name of the connection in the Immuta UI. | **Yes**  |

#### Body parameters

The connection parameters differ based on your backing technology. See the [Connection registration payload reference guide](https://documentation.immuta.com/latest/developer-guides/api-intro/connections-api/connection-registration-payloads-reference-guide) for details about the payloads.

#### Response schema

<table><thead><tr><th width="147">Attribute</th><th>Description</th></tr></thead><tbody><tr><td><strong>objectPath</strong> <code>string</code></td><td>The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the <code>connectionKey</code> and all names are separated by forward slashes.</td></tr><tr><td><strong>bulkId</strong> <code>string</code></td><td>A bulk ID that can be used to search for the status of background jobs triggered by this request.</td></tr></tbody></table>

#### Example response

```
{
  "objectPath": ['yourConnectionKey'],
  "bulkId": "a-new-uuid"
}
```

## <mark style="color:green;">`POST`</mark> `/data/crawl/{objectPath}`

Trigger object sync for the specified data object.

**Required Immuta permission**: `GOVERNANCE` or `APPLICATION_ADMIN` global permission or Data Owner on the object

```
curl -X 'POST' \
    'https://<your-immuta-url>/data/crawl/yourConnectionKey/yourDatabase/yourSchema' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: <your-bearer-token>' \
    -d '{
     "forceRecursive": false
     }'
```

#### Path parameters

<table><thead><tr><th width="172">Attribute</th><th width="372">Description</th><th>Required</th></tr></thead><tbody><tr><td><strong>objectPath</strong> <code>string</code></td><td>The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the <a data-footnote-ref href="#user-content-fn-1"><code>connectionKey</code></a> and all names should be separated by forward slashes (<code>/</code>). For example, <code>yourConnectionKey/yourDatabase/yourSchema</code>.</td><td><strong>Yes</strong></td></tr></tbody></table>

#### Query parameters

<table><thead><tr><th width="172">Attribute</th><th width="372">Description</th><th>Required</th></tr></thead><tbody><tr><td><strong>forceRecursive</strong> <code>boolean</code></td><td>If <code>false</code>, only active (enabled) objects will have object sync run. If <code>true</code>, both active (enabled) and inactive (disabled) data objects will be synced; any child objects from inactive (disabled) objects will be set as inactive (disabled). Defaults to <code>false</code>.</td><td>No.</td></tr></tbody></table>

#### Response schema

<table><thead><tr><th width="170">Attribute</th><th>Description</th></tr></thead><tbody><tr><td><strong>objectPath</strong> <code>string</code></td><td>The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the <code>connectionKey</code> and all names are separated by forward slashes.</td></tr><tr><td><strong>bulkId</strong> <code>string</code></td><td>A bulk ID that can be used to search for the status of background jobs triggered by this request.</td></tr></tbody></table>

#### Example response

```
{
  "objectPath": ['yourConnectionKey', 'yourDatabase', 'yourSchema'],
  "bulkId": 'the-job's-unique-identifier'
}
```

## <mark style="color:green;">`PUT`</mark> `/data/settings/{objectPath}`

Update the settings through overrides for the specified data object. All changes will trickle down to child objects as new overrides; however, existing overrides on child objects will still be respected. Data owners cannot be removed, only added. To remove data owners, edit the settings at the connection level.

**Required Immuta permission**: `APPLICATION_ADMIN` or `GOVERNANCE` global permission

```
curl -X 'PUT' \
    'https://<your-immuta-url>/data/settings/yourConnectionKey/yourDatabase' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: <your-bearer-token>' \
    -d '{
        "overrides": {
          "isActive": true,
          "activateNewChildren": true,
          "dataOwners": [{
            "id": 3,
            "type": "group"
          }]
        }
      }'
```

#### Path parameters

<table><thead><tr><th width="214">Attribute</th><th width="440">Description</th><th>Required</th></tr></thead><tbody><tr><td><strong>objectPath</strong> <code>string</code></td><td>The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the <a data-footnote-ref href="#user-content-fn-1"><code>connectionKey</code></a> and all names should be separated by forward slashes (<code>/</code>). For example, <code>yourConnectionKey/yourDatabase/yourSchema</code>.</td><td><strong>Yes</strong></td></tr></tbody></table>

#### Body parameters

<table><thead><tr><th width="300">Attribute</th><th width="419">Description</th><th>Required</th></tr></thead><tbody><tr><td><strong>overrides</strong> <code>object</code></td><td>A list of settings configured differently from the parent object's settings.</td><td>No</td></tr><tr><td>overrides.<strong>isActive</strong> <code>boolean</code></td><td><p>If <code>true</code>, the object and all its child objects are active (enabled).<br><br>If you enable a Databricks Unity Catalog data object and it has no subscription policy set on it, Immuta will REVOKE access to the data in Databricks for all Immuta users, even if they had been directly granted access to the table in Unity Catalog.</p><p>If a user is not registered in Immuta, Immuta will have no effect on that user's access to data in Unity Catalog. See the <a href="../../../../../configuration/integrations/databricks/databricks-unity-catalog/unity-catalog-overview#what-does-immuta-do-in-my-databricks-environment">Databricks Unity Catalog reference guide</a> for more details.</p></td><td>No</td></tr><tr><td>overrides.<strong>activateNewChildren</strong> <code>boolean</code></td><td>If <code>true</code>, all new children found during object sync will be registered as active (enabled).</td><td>No</td></tr><tr><td>overrides.<strong>dataOwners</strong> <code>array</code></td><td>A list of users and groups that are data owners on the connection. These users will be data owners for all the data sources under the data object they are assigned to.</td><td>No</td></tr><tr><td>overrides.dataOwners.<strong>id</strong> <code>integer</code></td><td>The ID of the user or group to make data owner.</td><td>No</td></tr><tr><td>overrides.dataOwners.<strong>type</strong> <code>string</code></td><td>The type to make data owner. Options are <code>user</code> or <code>group</code>.</td><td>No</td></tr></tbody></table>

#### Response schema

<table><thead><tr><th width="160">Attribute</th><th>Description</th></tr></thead><tbody><tr><td><strong>objectPath</strong> <code>string</code></td><td>The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the <code>connectionKey</code> and all names should be separated by forward slashes.</td></tr><tr><td><strong>technology</strong> <code>string</code></td><td>The backing technology of the connection. Options are <code>Databricks</code> or <code>Snowflake</code>.</td></tr><tr><td><strong>state</strong> <code>string</code></td><td>Whether the object is currently <code>active</code> (enabled) or <code>inactive</code> (disabled).</td></tr><tr><td><strong>settings</strong> <code>object</code></td><td>Specifications of the connection's settings, including status, new children status, and data owners.</td></tr><tr><td><strong>overrides</strong> <code>object</code></td><td>Specifications of the data object's settings that differ from its parents' settings.</td></tr><tr><td><strong>dataSourceId</strong> <code>integer</code></td><td>The ID of the data source if it is a table object that is active (enabled).</td></tr><tr><td><strong>createdAt</strong> <code>timestamp</code></td><td>The time the data object was created in Immuta.</td></tr><tr><td><strong>lastCrawled</strong> <code>timestamp</code></td><td>The time object sync was last run on the data object.</td></tr><tr><td><strong>remoteId</strong> <code>string</code></td><td>The ID of the remote data object.</td></tr><tr><td><strong>bulkId</strong> <code>string</code></td><td>A bulk ID that can be used to search for the status of background jobs triggered by this request.</td></tr></tbody></table>

#### Example response

```
{
  "objectPath": ["yourConnectionKey/yourDatabase"],
  "technology": "Snowflake",
  "state": "active",
  "settings": {
    "activateNewChildren": {
      "value": true,
      "hasDescendantsWithOverrides": true
    },
    "dataOwners": {
      "value": [{
        "id": 2,
        "type": "user"
      }],
      "hasDescendantsWithOverrides": true
    },
    "isActive": {
      "value": true,
      "hasDescendantsWithOverrides": true
    }
  },
  "overrides": [
    "isActive",
    "activateNewChildren",
    "dataOwners"
  ],
  "dataSourceId": null,
  "lastCrawled": 2023 - 08 - 21 T10: 39: 00.250 Z,
  "createdAt": 2023 - 08 - 21 T10: 39: 00.250 Z,
  "remoteId": null,
  "bulkId": 'the-job's-unique-identifier'
}

```

## <mark style="color:green;">`DELETE`</mark> `/data/object/{objectPath}`

Delete the given object and all its child objects. For example, if you delete a database, all its schemas and tables will also be deleted.

**Required Immuta permission**: `GOVERNANCE` or `APPLICATION_ADMIN` global permission or Data Owner on the object

{% hint style="info" %}
See the [Deregister a connection guide](https://documentation.immuta.com/latest/developer-guides/api-intro/connections-api/how-to-guides/deregister-a-connection) to delete a connection and all its data objects.
{% endhint %}

```
curl -X 'DELETE' \
    'https://<your-immuta-url>/data/object/yourConnectionKey/yourDatabase/yourSchema' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: <your-bearer-token>'
```

#### Path parameters

| Attribute               | Description                                                                                                                                                                                                                                                                                            | Required |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- |
| **objectPath** `string` | The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the [`connectionKey`](#user-content-fn-1)[^1] and all names should be separated by forward slashes (`/`). For example, `yourConnectionKey/yourDatabase/yourSchema`. | **Yes**  |

#### Response schema

| Attribute                | Description                                                                                                                                                                                            |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **objectPath** `string`  | The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the `connectionKey` and all names are separated by forward slashes. |
| **childCount** `integer` | The number of child objects of the data object that were deleted.                                                                                                                                      |

#### Example response

```
{
  "objectPath": ['yourConnectionKey', 'yourDatabase', 'yourSchema'],
  "childCount": 5
}
```

[^1]: This is the same as the display name of the connection in the Immuta UI.
