# Integrations API Endpoints

The integrations resource allows you to create, configure, and manage your integration. How Immuta manages and administers policies in your data platform varies by integration.

To configure or manage an integration, users must have the APPLICATION\_ADMIN Immuta permission.

## Endpoints

<table><thead><tr><th>Method</th><th width="367">Endpoint</th><th>Description</th></tr></thead><tbody><tr><td><strong>GET</strong></td><td><a href="#get-integrations"><mark style="color:blue;"><code>/integrations</code></mark></a></td><td>Gets all integration configurations</td></tr><tr><td><strong>POST</strong></td><td><a href="#post-integrations"><mark style="color:blue;"><code>/integrations</code></mark></a></td><td>Creates an integration</td></tr><tr><td><strong>DELETE</strong></td><td><a href="#delete-integrations-id"><mark style="color:blue;"><code>/integrations/{id}</code></mark></a></td><td>Deletes a configured integration</td></tr><tr><td><strong>GET</strong></td><td><a href="#get-integrations-id"><mark style="color:blue;"><code>/integrations/{id}</code></mark></a></td><td>Gets an integration configuration</td></tr><tr><td><strong>PUT</strong></td><td><a href="#put-integrations-id"><mark style="color:blue;"><code>/integrations/{id}</code></mark></a></td><td>Updates a configured integration</td></tr><tr><td><strong>POST</strong></td><td><a href="#post-integrations-id-regenerate"><mark style="color:blue;"><code>/integrations/{id}/regenerate</code></mark></a></td><td>Regenerates an Immuta API key for the configured integration</td></tr><tr><td><strong>GET</strong></td><td><a href="#get-integrations-id-status"><mark style="color:blue;"><code>/integrations/{id}/status</code></mark></a></td><td>Gets the status of the specified integration</td></tr><tr><td><strong>POST</strong></td><td><a href="#post-integrations-scripts-cleanup"><mark style="color:blue;"><code>/integrations/scripts/cleanup</code></mark></a></td><td>Creates a script to remove Immuta-managed resources from your platform for integrations that were not successfully created</td></tr><tr><td><strong>POST</strong></td><td><a href="#post-integrations-scripts-create"><mark style="color:blue;"><code>/integrations/scripts/create</code></mark></a></td><td>Creates a script to set up Immuta-managed resources in your platform</td></tr><tr><td><strong>POST</strong></td><td><a href="#post-integrations-id-scripts-delete"><mark style="color:blue;"><code>/integrations/{id}/scripts/delete</code></mark></a></td><td>Creates a script to remove Immuta-managed resources from your platform for integrations that were successfully configured</td></tr><tr><td><strong>POST</strong></td><td><a href="#post-integrations-id-scripts-edit"><mark style="color:blue;"><code>/integrations/{id}/scripts/edit</code></mark></a></td><td>Creates a script to edit existing Immuta-managed resources in your platform</td></tr><tr><td><strong>POST</strong></td><td><a href="#post-integrations-scripts-initial-create"><mark style="color:blue;"><code>/integrations/scripts/initial-create</code></mark></a></td><td>Creates the first script to set up Immuta-managed resources in your Azure Synapse Analytics or Redshift platform</td></tr><tr><td><strong>POST</strong></td><td><a href="#post-integrations-scripts-post-cleanup"><mark style="color:blue;"><code>/integrations/scripts/post-cleanup</code></mark></a></td><td>Creates the second script to remove Immuta-managed resources from your Azure Synapse Analytics integration if it was not successfully created</td></tr></tbody></table>

## GET /integrations

Gets all integration configurations.

```bash
curl -X 'GET' \
    'https://www.organization.immuta.com/integrations' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'
```

### Response

The response returns the configuration for all integrations. See the [response schema reference](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/reference-guides/response-schema) for details about the response schema. An unsuccessful request returns the status code and an error message. See the [HTTP status codes and error messages](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/status-codes#get-error) for a list of statuses, error messages, and troubleshooting guidance.

```json
[
  {
    "id": "1",
    "status": "enabled",
    "validationResults": {
      "status": "passed",
      "validationTests": [
      {
        "name": "Initial Validation: Basic Connection Test",
        "status": "passed"
      },
      {
        "name": "Initial Validation: Default Warehouse Access Test",
        "status": "passed",
        "result": []
      },
      {
        "name": "Initial Validation: Validate access to Privileged Role",
        "status": "passed",
        "result": []
      },
      {
        "name": "Validate Automatic: Database Does Not Exist",
        "status": "passed"
      },
      {
        "name": "Validate Automatic: Impersonation Role Does Not Exist",
        "status": "skipped"
      },
      {
        "name": "Validate Automatic Bootstrap User Grants",
        "status": "passed"
      }
    ] },
    "type": "Snowflake",
    "autoBootstrap": true,
    "config": {
      "host": "organization.us-east-1.snowflakecomputing.com",
      "warehouse": "SAMPLE_WAREHOUSE",
      "database": "SNOWFLAKE_SAMPLE_DATA",
      "port": 443,
      "audit": {
        "enabled": false
      },
      "workspaces": {
        "enabled": false
      },
      "impersonation": {
        "enabled": false
      },
      "lineage": {
        "enabled": false
      },
      "authenticationType": "userPassword",
      "username": "<REDACTED>",
      "password": "<REDACTED>",
      "role": "ACCOUNTADMIN"
    }
]
```

## POST /integrations

Creates an integration configuration that allows Immuta to manage access policies on data registered in Immuta.

### Amazon S3 example

When you connect Immuta to your AWS account, the `awsLocationPath` is the base S3 location prefix that Immuta will use for this connection when registering S3 data sources.

This request configures the integration using the AWS access key authentication method.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Native S3",
    "autoBootstrap": false,
    "config": {
      "name": "S3 integration",
      "awsAccountId": "123456789",
      "awsRegion": "us-east-1",
      "awsLocationRole": "arn:aws:iam::123456789:role/access-grants-instance-role",
      "awsLocationPath": "s3://",
      "authenticationType": "accessKey",
      "awsAccessKeyId": "123456789",
      "awsSecretAccessKey": "123456789"
    }
    }'
