stackql-deploy 2.2.0

Infrastructure-as-code framework for declarative cloud resource management using StackQL
/*+ exists */
SELECT id as storage_credential_id
FROM databricks_workspace.catalog.storage_credentials
WHERE deployment_name = '{{ deployment_name }}'
AND name = '{{ name }}'
;

/*+ create */
INSERT INTO databricks_workspace.catalog.storage_credentials (
name,
aws_iam_role,
comment,
read_only,
skip_validation,
deployment_name
)
SELECT 
'{{ name }}',
'{{ aws_iam_role }}',
'{{ comment }}',
{{ read_only }},
{{ skip_validation }},
'{{ deployment_name }}'
RETURNING
*
;

/*+ update */
UPDATE databricks_workspace.catalog.storage_credentials
SET 
aws_iam_role = '{{ aws_iam_role }}',
comment = '{{ comment }}',
-- force = {{ force }},
-- isolation_mode = '{{ isolation_mode }}',
-- owner = '{{ owner }}',
read_only = {{ read_only }},
skip_validation = {{ skip_validation }}
WHERE 
name = '{{ name }}'
AND deployment_name = '{{ deployment_name }}'
RETURNING
*;

/*+ exports, retries=5, retry_delay=10 */
SELECT 
id as storage_credential_id,
name as storage_credential_name,
JSON_EXTRACT(aws_iam_role, '$.external_id') as storage_credential_external_id
FROM databricks_workspace.catalog.storage_credentials
WHERE deployment_name = '{{ deployment_name }}'
AND name = '{{ name }}'
AND comment = '{{ comment }}'
AND read_only = {{ read_only }}
AND JSON_EXTRACT(aws_iam_role, '$.role_arn') = '{{ aws_metastore_access_role.arn }}'
;

/*+ delete */
DELETE FROM databricks_workspace.catalog.storage_credentials
WHERE name = '{{ name }}'
AND deployment_name = '{{ deployment_name }}'
AND force = '{{ force }}'
;