curl -X 'POST' \
'https://www.organization.immuta.com/integrations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
-d '{
"type": "Trino"
}'{
"id": "123456789",
"status": "creating",
"validationResults": {
"status": "passed",
"validationTests": [ ]
}
}{
"statusCode": 422,
"error": "Unprocessable entity",
"message": "Validation of prerequisite setup failed. Unable to create integration."
}curl -X 'GET' \
'https://www.organization.immuta.com/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'{
"id": "123456789",
"status": "enabled",
"type": "Trino",
"config": {
"apiKey": "3ea2cde7******461b02ebaa"
}
}curl -X 'GET' \
'https://www.organization.immuta.com/integrations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'[
{
"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"
}
},
{
"id": "2",
"status": "enabled",
"type": "Databricks",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Metastore validation",
"status": "passed"
},
{
"name": "Basic Connection Test",
"result": [
{
"1": 1
}
],
"status": "passed"
}
]
},
"autoBootstrap": true,
"config": {
"workspaceUrl": "www.example-workspace.cloud.databricks.com",
"httpPath": "sql/protocolv1/o/0/0000-00000-abc123",
"token": "REDACTED",
"audit": {
"enabled": false
},
"catalog": "immuta"
}
}
]{ "newKey": "5bb6cae9******300c21acbb" }curl -X 'DELETE' \
'https://www.organization.immuta.com/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'{
"id": "123456789",
"status": "deleting",
"validationResults": {
"status": "passed",
"validationTests": []
}
}curl -X 'POST' \
'https://www.organization.immuta.com/integrations/{id}/regenerate' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'Use the API to set up your Google BigQuery view-based integration
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\"}"
}
}'{
"id": "123456789",
"status": "creating",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Basic Validation: Verify service account not being used for data source connection credentials",
"status": "passed"
},
{
"name": "Basic Validation: Immuta Service Account postfix",
"status": "passed"
},
{
"name": "Basic Validation: Non-matching service account in key file",
"status": "passed"
},
{
"name": "Basic Validation: Connection can be made to BigQuery",
"status": "passed"
},
{
"name": "Initialize Validation: [Dataset - exists] innate-conquest-123456.immuta",
"status": "passed"
},
{
"name": "Validate Manual: [Dataset - create] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144",
"status": "passed"
},
{
"name": "Validate Manual: [Table - create] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "passed"
},
{
"name": "Validate Manual: [Table - insert] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "warning",
"message": "Billing has not been enabled for this project. Enable billing at https://console.cloud.google.com/billing. DML queries are not allowed in the free tier. Set up a billing account to remove this restriction. Confirm that the bootstrap script was executed without any modifications. This warning will not prevent the connection but continue at your own risk as some features may not function."
},
{
"name": "Validate Manual: [Table - get] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE (After insert)",
"status": "skipped"
},
{
"name": "Validate Manual: [Table - update] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "skipped"
},
{
"name": "Validate Manual: [Table - get] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE (After update)",
"status": "skipped"
},
{
"name": "Validate Manual: [Table - delete] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "passed"
},
{
"name": "Validate Manual: [Dataset - delete] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144",
"status": "passed"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Google BigQuery integration already exists on host organization.cloud.google.com (id = 123456789)"
}curl -X 'GET' \
'https://www.organization.immuta.com/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'{
"id": "123456789",
"status": "enabled",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Basic Validation: Verify service account not being used for data source connection credentials",
"status": "passed"
},
{
"name": "Basic Validation: Immuta Service Account postfix",
"status": "passed"
},
{
"name": "Basic Validation: Non-matching service account in key file",
"status": "passed"
},
{
"name": "Basic Validation: Connection can be made to BigQuery",
"status": "passed"
},
{
"name": "Initialize Validation: [Dataset - exists] innate-conquest-123456.immuta",
"status": "passed"
},
{
"name": "Validate Manual: [Dataset - create] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144",
"status": "passed"
},
{
"name": "Validate Manual: [Table - create] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "passed"
},
{
"name": "Validate Manual: [Table - insert] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "warning",
"message": "Billing has not been enabled for this project. Enable billing at https://console.cloud.google.com/billing. DML queries are not allowed in the free tier. Set up a billing account to remove this restriction. Confirm that the bootstrap script was executed without any modifications. This warning will not prevent the connection but continue at your own risk as some features may not function."
},
{
"name": "Validate Manual: [Table - get] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE (After insert)",
"status": "skipped"
},
{
"name": "Validate Manual: [Table - update] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "skipped"
},
{
"name": "Validate Manual: [Table - get] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE (After update)",
"status": "skipped"
},
{
"name": "Validate Manual: [Table - delete] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "passed"
},
{
"name": "Validate Manual: [Dataset - delete] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144",
"status": "passed"
}
]
},
"type": "Google BigQuery",
"autoBootstrap": false,
"config": {
"port": 443,
"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"
}
}
}curl -X 'GET' \
'https://www.organization.immuta.com/integrations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'[
{
"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"
}
},
{
"id": "2",
"status": "enabled",
"type": "Databricks",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Metastore validation",
"status": "passed"
},
{
"name": "Basic Connection Test",
"result": [
{
"1": 1
}
],
"status": "passed"
}
]
},
"autoBootstrap": true,
"config": {
"workspaceUrl": "www.example-workspace.cloud.databricks.com",
"httpPath": "sql/protocolv1/o/0/0000-00000-abc123",
"token": "REDACTED",
"audit": {
"enabled": false
},
"catalog": "immuta"
}
}
]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\"}"
}
}'{
"id": "123456789",
"status": "editing",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Basic Validation: Verify service account not being used for data source connection credentials",
"status": "passed"
},
{
"name": "Basic Validation: Immuta Service Account postfix",
"status": "passed"
},
{
"name": "Basic Validation: Non-matching service account in key file",
"status": "passed"
},
{
"name": "Basic Validation: Connection can be made to BigQuery",
"status": "passed"
},
{
"name": "Initialize Validation: [Dataset - exists] innate-conquest-123456.immuta",
"status": "passed"
},
{
"name": "Validate Manual: [Dataset - create] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144",
"status": "passed"
},
{
"name": "Validate Manual: [Table - create] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "passed"
},
{
"name": "Validate Manual: [Table - insert] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "warning",
"message": "Billing has not been enabled for this project. Enable billing at https://console.cloud.google.com/billing. DML queries are not allowed in the free tier. Set up a billing account to remove this restriction. Confirm that the bootstrap script was executed without any modifications. This warning will not prevent the connection but continue at your own risk as some features may not function."
},
{
"name": "Validate Manual: [Table - get] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE (After insert)",
"status": "skipped"
},
{
"name": "Validate Manual: [Table - update] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "skipped"
},
{
"name": "Validate Manual: [Table - get] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE (After update)",
"status": "skipped"
},
{
"name": "Validate Manual: [Table - delete] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144.IMMUTA_VERIFY_TABLE",
"status": "passed"
},
{
"name": "Validate Manual: [Dataset - delete] innate-conquest-123456.IMMUTA_VERIFY_DATASET_144",
"status": "passed"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Unable to edit integration with ID 123456789 in current state editing."
}curl -X 'DELETE' \
'https://www.organization.immuta.com/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'{
"id": "123456789",
"status": "deleting",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Basic Validation: Verify service account not being used for data source connection credentials",
"status": "passed"
},
{
"name": "Basic Validation: Immuta Service Account postfix",
"status": "passed"
},
{
"name": "Basic Validation: Non-matching service account in key file",
"status": "passed"
},
{
"name": "Basic Validation: Connection can be made to BigQuery",
"status": "passed"
}
]
}
}Use the API to set up your Amazon Redshift Spectrum integration
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"
}
}'curl -X 'POST' \
'https://www.organization.immuta.com/integrations' \
-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"
}
}'{
"id": "123456789",
"status": "creating",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Initial Validation: Basic Connection Test",
"result": [null],
"status": "passed"
},
{
"name": "Validate Automatic: Immuta Database Does Not Exist",
"result": [],
"status": "passed"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Redshift integration already exists on host organization.aws.amazon.com (id = 123456789)"
}curl -X 'GET' \
'https://www.organization.immuta.com/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'{
"id": "123456789",
"status": "enabled",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Initial Validation: Basic Connection Test",
"result": [null],
"status": "passed"
},
{
"name": "Validate Automatic: Immuta Database Does Not Exist",
"result": [],
"status": "passed"
}
]
},
"type": "Redshift",
"autoBootstrap": false,
"config": {
"host": "organization.aws.amazon.com",
"database": "immuta",
"port": 5439,
"impersonation": {
"enabled": false
},
"authenticationType": "userPassword",
"username": "<REDACTED>",
"password": "<REDACTED>"
}
}curl -X 'GET' \
'https://www.organization.immuta.com/integrations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'[
{
"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: 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"
}
},
{
"id": "2",
"status": "enabled",
"type": "Databricks",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Metastore validation",
"status": "passed"
},
{
"name": "Basic Connection Test",
"result": [
{
"1": 1
}
],
"status": "passed"
}
]
},
"autoBootstrap": true,
"config": {
"workspaceUrl": "www.example-workspace.cloud.databricks.com",
"httpPath": "sql/protocolv1/o/0/0000-00000-abc123",
"token": "REDACTED",
"audit": {
"enabled": false
},
"catalog": "immuta"
}
}
]curl -X 'POST' \
'https://www.organization.immuta.com/integrations/{id}/scripts/edit' \
-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"
}
}'curl -X 'PUT' \
'https://www.organization.immuta.com/integrations/{id}' \
-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"
}
}'{
"id": "123456789",
"status": "editing",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Initial Validation: Basic Connection Test",
"result": [null],
"status": "passed"
},
{
"name": "Validate Automatic: Immuta Database Does Not Exist",
"result": [],
"status": "passed"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Unable to edit integration with ID 123456789 in current state editing."
}curl -X 'DELETE' \
'https://www.organization.immuta.com/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'{
"id": "123456789",
"status": "deleting",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Initial Validation: Basic Connection Test",
"result": [null],
"status": "passed"
},
{
"name": "Validate Automatic: Immuta Database Does Not Exist",
"result": [],
"status": "passed"
}
]
}
}Use the API to set up your Amazon S3 integration
kms:Decryptcurl -X 'POST' \
'https://<your-immuta-url.com>/integrations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: <your-api-key>' \
-d '{
"type": "Native S3",
"autoBootstrap": false,
"config": {
"name": "<name-of-your-integration>",
"awsAccountId": "<your-aws-account-id>",
"awsRegion": "<your-aws-region>",
"awsLocationRole": "<arn:aws:iam::your-location-role-arn:role/access-grants-instance-role>",
"awsLocationPath": "<your-s3-location-path>",
"authenticationType": "auto"
}
}'{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1234567891011",
"Effect": "Allow",
"Principal": {
"Service":"access-grants.s3.amazonaws.com"
},
"Action": [
"sts:AssumeRole",
"sts:SetSourceIdentity"
]
}
]
} curl -X 'POST' \
'https://<your-immuta-url.com>/integrations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: <your-api-key>' \
-d '{
"type": "Native S3",
"autoBootstrap": false,
"config": {
"name": "<name-of-your-integration>",
"awsAccountId": "<your-aws-account-id>",
"awsRegion": "<your-aws-region>",
"awsLocationRole": "<arn:aws:iam::your-location-role-arn:role/access-grants-instance-role>",
"awsLocationPath": "<your-s3-location-path>",
"authenticationType": "accessKey",
"awsAccessKeyId": "<your-access-key-id>",
"awsSecretAccessKey": "<your-secret-access-key>"
}
}'{
"id": "123456789",
"status": "creating",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "There is no existing integration matching this configuration",
"status": "passed"
},
{
"name": "The provided integration name is unique across Immuta S3 integrations",
"status": "passed"
},
{
"name": "The provided access grants location role is a valid ARN format",
"status": "passed"
},
{
"name": "The provided AWS credentials allow fetching the caller's identity via the AWS STS API",
"status": "passed"
},
{
"name": "An AWS Access Grants instance is configured in the provided AWS account and region",
"status": "passed"
},
{
"name": "The provided S3 path exists and Immuta can list prefixes",
"status": "passed"
},
{
"name": "An AWS Access Grants location does not yet exist for the provided path",
"status": "passed"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Access Grants location already exists on provided path."
}curl -X 'GET' \
'https://<your-immuta-url.com>/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: <your-api-key>'{
"id": "123456789",
"status": "enabled",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "There is no existing integration matching this configuration",
"status": "passed"
},
{
"name": "The provided integration name is unique across Immuta S3 integrations",
"status": "passed"
},
{
"name": "The provided access grants location role is a valid ARN format",
"status": "passed"
},
{
"name": "The provided AWS credentials allow fetching the caller's identity via the AWS STS API",
"status": "passed"
},
{
"name": "An AWS Access Grants instance is configured in the provided AWS account and region",
"status": "passed"
},
{
"name": "The provided S3 path exists and Immuta can list prefixes",
"status": "passed"
},
{
"name": "An AWS Access Grants location does not yet exist for the provided path",
"status": "passed"
}
]
},
"type": "Native S3",
"autoBootstrap": false,
"config": {
"port": 443,
"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"
}
}curl -X 'GET' \
'https://<your-immuta-url.com>/integrations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: <your-api-key>'[
{
"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"
}
},
{
"id": "123456789",
"status": "enabled",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "There is no existing integration matching this configuration",
"status": "passed"
},
{
"name": "The provided integration name is unique across Immuta S3 integrations",
"status": "passed"
},
{
"name": "The provided access grants location role is a valid ARN format",
"status": "passed"
},
{
"name": "The provided AWS credentials allow fetching the caller's identity via the AWS STS API",
"status": "passed"
},
{
"name": "An AWS Access Grants instance is configured in the provided AWS account and region",
"status": "passed"
},
{
"name": "The provided S3 path exists and Immuta can list prefixes",
"status": "passed"
},
{
"name": "An AWS Access Grants location does not yet exist for the provided path",
"status": "passed"
}
] },
"type": "Native S3",
"autoBootstrap": false,
"config": {
"port": 443,
"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"
}
}
]curl -X 'PUT' \
'https://<your-immuta-url.com>/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: <your-api-key>' \
-d '{
"type": "Native S3",
"autoBootstrap": false,
"config": {
"name": "<your-edited-integration-name>",
"awsAccountId": "<your-aws-account-id>",
"awsRegion": "<your-aws-region>",
"awsLocationRole": "<arn:aws:iam::your-location-role-arn:role/access-grants-instance-role>",
"awsLocationPath": "<your-s3-location-path>",
"authenticationType": "<accessKey-or-auto>",
"awsAccessKeyId": "<your-aws-access-key-id>",
"awsSecretAccessKey": "<your-secret-access-key>"
}
}'{
"id": "123456789",
"status": "editing",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "There is no existing integration matching this configuration",
"status": "passed"
},
{
"name": "The provided integration name is unique across Immuta S3 integrations",
"status": "passed"
},
{
"name": "The provided access grants location role is a valid ARN format",
"status": "passed"
},
{
"name": "The provided AWS credentials allow fetching the caller's identity via the AWS STS API",
"status": "passed"
},
{
"name": "An AWS Access Grants instance is configured in the provided AWS account and region",
"status": "passed"
},
{
"name": "The provided S3 path exists and Immuta can list prefixes",
"status": "passed"
},
{
"name": "An AWS Access Grants location does not yet exist for the provided path",
"status": "passed"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Unable to edit integration with ID 123456789 in current state editing."
}curl -X 'DELETE' \
'https://<your-immuta-url.com>/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: <your-api-key>'{
"id": "123456789",
"status": "deleting",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "The provided access grants location role is a valid ARN format",
"status": "passed"
},
{
"name": "The provided AWS credentials allow fetching the caller's identity via the AWS STS API",
"status": "passed"
},
{
"name": "An AWS Access Grants instance is configured in the provided AWS account and region",
"status": "passed"
},
{
"name": "The provided S3 path exists and Immuta can list prefixes",
"status": "passed"
}
]
}
}{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ObjectLevelReadPermissions",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetObjectAcl",
"s3:GetObjectVersionAcl",
"s3:ListMultipartUploadParts"
],
"Resource": [
<bucket arn>
]
},
{
"Sid": "ObjectLevelWritePermissions",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:AbortMultipartUpload"
],
"Resource": [
<bucket arn>
]
},
{
"Sid": "BucketLevelReadPermissions",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:ListBucket"
],
"Resource": [
<bucket arn>
]
}
]
}{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RolePermissions",
"Effect": "Allow",
"Action": [
"iam:GetRole",
"iam:PassRole"
],
"Resource": "<location_role_arn>"
},
{
"Sid": "AccessGrants",
"Effect": "Allow",
"Action": [
"s3:CreateAccessGrant",
"s3:DeleteAccessGrantsLocation",
"s3:GetAccessGrantsLocation",
"s3:CreateAccessGrantsLocation",
"s3:GetAccessGrantsInstance",
"s3:GetAccessGrantsInstanceForPrefix",
"s3:GetAccessGrantsInstanceResourcePolicy",
"s3:ListAccessGrants",
"s3:ListAccessGrantsLocations",
"s3:ListAccessGrantsInstances",
"s3:DeleteAccessGrant",
"s3:GetAccessGrant"
],
"Resource": [
"<access_grants_instance_arn>"
]
}
]
}us-east-1).{
"Sid": "sso",
"Effect": "Allow",
"Action": [
"sso:DescribeInstance",
"sso:DescribeApplication",
"sso-directory:DescribeUsers"
],
"Resource": [
"<iam_identity_center_instance_arn>",
"<iam_identity_center_application_arn_for_s3_access_grants>",
"arn:aws:identitystore:::user/*",
"arn:aws:identitystore::<aws_account>:identitystore/<identity_store_id>"
]
}, {
"Sid": "idc",
"Effect": "Allow",
"Action": [
"identitystore:DescribeUser",
"identitystore:DescribeGroup"
],
"Resource": [
"<iam_identity_center_instance_arn>",
"<iam_identity_center_application_arn_for_s3_access_grants>",
"arn:aws:identitystore:::user/*",
"arn:aws:identitystore::<aws_account>:identitystore/<identity_store_id>"
]
}Use the API to set up your Azure Synapse Analytics integration
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",
"impersonation": {
"enabled": true,
"role": "IMMUTA_IMPERSONATION"
},
"metadataDelimiters": {
"hashDelimiter": "|",
"hashKeyDelimiter": "-",
"arrayDelimiter": ","
},
"username": "taylor@synapse.com",
"password": "abc1234",
"authenticationType": "userPassword"
}
}'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",
"impersonation": {
"enabled": true,
"role": "IMMUTA_IMPERSONATION"
},
"metadataDelimiters": {
"hashDelimiter": "|",
"hashKeyDelimiter": "-",
"arrayDelimiter": ","
},
"username": "taylor@synapse.com",
"password": "abc1234",
"authenticationType": "userPassword"
}
}'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": "Azure Synapse Analytics",
"autoBootstrap": false,
"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"
}
}'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": false,
"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"
}
}'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",
"username": "taylor@synapse.com",
"password": "abc1234",
"authenticationType": "userPassword"
}
}'{
"id": "123456789",
"status": "creating",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Initial Validation: Connect",
"result": [
{
"SCHEMA_NAME": "sample_schema",
"CATALOG_NAME": "immuta",
"SCHEMA_OWNER": "taylor@synapse.com",
"DEFAULT_CHARACTER_SET_NAME": "iso_1",
"DEFAULT_CHARACTER_SET_SCHEMA": null,
"DEFAULT_CHARACTER_SET_CATALOG": null
}
],
"status": "passed"
},
{
"name": "Initial Validation: Delimiters",
"status": "passed"
},
{
"name": "Validate Immuta system user can manage database",
"result": [
{
"name": "taylor@synapse.com"
}
],
"status": "passed"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Azure Synapse Analytics integration already exists on host organization.azure.com (id = 123456789)"
}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",
"impersonation": {
"enabled": false
},
"metadataDelimiters": {
"hashDelimiter": "|",
"hashKeyDelimiter": "-",
"arrayDelimiter": ","
},
"username": "taylor@synapse.com",
"password": "abc1234",
"authenticationType": "userPassword"
}
}'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": "Azure Synapse Analytics",
"autoBootstrap": false,
"config": {
"host": "organization.azure.com",
"schema": "sample_schema",
"database": "immuta",
"impersonation": {
"enabled": false
},
"metadataDelimiters": {
"hashDelimiter": "|",
"hashKeyDelimiter": "-",
"arrayDelimiter": ","
},
"username": "taylor@synapse.com",
"password": "abc1234",
"authenticationType": "userPassword"
}
}'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": false,
"config": {
"host": "organization.azure.com",
"schema": "sample_schema",
"database": "immuta",
"impersonation": {
"enabled": false
},
"metadataDelimiters": {
"hashDelimiter": "|",
"hashKeyDelimiter": "-",
"arrayDelimiter": ","
},
"username": "taylor@synapse.com",
"password": "abc1234",
"authenticationType": "userPassword"
}
}'{
"id": "123456789",
"status": "creating",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Initial Validation: Connect",
"result": [
{
"SCHEMA_NAME": "sample_schema",
"CATALOG_NAME": "immuta",
"SCHEMA_OWNER": "taylor@synapse.com",
"DEFAULT_CHARACTER_SET_NAME": "iso_1",
"DEFAULT_CHARACTER_SET_SCHEMA": null,
"DEFAULT_CHARACTER_SET_CATALOG": null
}
],
"status": "passed"
},
{
"name": "Initial Validation: Delimiters",
"status": "passed"
},
{
"name": "Validate Immuta system user can manage database",
"result": [
{
"name": "taylor@synapse.com"
}
],
"status": "passed"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Azure Synapse Analytics integration already exists on host organization.azure.com (id = 123456789)"
}curl -X 'GET' \
'https://www.organization.immuta.com/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'{
"id": "123456789",
"status": "enabled",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Initial Validation: Connect",
"result": [
{
"SCHEMA_NAME": "sample_schema",
"CATALOG_NAME": "immuta",
"SCHEMA_OWNER": "taylor@synapse.com",
"DEFAULT_CHARACTER_SET_NAME": "iso_1",
"DEFAULT_CHARACTER_SET_SCHEMA": null,
"DEFAULT_CHARACTER_SET_CATALOG": null
}
],
"status": "passed"
},
{
"name": "Initial Validation: Delimiters",
"status": "passed"
},
{
"name": "Validate Immuta system user can manage database",
"result": [
{
"name": "taylor@synapse.com"
}
],
"status": "passed"
}
]
},
"type": "Azure Synapse Analytics",
"autoBootstrap": true,
"config": {
"host": "organization.azure.com",
"schema": "sample_schema",
"database": "immuta",
"port": 1433,
"impersonation": {
"enabled": false
},
"metadataDelimiters": {
"hashDelimiter": "|",
"hashKeyDelimiter": "-",
"arrayDelimiter": ","
},
"username": "<REDACTED>"
}
}{
"id": "123456789",
"status": "enabled",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Initial Validation: Connect",
"result": [
{
"SCHEMA_NAME": "sample_schema",
"CATALOG_NAME": "immuta",
"SCHEMA_OWNER": "taylor@synapse.com",
"DEFAULT_CHARACTER_SET_NAME": "iso_1",
"DEFAULT_CHARACTER_SET_SCHEMA": null,
"DEFAULT_CHARACTER_SET_CATALOG": null
}
],
"status": "passed"
},
{
"name": "Initial Validation: Delimiters",
"status": "passed"
},
{
"name": "Validate Immuta system user can manage database",
"result": [
{
"name": "taylor@synapse.com"
}
],
"status": "passed"
}
]
},
"type": "Azure Synapse Analytics",
"autoBootstrap": true,
"config": {
"host": "organization.azure.com",
"schema": "sample_schema",
"database": "immuta",
"port": 1433,
"impersonation": {
"enabled": true,
"role": "IMMUTA_IMPERSONATION"
},
"metadataDelimiters": {
"hashDelimiter": "|",
"hashKeyDelimiter": "-",
"arrayDelimiter": ","
},
"username": "<REDACTED>"
}
}curl -X 'GET' \
'https://www.organization.immuta.com/integrations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'[
{
"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"
}
},
{
"id": "2",
"status": "enabled",
"type": "Databricks",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Metastore validation",
"status": "passed"
},
{
"name": "Basic Connection Test",
"result": [
{
"1": 1
}
],
"status": "passed"
}
]
},
"autoBootstrap": true,
"config": {
"workspaceUrl": "www.example-workspace.cloud.databricks.com",
"httpPath": "sql/protocolv1/o/0/0000-00000-abc123",
"token": "REDACTED",
"audit": {
"enabled": false
},
"catalog": "immuta"
}
}
]curl -X 'PUT' \
'https://www.organization.immuta.com/integrations/{id}' \
-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"
}
}'{
"id": "123456789",
"status": "editing",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Initial Validation: Connect",
"result": [
{
"SCHEMA_NAME": "sample_schema",
"CATALOG_NAME": "immuta",
"SCHEMA_OWNER": "taylor@synapse.com",
"DEFAULT_CHARACTER_SET_NAME": "iso_1",
"DEFAULT_CHARACTER_SET_SCHEMA": null,
"DEFAULT_CHARACTER_SET_CATALOG": null
}
],
"status": "passed"
},
{
"name": "Initial Validation: Delimiters",
"status": "passed"
},
{
"name": "Validate Immuta system user can manage database",
"result": [
{
"name": "taylor@synapse.com"
}
],
"status": "passed"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Unable to edit integration with ID 123456789 in current state editing."
}curl -X 'POST' \
'https://www.organization.immuta.com/integrations/{id}/scripts/edit' \
-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",
"impersonation": {
"enabled": false
},
"metadataDelimiters": {
"hashDelimiter": "|",
"hashKeyDelimiter": "-",
"arrayDelimiter": ","
},
"username": "taylor@synapse.com",
"password": "abc1234",
"authenticationType": "userPassword"
}
}'curl -X 'PUT' \
'https://www.organization.immuta.com/integrations/{id}' \
-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",
"impersonation": {
"enabled": false
},
"metadataDelimiters": {
"hashDelimiter": "|",
"hashKeyDelimiter": "-",
"arrayDelimiter": ","
},
"username": "taylor@synapse.com",
"password": "abc1234",
"authenticationType": "userPassword"
}
}'{
"id": "123456789",
"status": "editing",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Initial Validation: Connect",
"result": [
{
"SCHEMA_NAME": "sample_schema",
"CATALOG_NAME": "immuta",
"SCHEMA_OWNER": "taylor@synapse.com",
"DEFAULT_CHARACTER_SET_NAME": "iso_1",
"DEFAULT_CHARACTER_SET_SCHEMA": null,
"DEFAULT_CHARACTER_SET_CATALOG": null
}
],
"status": "passed"
},
{
"name": "Initial Validation: Delimiters",
"status": "passed"
},
{
"name": "Validate Immuta system user can manage database",
"result": [
{
"name": "taylor@synapse.com"
}
],
"status": "passed"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Unable to edit integration with ID 123456789 in current state editing."
}curl -X 'DELETE' \
'https://www.organization.immuta.com/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
-d '{
"authenticationType": "userPassword",
"username": "taylor@synapse.com",
"password": "abc1234"
}'{
"id": "123456789",
"status": "deleting",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Initial Validation: Connect",
"result": [
{
"SCHEMA_NAME": "sample_schema",
"CATALOG_NAME": "immuta",
"SCHEMA_OWNER": "taylor@synapse.com",
"DEFAULT_CHARACTER_SET_NAME": "iso_1",
"DEFAULT_CHARACTER_SET_SCHEMA": null,
"DEFAULT_CHARACTER_SET_CATALOG": null
}
],
"status": "passed"
},
{
"name": "Initial Validation: Delimiters",
"status": "passed"
},
{
"name": "Validate Immuta system user can manage database",
"result": [
{
"name": "taylor@synapse.com"
}
],
"status": "passed"
}
]
}
}CREATE DATABASE ON ACCOUNT WITH GRANT OPTIONcurl -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": "keyPair",
"username": "SYSTEM_ACCOUNT",
"privateKey": "-----BEGIN PRIVATE KEY-----\n<first line of private key content>\n<another line of private key content>\n<another line of private key content>\n-----END PRIVATE KEY-----"
}
}'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": "keyPair",
"username": "SYSTEM_ACCOUNT",
"privateKey": "-----BEGIN PRIVATE KEY-----\n<first line of private key content>\n<another line of private key content>\n<another line of private key content>\n-----END PRIVATE KEY-----"
}
}'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",
"impersonation": {
"enabled": true,
"role": "IMMUTA_IMPERSONATION"
},
"audit": {
"enabled": false
},
"workspaces": {
"enabled": true,
"warehouses": ["SAMPLE_WAREHOUSE"]
},
"authenticationType": "oAuthClientCredentials",
"oAuthClientConfig": {
"provider": "Okta",
"clientId": "123456abc",
"useCertificate": false,
"clientSecret": "secret",
"authorityUrl": "example.authority.com"
}
}
}'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": 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": "keyPair",
"username": "SYSTEM_ACCOUNT",
"privateKey": "-----BEGIN PRIVATE KEY-----\n<first line of private key content>\n<another line of private key content>\n<another line of private key content>\n-----END PRIVATE KEY-----"
}
}'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": false,
"config": {
"host": "organization.us-east-1.snowflakecomputing.com",
"warehouse": "SAMPLE_WAREHOUSE",
"database": "SNOWFLAKE_SAMPLE_DATA",
"impersonation": {
"enabled": true,
"role": "IMMUTA_IMPERSONATION"
},
"workspaces": {
"enabled": true,
"warehouses": ["SAMPLE_WAREHOUSE"]
},
"authenticationType": "oAuthClientCredentials",
"oAuthClientConfig": {
"provider": "Okta",
"clientId": "123456abc",
"useCertificate": false,
"clientSecret": "secret",
"authorityUrl": "example.authority.com"
}
}
}'curl -X 'PUT' \
'https://www.organization.immuta.com/integrations/{id}' \
-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": "keyPair",
"username": "SYSTEM_ACCOUNT",
"privateKey": "-----BEGIN PRIVATE KEY-----\n<first line of private key content>\n<another line of private key content>\n<another line of private key content>\n-----END PRIVATE KEY-----"
}
}'curl -X 'POST' \
'https://www.organization.immuta.com/integrations/{id}/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": "keyPair",
"username": "SYSTEM_ACCOUNT",
"privateKey": "-----BEGIN PRIVATE KEY-----\n<first line of private key content>\n<another line of private key content>\n<another line of private key content>\n-----END PRIVATE KEY-----"
}
}'curl -X 'POST' \
'https://www.organization.immuta.com/integrations/{id}/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",
"impersonation": {
"enabled": true,
"role": "IMMUTA_IMPERSONATION"
},
"audit": {
"enabled": true
},
"workspaces": {
"enabled": false
},
"authenticationType": "oAuthClientCredentials",
"oAuthClientConfig": {
"provider": "Okta",
"clientId": "123456abc",
"useCertificate": false,
"clientSecret": "secret",
"authorityUrl": "example.authority.com"
}
}
}'curl -X 'PUT' \
'https://www.organization.immuta.com/integrations/{id}' \
-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": "keyPair",
"username": "SYSTEM_ACCOUNT",
"privateKey": "-----BEGIN PRIVATE KEY-----\n<first line of private key content>\n<another line of private key content>\n<another line of private key content>\n-----END PRIVATE KEY-----"
}
}'curl -X 'PUT' \
'https://www.organization.immuta.com/integrations/{id}' \
-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",
"impersonation": {
"enabled": true,
"role": "IMMUTA_IMPERSONATION"
},
"audit": {
"enabled": true
},
"workspaces": {
"enabled": false
},
"authenticationType": "oAuthClientCredentials",
"oAuthClientConfig": {
"provider": "Okta",
"clientId": "123456abc",
"useCertificate": false,
"clientSecret": "secret",
"authorityUrl": "example.authority.com"
}
}
}'curl -X 'PUT' \
'https://www.organization.immuta.com/integrations/{id}' \
-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": true,
"role": "IMPERSONATION_ROLE"
},
"authenticationType": "userPassword",
"username": "taylor@snowflake.com",
"password": "abc1234"
}
}'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"
}
}'{
"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"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Snowflake integration already exists on host organization.us-east-1.snowflakecomputing.com (id = 123456789)"
}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": "taylor@snowflake.com",
"password": "abc1234"
}
}'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": 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": "taylor@snowflake.com",
"password": "abc1234"
}
}'{
"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"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Snowflake integration already exists on host organization.us-east-1.snowflakecomputing.com (id = 123456789)"
}curl -X 'GET' \
'https://www.organization.immuta.com/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'{
"id": "123456789",
"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"
}
}{
"id": "123456789",
"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": false,
"config": {
"host": "organization.us-east-1.snowflakecomputing.com",
"warehouse": "SAMPLE_WAREHOUSE",
"database": "SNOWFLAKE_SAMPLE_DATA",
"port": 443,
"impersonation": {
"enabled": true,
"role": "IMMUTA_IMPERSONATION"
},
"audit": {
"enabled": false
},
"workspaces": {
"enabled": true,
"warehouses": ["SAMPLE_WAREHOUSE"]
},
"lineage": {
"enabled": false
},
"authenticationType": "oAuthClientCredentials",
"oAuthClientConfig": {
"provider": "Okta",
"clientId": "123456abc",
"useCertificate": false,
"clientSecret": "secret",
"authorityUrl": "example.authority.com"
}
}
}curl -X 'GET' \
'https://www.organization.immuta.com/integrations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f'[
{
"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"
}
},
{
"id": "2",
"status": "enabled",
"type": "Databricks",
"validationResults": {
"status": "passed",
"validationTests": [
{
"name": "Metastore validation",
"status": "passed"
},
{
"name": "Basic Connection Test",
"result": [
{
"1": 1
}
],
"status": "passed"
}
]
},
"autoBootstrap": true,
"config": {
"workspaceUrl": "www.example-workspace.cloud.databricks.com",
"httpPath": "sql/protocolv1/o/0/0000-00000-abc123",
"token": "REDACTED",
"audit": {
"enabled": false
},
"catalog": "immuta"
}
}
]curl -X 'PUT' \
'https://www.organization.immuta.com/integrations/{id}' \
-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"
}
}'{
"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"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Unable to edit integration with ID 123456789 in current state editing."
}curl -X 'POST' \
'https://www.organization.immuta.com/integrations/{id}/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": "taylor@snowflake.com",
"password": "abc1234"
}
}'curl -X 'PUT' \
'https://www.organization.immuta.com/integrations/{id}' \
-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": "taylor@snowflake.com",
"password": "abc1234"
}
}'{
"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"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Unable to edit integration with ID 123456789 in current state editing."
}CREATE ROLE "YOUR IMPERSONATION ROLE NAME";
GRANT OWNERSHIP ON ROLE "YOUR IMPERSONATION ROLE NAME" TO ROLE "SYSTEM ACCOUNT ROLE";curl -X 'PUT' \
'https://www.organization.immuta.com/integrations/{id}' \
-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": true,
"role": "IMPERSONATION_ROLE"
},
"authenticationType": "userPassword",
"username": "taylor@snowflake.com",
"password": "abc1234"
}
}'{
"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"
}
]
}
}{
"statusCode": 409,
"error": "Conflict",
"message": "Unable to edit integration with ID 123456789 in current state editing."
}curl -X 'DELETE' \
'https://www.organization.immuta.com/integrations/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
-d '{
"authenticationType": "userPassword",
"username": "taylor@snowflake.com",
"password": "abc1234",
"role": "ACCOUNTADMIN"
}'{
"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"
}
]
}
}IMPERSONATE_USER permission to Immuta users. See the for instructions.