```

### Azure Synapse Analytics example

When you connect Immuta to your Azure Synapse Analytics account, the schema you specify is where all the policy-enforced views will be created and managed by Immuta.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Azure Synapse Analytics",
    "autoBootstrap": true,
    "config": {
      "host": "organization.azure.com",
      "schema": "sample_schema",
      "database": "immuta",
      "metadataDelimiters": {
        "hashDelimiter": "|",
        "hashKeyDelimiter": "-",
        "arrayDelimiter": ","
      },
      "username": "taylor@synapse.com",
      "password": "abc1234",
      "authenticationType": "userPassword"
    }
    }'
```

### Google BigQuery example

When you connect Immuta to your Google BigQuery account, the dataset you specify is where all the policy-enforced views will be created and managed by Immuta.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Google BigQuery",
    "autoBootstrap": false,
    "config": {
      "role": "immuta",
      "datasetSuffix": "_secureView",
      "dataset": "immuta",
      "location": "us-east-1",
      "credential": "{\"type\":\"service_account\",\"project_id\":\"innate-conquest-123456\",\"private_key_id\":\"9163c12345690924f5dd218ff39\",\"private_key\":\"-----BEGIN PRIVATE KEY-----\nXXXXXXXro0s\n/yQlPQijowkccmrmWJyr93kdLnwJzBvLHCto/+W\ncvF2ygX9oM/dyUK//z//4nptMp+Ck//Yw3D4rIBwGu4DWiR1qRnf\nDoGyXfThPTQ==\n-----END PRIVATE KEY-----\n\",\"client_email\":\"service-account-id@innate-conquest-123456.iam.gserviceaccount.com\",\"client_id\":\"1166290***432952487857\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/service-account-id%40innate-conquest-123456.iam.gserviceaccount.com\",\"universe_domain\":\"googleapis.com\"}"
    }
    }'
```

### Redshift example

When you connect Immuta to your Amazon Redshift account, the Immuta system user will use the database you specify to manage and store metadata.

This request below generates the script that will be run in the Amazon Redshift environment to set up Immuta-managed resources. The username and password provided are credentials for a system account that can manage the database.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations/scripts/create' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Redshift",
    "autoBootstrap": false,
    "config": {
      "host": "organization.aws.amazon.com",
      "database": "immuta",
      "impersonation": {
        "enabled": false
      },
      "authenticationType": "userPassword",
      "username": "taylor@redshift.com",
      "password": "abc1234"
    }
    }'
```

