/*+ exists */
SELECT COUNT(*) as count
FROM databricks_account.provisioning.credentials
WHERE account_id = '{{ databricks_account_id }}'
AND credentials_name = '{{ credentials_name }}'
/*+ create */
INSERT INTO databricks_account.provisioning.credentials (
account_id,
credentials_name,
aws_credentials
)
SELECT
'{{ databricks_account_id }}',
'{{ credentials_name }}',
'{{ aws_credentials }}'
/*+ statecheck, retries=3, retry_delay=5 */
SELECT COUNT(*) as count FROM
(
SELECT
credentials_id
FROM databricks_account.provisioning.credentials
WHERE account_id = '{{ databricks_account_id }}'
AND credentials_name = '{{ credentials_name }}'
AND JSON_EXTRACT(aws_credentials, '$.sts_role.role_arn') = '{{ aws_iam_cross_account_role_arn }}'
) t
/*+ exports */
SELECT
'{{ credentials_name }}' as databricks_credentials_name,
credentials_id as databricks_credentials_id,
JSON_EXTRACT(aws_credentials, '$.sts_role.external_id') as databricks_role_external_id
FROM databricks_account.provisioning.credentials
WHERE account_id = '{{ databricks_account_id }}'
AND credentials_name = '{{ credentials_name }}'
/*+ delete */
DELETE FROM databricks_account.provisioning.credentials
WHERE account_id = '{{ databricks_account_id }}' AND
credentials_id = '{{ databricks_credentials_id }}';