See the [Configure an Amazon Redshift Spectrum integration guide](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/configure-an-amazon-redshift-spectrum-integration#configure-the-integration) for instructions on completing the setup.

### Snowflake example

When you connect Immuta to your Snowflake account, the warehouse you specify is the default pool of compute resources the Immuta system user will use to run queries and perform other Snowflake operations.

This request specifies `userPassword` authentication type. The username and password provided are credentials of a Snowflake account attached to a role with [these privileges](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/snowflake-api#requirements). These credentials are not stored; they are used by Immuta to configure the integration.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Snowflake",
    "autoBootstrap": true,
    "config": {
      "host": "organization.us-east-1.snowflakecomputing.com",
      "warehouse": "SAMPLE_WAREHOUSE",
      "database": "SNOWFLAKE_SAMPLE_DATA",
      "authenticationType": "userPassword",
      "username": "taylor@snowflake.com",
      "password": "abc1234",
      "role": "ACCOUNTADMIN"
    }
    }'
```

### Starburst (Trino) example

When you configure the Starburst (Trino) integration, Immuta generates an API key and configuration snippet on the Immuta app settings page that you will use to configure your Starburst cluster.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Trino"
    }'
```

### Body parameters

The request accepts a JSON or YAML payload with the parameters outlined below.

<table><thead><tr><th>Parameter</th><th>Description</th><th>Required or optional</th><th width="117">Default values</th><th>Accepted values</th></tr></thead><tbody><tr><td><strong>type</strong> <code>string</code></td><td>The type of integration to configure.</td><td>Required</td><td>-</td><td><ul><li><code>Azure Synapse Analytics</code></li><li><code>Google BigQuery</code></li><li><code>Native S3</code></li><li><code>Redshift</code></li><li><code>Snowflake</code></li><li><code>Trino</code></li></ul></td></tr><tr><td><strong>autoBootstrap</strong> <code>boolean</code></td><td>When <code>true</code>, Immuta will automatically configure the integration in your Azure Synapse Analytics or Snowflake environment for you. When <code>false</code>, you must set up your environment manually before configuring the integration with the API. This parameter must be set to <code>false</code> in the Amazon Redshift Spectrum, Amazon S3, and Google BigQuery configurations. See the specific how-to guide for configuring your integration for details: <a href="../how-to-guides/synapse-api">Azure Synapse Analytics</a> or <a href="../how-to-guides/snowflake-api">Snowflake</a>.</td><td>Required for all integrations except Starburst (Trino)</td><td>-</td><td><code>true</code> or <code>false</code></td></tr><tr><td><strong>config</strong> <code>object</code></td><td>This object specifies the integration settings. See the <strong>config</strong> object description for your integration for details: <a href="../integration-configuration-payload#redshift-configuration-objects">Amazon Redshift Spectrum</a>, <a href="../integration-configuration-payload#amazon-s3-configuration-object">Amazon S3</a>, <a href="../integration-configuration-payload#azure-synapse-analytics-configuration-objects">Azure Synapse Analytics</a>, <a href="../integration-configuration-payload#google-bigquery-configuration-object">Google BigQuery</a>, or <a href="../integration-configuration-payload#snowflake-configuration-objects">Snowflake</a>.</td><td>Required for all integrations except Starburst (Trino)</td><td>-</td><td>-</td></tr></tbody></table>

### Query parameter

| Parameter            | Description                                                                                                                      | Required or optional |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| **dryRun** `boolean` | When `true`, the integration configuration will not actually be created, and the response returns the validation tests statuses. | Optional             |

### Response

The response returns the status of the integration configuration connection. See the [response schema reference](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/reference-guides/response-schema) for details about the response schema.

{% tabs %}
{% tab title="200 response" %}
A successful response includes the validation tests statuses.

```json
{
  "id": "123456789",
  "status": "creating",
  "validationResults": {
    "status": "passed",
    "validationTests": [
    {
      "name": "Initial Validation: Basic Connection Test",
      "status": "passed"
    },
    {
      "name": "Initial Validation: Default Warehouse Access Test",
      "status": "passed",
      "result": []
    },
    {
      "name": "Initial Validation: Validate access to Privileged Role",
      "status": "passed",
      "result": []
    },
    {
      "name": "Validate Automatic: Database Does Not Exist",
      "status": "passed"
    },
    {
      "name": "Validate Automatic: Impersonation Role Does Not Exist",
      "status": "skipped"
    },
    {
      "name": "Validate Automatic Bootstrap User Grants",
      "status": "passed"
    }
    ]
  }
}
```

{% endtab %}

{% tab title="Unsuccessful request" %}
An unsuccessful request returns the status code and an error message. See the [HTTP status codes and error messages](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/status-codes#post-errors) for a list of statuses, error messages, and troubleshooting guidance.

```json
{
  "statusCode": 409,
  "error": "Conflict",
  "message": "Snowflake integration already exists on host organization.us-east-1.snowflakecomputing.com (id = 123456789)"
}
```

{% endtab %}
{% endtabs %}

## DELETE /integrations/{id}

Deletes the integration configuration you specify in the request.

```bash
curl -X 'DELETE' \
    'https://www.organization.immuta.com/integrations/123456789' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "authenticationType": "userPassword",
    "username": "taylor@snowflake.com",
    "password": "abc1234",
    "role": "ACCOUNTADMIN"
    }'
```

### Request parameter

| Parameter       | Description                                             | Required or optional |
| --------------- | ------------------------------------------------------- | -------------------- |
| **id** `number` | The unique identifier of the integration configuration. | Required             |

### Query parameter

| Parameter                  | Description                                                                                                                        | Required or optional |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| **dryRun** `boolean`       | When `true`, the integration configuration will not actually be deleted, and the response returns the validation tests statuses.   | Optional             |
| **forceDisable** `boolean` | When `true`, the integration will be deleted in Immuta. Users must manually remove all Immuta objects in the remote data platform. | Optional             |

### Body parameters

For Amazon Redshift Spectrum integrations, Amazon S3 integrations, Google BigQuery integrations, Starburst (Trino) integrations, or integration configurations with **autoBootstrap** set to `false`, no payload is required to delete the integration.

For the integrations below, the request accepts a JSON or YAML payload when **autoBootstrap** is set to `true`. See the payload description for your integration for parameters and details:

* [Delete Azure Synapse Analytics integration payload](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#delete-azure-synapse-analytics-payload)
* [Delete Snowflake integration payload](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#delete-snowflake-integration-payload)

### Response

The response returns the status of the integration configuration that has been deleted. See the [response schema reference](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/reference-guides/response-schema) for details about the response schema. An unsuccessful request returns the status code and an error message. See the [HTTP status codes and error messages](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/status-codes#delete-errors) for a list of statuses, error messages, and troubleshooting guidance.

```json
{
  "id": "123456789",
  "status": "deleting",
  "validationResults": {
    "status": "passed",
    "validationTests": [
    {
      "name": "Initial Validation: Basic Connection Test",
      "status": "passed"
    },
    {
      "name": "Initial Validation: Default Warehouse Access Test",
      "status": "passed",
      "result": []
    },
    {
      "name": "Initial Validation: Validate access to Privileged Role",
      "status": "passed",
      "result": []
    },
    {
      "name": "Validate Automatic: Database Does Not Exist",
      "status": "passed"
    },
    {
      "name": "Validate Automatic: Impersonation Role Does Not Exist",
      "status": "skipped"
    },
    {
      "name": "Validate Automatic Bootstrap User Grants",
      "status": "passed"
    }
    ]
  }
}
```

## GET /integrations/{id}

Gets the integration configuration you specify in the request.

```bash
curl -X 'GET' \
    'https://www.organization.immuta.com/integrations/123456789' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'
```

### Request parameter

| Parameter       | Description                                             | Required or optional |
| --------------- | ------------------------------------------------------- | -------------------- |
| **id** `number` | The unique identifier of the integration configuration. | Required             |

### Response

The response returns an integration configuration. See the [response schema reference](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/reference-guides/response-schema) for details about the response schema. An unsuccessful request returns the status code and an error message. See the [HTTP status codes and error messages](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/status-codes#get-error) for a list of statuses, error messages, and troubleshooting guidance.

```json
{
  "id": "123456789",
  "status": "enabled",
  "validationResults": {
    "status": "passed",
    "validationTests": [
    {
      "name": "Initial Validation: Basic Connection Test",
      "status": "passed"
    }, {
      "name": "Initial Validation: Default Warehouse Access Test",
      "result": [],
      "status": "passed"
    }, {
      "name": "Initial Validation: Table Grants Role Prefix is Unique",
      "status": "passed"
    }, {
      "name": "Initial Validation: Validate access to Privileged Role",
      "result": [],
      "status": "passed"
    }, {
      "name": "Validate Automatic: Database Does Not Exist",
      "status": "passed"
    }, {
      "name": "Validate Automatic: Impersonation Role Does Not Exist",
      "status": "skipped"
    }, {
      "name": "Validate Automatic Bootstrap User Grants",
      "status": "passed"
    }]
  },
  "type": "Snowflake",
  "autoBootstrap": true,
  "config": {
    "host": "organization.us-east-1.snowflakecomputing.com",
    "warehouse": "SAMPLE_WAREHOUSE",
    "database": "SNOWFLAKE_SAMPLE_DATA",
    "port": 443,
    "audit": {
      "enabled": false
    },
    "workspaces": {
      "enabled": false
    },
    "impersonation": {
      "enabled": false
    },
    "lineage": {
      "enabled": false
    },
    "authenticationType": "userPassword",
    "username": "<REDACTED>",
    "password": "<REDACTED>",
    "role": "ACCOUNTADMIN"
  }
}
```

## PUT /integrations/{id}

Updates an existing integration configuration.

### Amazon S3 example

This request changes the name of the integration.

```bash
curl -X 'PUT' \
    'https://www.organization.immuta.com/integrations/123456789' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Native S3",
    "autoBootstrap": false,
    "config": {
      "name": "S3 integration edited",
      "awsAccountId": "123456789",
      "awsRegion": "us-east-1",
      "awsLocationRole": "arn:aws:iam::123456789:role/access-grants-instance-role",
      "awsLocationPath": "s3://",
      "authenticationType": "accessKey",
      "awsAccessKeyId": "123456789",
      "awsSecretAccessKey": "123456789"
    }
    }'
```

### Azure Synapse Analytics example

This request enables user impersonation for the Azure Synapse Analytics integration.

```bash
curl -X 'PUT' \
    'https://www.organization.immuta.com/integrations/123456789' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Azure Synapse Analytics",
    "autoBootstrap": true,
    "config": {
      "host": "organization.azure.com",
      "schema": "sample_schema",
      "database": "immuta",
      "impersonation": {
        "enabled": true,
        "role": "IMMUTA_IMPERSONATION"
      },
      "metadataDelimiters": {
        "hashDelimiter": "|",
        "hashKeyDelimiter": "-",
        "arrayDelimiter": ","
      },
      "username": "taylor@synapse.com",
      "password": "abc1234",
      "authenticationType": "userPassword"
    }
    }'
```

### Google BigQuery example

This request updates the private key for the Google BigQuery integration.

```bash
  curl -X 'PUT' \
    'https://www.organization.immuta.com/integrations/{id}' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Google BigQuery",
    "autoBootstrap": false,
    "config": {
      "role": "immuta",
      "datasetSuffix": "_secureView",
      "dataset": "immuta",
      "location": "us-east-1",
      "credential": "{\"type\":\"service_account\",\"project_id\":\"innate-conquest-123456\",\"private_key_id\":\"9163c12345690924f5dd218ff39\",\"private_key\":\"-----BEGIN PRIVATE KEY-----\nXXXXXXXro0s\n/yQlPQijowkccmrmWJyr93kdLnwJzBvLHCto/+W\ncvF2ygX9oM/dyUK//z//4nptMp+Ck//Yw3D4rIBwGu4DWiR1qRnf\nDoGyXfThPTQ==\n-----END PRIVATE KEY-----\n\",\"client_email\":\"service-account-id@innate-conquest-123456.iam.gserviceaccount.com\",\"client_id\":\"1166290***432952487857\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/service-account-id%40innate-conquest-123456.iam.gserviceaccount.com\",\"universe_domain\":\"googleapis.com\"}"
    }
    }'
```

### Redshift example

This request enables user impersonation for the Amazon Redshift Spectrum integration. See the [Configure an Amazon Redshift Spectrum integration guide](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/configure-an-amazon-redshift-spectrum-integration#update-an-integration-configuration) for instructions on completing the edit to the integration.

```bash
curl -X 'PUT' \
    'https://www.organization.immuta.com/integrations/123456789' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Redshift",
    "autoBootstrap": false,
    "config": {
      "host": "organization.aws.amazon.com",
      "database": "immuta",
      "impersonation": {
        "enabled": true,
        "role": "immuta_impersonation"
      },
      "authenticationType": "userPassword",
      "username": "taylor@redshift.com",
      "password": "abc1234"
    }
    }'
```

### Snowflake example

This request enables auditing queries run in Snowflake.

```bash
curl -X 'PUT' \
    'https://www.organization.immuta.com/integrations/123456789' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Snowflake",
    "autoBootstrap": true,
    "config": {
      "host": "organization.us-east-1.snowflakecomputing.com",
      "warehouse": "SAMPLE_WAREHOUSE",
      "database": "SNOWFLAKE_SAMPLE_DATA",
      "audit": {
        "enabled": true
      },
      "authenticationType": "userPassword",
      "username": "taylor@snowflake.com",
      "password": "abc1234",
      "role": "ACCOUNTADMIN"
    }
    }'
```

### Body parameters

The request accepts a JSON or YAML payload with the parameters outlined below.

| Parameter                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Required or optional | Default values | Accepted values                                                                                                                                          |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **type** `string`           | The type of integration to configure.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Required             | -              | <ul><li><code>Azure Synapse Analytics</code></li><li><code>Google BigQuery</code></li><li><code>Redshift</code></li><li><code>Snowflake</code></li></ul> |
| **autoBootstrap** `boolean` | When `true`, Immuta will automatically configure the integration in your Azure Synapse Analytics, or Snowflake environment for you. When `false`, you must set up your environment manually before configuring the integration with the API. This parameter must be set to `false` in the Amazon Redshift Spectrum, Amazon S3, or Google BigQuery configuration. See the specific how-to guide for configuring other integrations: [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/how-to-guides/synapse-api) or [Snowflake](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/how-to-guides/snowflake-api).                                                                                                                                                                                                                                                                                                                 | Required             | -              | `true` or `false`                                                                                                                                        |
| **config** `object`         | This object specifies the integration settings. See the **config** object description for your integration for details: [Amazon Redshift Spectrum](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#redshift-configuration-objects), [Amazon S3](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#amazon-s3-configuration-object), [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#azure-synapse-analytics-configuration-objects), [Google BigQuery](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#google-bigquery-configuration-object), or [Snowflake](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#snowflake-configuration-objects). | Required             | -              | -                                                                                                                                                        |

### Query parameter

| Parameter            | Description                                                                                                                      | Required or optional |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| **dryRun** `boolean` | When `true`, the integration configuration will not actually be updated, and the response returns the validation tests statuses. | Optional             |

### Response

The response returns the status of the integration configuration connection. See the [response schema reference](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/reference-guides/response-schema) for details about the response schema.

{% tabs %}
{% tab title="200 response" %}
A successful response includes the validation tests statuses.

```json
{
  "id": "123456789",
  "status": "editing",
  "validationResults": {
    "status": "passed",
    "validationTests": [
    {
      "name": "Initial Validation: Basic Connection Test",
      "status": "passed"
    },
    {
      "name": "Initial Validation: Default Warehouse Access Test",
      "status": "passed",
      "result": []
    },
    {
      "name": "Initial Validation: Validate access to Privileged Role",
      "status": "passed",
      "result": []
    },
    {
      "name": "Validate Automatic: Database Does Not Exist",
      "status": "passed"
    },
    {
      "name": "Validate Automatic: Impersonation Role Does Not Exist",
      "status": "skipped"
    },
    {
      "name": "Validate Automatic Bootstrap User Grants",
      "status": "passed"
    }
    ]
  }
}
```

{% endtab %}

{% tab title="Unsuccessful request" %}
An unsuccessful request returns the status code and an error message. See the [HTTP status codes and error messages](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/status-codes#put-errors) for a list of statuses, error messages, and troubleshooting guidance.

```json
{
  "statusCode": 409,
  "error": "Conflict",
  "message": "Unable to edit integration with ID 123456789 in current state editing."
}
```

{% endtab %}
{% endtabs %}

## POST /integrations/{id}/regenerate

Regenerates an Immuta API key for the configured integration.

### Starburst (Trino) example

This request regenerates an Immuta API key for the configured Starburst (Trino) integration. Once you make this request, your old Immuta API key will be deleted and will no longer be valid. See the [Configure a Starburst (Trino) integration page](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/trino-api#generate-a-new-immuta-api-key) for instructions on updating your Starburst (Trino) integration to use the new API key.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations/123456789/regenerate' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'
```

### Response

The response returns the new Immuta API key. An unsuccessful request returns the status code and an error message. See the [HTTP status codes and error messages page](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/status-codes#post-errors) for a list of statuses, error messages, and troubleshooting guidance.

```json
{ "newKey": "5bb6cae9******300c21acbb" }
```

## GET /integrations/{id}/status

Gets the status of the integration specified in the request.

```bash
curl -X 'GET' \
    'https://www.organization.immuta.com/integrations/123456789/status' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'
```

### Request parameter

| Parameter       | Description                                             | Required or optional |
| --------------- | ------------------------------------------------------- | -------------------- |
| **id** `number` | The unique identifier of the integration configuration. | Required             |

### Response

The response returns the [status](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/response-schema#integration-statuses) of the specified integration. An unsuccessful request returns the HTTP status code and an error message. See the [HTTP status codes and error messages](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/status-codes#get-error) for a list of statuses, error messages, and troubleshooting guidance.

```json
{"id":123456789,"status":"enabled"}
```

## POST /integrations/scripts/cleanup

Creates a script to remove Immuta-managed resources from your platform. This endpoint is for Amazon Redshift Spectrum, Azure Synapse Analytics, and Snowflake integrations that were not successfully created and, therefore, do not have an integration ID.

For Azure Synapse Analytics integrations, you must also make a request to the [/integrations/scripts/post-cleanup endpoint](#post-integrationsscriptspost-cleanup) to create another script that will finish removing Immuta-managed resources from the platform.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations/scripts/cleanup' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Snowflake",
    "autoBootstrap": false,
    "config": {
      "host": "organization.us-east-1.snowflakecomputing.com",
      "warehouse": "SAMPLE_WAREHOUSE",
      "database": "SNOWFLAKE_SAMPLE_DATA",
      "audit": {
        "enabled": true
      },
      "workspaces": {
        "enabled": false
      },
      "impersonation": {
        "enabled": false
      },
      "authenticationType": "userPassword",
      "username": "IMMUTA_SYSTEM_ACCOUNT",
      "password": "abc1234"
    }
    }'
```

### Body parameters

The request accepts a JSON or YAML payload with the parameters outlined below.

| Parameter                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Required or optional | Default values | Accepted values                                                                                                     |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------- |
| **type** `string`           | The type of integration to clean up.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Required             | -              | <ul><li><code>Azure Synapse Analytics</code></li><li><code>Redshift</code></li><li><code>Snowflake</code></li></ul> |
| **autoBootstrap** `boolean` | Set to `false` to specify that you will run the script in your environment yourself to clean up the integration resources. See the [Amazon Redshift Spectrum](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/configure-an-amazon-redshift-spectrum-integration#delete-an-integration), [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/synapse-api#delete-an-integration), or [Snowflake](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/snowflake-api#delete-an-integration) section for details.                                                | Required             | -              | `false`                                                                                                             |
| **config** `object`         | This object specifies the integration settings. See the **config** object description for your integration for details: [Amazon Redshift Spectrum](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#redshift-configuration-objects), [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#azure-synapse-analytics-configuration-objects), or [Snowflake](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#snowflake-configuration-objects). | Required             | -              | -                                                                                                                   |

### Response

The response returns the script that you will run in your Amazon Redshift Spectrum, Azure Synapse Analytics, or Snowflake environment.

Once you have run the script,

* use the `DELETE /integrations/{id}` endpoint to delete your Amazon Redshift Spectrum or Snowflake integration in Immuta:
  * [Delete Amazon Redshift Spectrum integration](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/configure-an-amazon-redshift-spectrum-integration#delete-an-integration)
  * [Delete Snowflake integration](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/snowflake-api#delete-an-integration)
* use the [/integrations/scripts/post-cleanup endpoint](#post-integrationsscriptspost-cleanup) to create another script that will finish removing Immuta-managed resources from your Azure Synapse Analytics platform.

## POST /integrations/scripts/create

Creates a script for you to run manually to set up objects and resources for Immuta to manage and enforce access controls on your data. This endpoint is available for Amazon Redshift Spectrum, Azure Synapse Analytics, and Snowflake integrations.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations/scripts/create' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Snowflake",
    "autoBootstrap": false,
    "config": {
      "host": "organization.us-east-1.snowflakecomputing.com",
      "warehouse": "SAMPLE_WAREHOUSE",
      "database": "SNOWFLAKE_SAMPLE_DATA",
      "audit": {
        "enabled": false
      },
      "workspaces": {
        "enabled": false
      },
      "impersonation": {
        "enabled": false
      },
      "authenticationType": "userPassword",
      "username": "IMMUTA_SYSTEM_ACCOUNT",
      "password": "abc1234"
    }
    }'
```

### Body parameters

The request accepts a JSON or YAML payload with the parameters outlined below.

| Parameter                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Required or optional | Default values | Accepted values                                                                                                     |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------- |
| **type** `string`           | The type of integration to configure.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Required             | -              | <ul><li><code>Azure Synapse Analytics</code></li><li><code>Redshift</code></li><li><code>Snowflake</code></li></ul> |
| **autoBootstrap** `boolean` | Set to `false` to specify that you will run the script in your environment yourself to configure the integration. You must run the Immuta script before creating the integration. See the [Amazon Redshift Spectrum](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/configure-an-amazon-redshift-spectrum-integration#configure-the-integration), [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/synapse-api#manual-setup), or [Snowflake](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/snowflake-api#manual-setup) guides for details.        | Required             | -              | `false`                                                                                                             |
| **config** `object`         | This object specifies the integration settings. See the **config** object description for your integration for details: [Amazon Redshift Spectrum](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#redshift-configuration-objects), [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#azure-synapse-analytics-configuration-objects), or [Snowflake](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#snowflake-configuration-objects). | Required             | -              | -                                                                                                                   |

### Response

The response returns the script that you will run in your Amazon Redshift Spectrum, Azure Synapse Analytics, or Snowflake environment.

## POST /integrations/{id}/scripts/delete

Creates a script to remove Immuta-managed resources from your platform. This endpoint is for Amazon Redshift Spectrum, Azure Synapse Analytics, and Snowflake integrations that were successfully created.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations/1/scripts/delete' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'
```

### Response

The response returns the script that you will run in your Amazon Redshift Spectrum, Azure Synapse Analytics, or Snowflake environment.

Once you have run the script, use the `DELETE /integrations/{id}` endpoint to delete your integration in Immuta:

* [Delete Amazon Redshift Spectrum integration](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/configure-an-amazon-redshift-spectrum-integration#delete-an-integration)
* [Delete Azure Synapse Analytics integration](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/synapse-api#delete-an-integration)
* [Delete Snowflake integration](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/snowflake-api#delete-an-integration)

## POST /integrations/{id}/scripts/edit

Creates a script for you to run manually to edit objects and resources managed by Immuta in your platform. This endpoint is available for Amazon Redshift Spectrum, Azure Synapse Analytics, and Snowflake integrations.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations/1/scripts/edit' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Snowflake",
    "autoBootstrap": false,
    "config": {
      "host": "organization.us-east-1.snowflakecomputing.com",
      "warehouse": "SAMPLE_WAREHOUSE",
      "database": "SNOWFLAKE_SAMPLE_DATA",
      "audit": {
        "enabled": true
      },
      "workspaces": {
        "enabled": false
      },
      "impersonation": {
        "enabled": false
      },
      "authenticationType": "userPassword",
      "username": "IMMUTA_SYSTEM_ACCOUNT",
      "password": "abc1234"
    }
    }'
```

### Body parameters

The request accepts a JSON or YAML payload with the parameters outlined below.

| Parameter                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Required or optional | Default values | Accepted values                                                                                                     |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------- |
| **type** `string`           | The type of integration to configure.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Required             | -              | <ul><li><code>Azure Synapse Analytics</code></li><li><code>Redshift</code></li><li><code>Snowflake</code></li></ul> |
| **autoBootstrap** `boolean` | Set to `false` to specify that you will run the script in your environment yourself to configure the integration. You must run the Immuta script before creating the integration. See the [Amazon Redshift Spectrum](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/configure-an-amazon-redshift-spectrum-integration#manual-update), [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/synapse-api#manual-update), or [Snowflake](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/snowflake-api#manual-update) manual setup guides for details.                                                                        | Required             | -              | `false`                                                                                                             |
| **config** `object`         | This object specifies the integration settings. Some settings cannot be changed once an integration is configured. See the **config** object description for your integration for details: [Amazon Redshift Spectrum](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#redshift-configuration-objects), [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#azure-synapse-analytics-configuration-objects), or [Snowflake](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#snowflake-configuration-objects). | Required             | -              | -                                                                                                                   |

### Response

The response returns the script that you will run in your Amazon Redshift Spectrum, Azure Synapse Analytics, or Snowflake environment. Once you have run the script, use the `PUT /integrations/{id}` endpoint to finish editing your integration:

* [Configure Amazon Redshift Spectrum integration](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/configure-an-amazon-redshift-spectrum-integration#update-an-integration-configuration)
* [Configure Azure Synapse Analytics integration](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/synapse-api#update-an-integration-configuration)
* [Configure Snowflake integration](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/snowflake-api#update-an-integration-configuration)

## POST /integrations/scripts/initial-create

Creates the first script for you to run manually to set up the objects and resources for Immuta to manage and enforce access controls on your data in Azure Synapse Analytics integration.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations/scripts/initial-create' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Azure Synapse Analytics",
    "autoBootstrap": false,
    "config": {
      "host": "organization.azure.com",
      "schema": "sample_schema",
      "database": "immuta",
      "metadataDelimiters": {
        "hashDelimiter": "|",
        "hashKeyDelimiter": "-",
        "arrayDelimiter": ","
      },
      "username": "taylor@synapse.com",
      "password": "abc1234",
      "authenticationType": "userPassword"
    }
    }'
```

### Body parameters

The request accepts a JSON or YAML payload with the parameters outlined below.

| Parameter                   | Description                                                                                                                                                                                                                                                                                                                                                  | Required or optional | Default values | Accepted values           |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------- | -------------- | ------------------------- |
| **type** `string`           | The type of integration to configure.                                                                                                                                                                                                                                                                                                                        | Required             | -              | `Azure Synapse Analytics` |
| **autoBootstrap** `boolean` | Set to `false` to specify that you will run the script in your environment yourself to configure the integration. You must run the Immuta script before creating the integration. See the [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/synapse-api#manual-setup) manual setup guide for details. | Required             | -              | `false`                   |
| **config** `object`         | This object specifies the integration settings. See the **config** object description of the [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#azure-synapse-analytics-configuration-objects) integration configuration for details.                             | Required             | -              | -                         |

### Response

The response returns the script that you will run in your Azure Synapse Analytics environment.

Once you have run this script, use the [/integrations/scripts/create endpoint](#post-integrationsscriptscreate) to generate a script to finish creating the Immuta-managed resources in your platform.

## POST /integrations/scripts/post-cleanup

{% hint style="info" %}
This cleanup script is not required for Azure Synapse Analytics integrations configured using the OAuth authentication method.
{% endhint %}

Creates a second script to remove the final Immuta-managed resources from your Azure Synapse Analytics platform. This endpoint is for Azure Synapse Analytics integrations that were not successfully created and, therefore, do not have an integration ID.

Before making a request like the one below, you must make a request to the [/integrations/scripts/cleanup endpoint](#post-integrationsscriptscleanup) to create the first script that will remove the initial Immuta-managed resources from the platform.

```bash
curl -X 'POST' \
    'https://www.organization.immuta.com/integrations/scripts/post-cleanup' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
    -d '{
    "type": "Azure Synapse Analytics",
    "autoBootstrap": false,
    "config": {
      "host": "organization.azure.com",
      "schema": "sample_schema",
      "database": "immuta",
      "metadataDelimiters": {
        "hashDelimiter": "|",
        "hashKeyDelimiter": "-",
        "arrayDelimiter": ","
      },
      "username": "taylor@synapse.com",
      "password": "abc1234",
      "authenticationType": "userPassword"
    }
    }'
```

### Body parameters

The request accepts a JSON or YAML payload with the parameters outlined below.

| Parameter                   | Description                                                                                                                                                                                                                                                                                                      | Required or optional | Default values | Accepted values           |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | -------------- | ------------------------- |
| **type** `string`           | The type of integration to clean up.                                                                                                                                                                                                                                                                             | Required             | -              | `Azure Synapse Analytics` |
| **autoBootstrap** `boolean` | Set to `false` to specify that you will run the script in your environment yourself to clean up the integration resources. See the [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/synapse-api#delete-an-integration) manual setup section for details. | Required             | -              | `false`                   |
| **config** `object`         | This object specifies the integration settings. See the **config** object description of [Azure Synapse Analytics](https://documentation.immuta.com/saas/developer-guides/api-intro/integrations-api/integration-configuration-payload#azure-synapse-analytics-configuration-objects) for details.               | Required             | -              | -                         |

### Response

The response returns the script that you will run in your Azure Synapse Analytics environment.

Once you have run the script, use the `DELETE /integrations/{id}` endpoint to delete your integration in Immuta by following the [Delete Azure Synapse Analytics integration](https://documentation.immuta.com/saas/developer-guides/api-intro/how-to-guides/synapse-api#delete-an-integration) instructions.
