stackql-deploy 2.2.0

Infrastructure-as-code framework for declarative cloud resource management using StackQL
/* defines the provisioning and deprovisioning commands 
used to create, update or delete the resource
replace queries with your queries */

/*+ exists */
SELECT COUNT(*) as count FROM google.compute.networks
WHERE name = '{% raw %}{{ vpc_name }}{% endraw %}'
AND project = '{% raw %}{{ project }}{% endraw %}'

/*+ create */
INSERT INTO google.compute.networks
(
 project,
 name,
 autoCreateSubnetworks,
 routingConfig
) 
SELECT
'{% raw %}{{ project }}{% endraw %}',
'{% raw %}{{ vpc_name }}{% endraw %}',
false,
'{"routingMode": "REGIONAL"}'

/*+ update */
UPDATE google.compute.networks
SET autoCreateSubnetworks = false
AND routingConfig = '{"routingMode": "REGIONAL"}'
WHERE network = '{% raw %}{{ vpc_name }}{% endraw %}' AND project = '{% raw %}{{ project }}{% endraw %}'

/*+ statecheck, retries=5, retry_delay=10 */
SELECT COUNT(*) as count FROM google.compute.networks
WHERE name = '{% raw %}{{ vpc_name }}{% endraw %}'
AND project = '{% raw %}{{ project }}{% endraw %}'
AND autoCreateSubnetworks = false
AND JSON_EXTRACT(routingConfig, '$.routingMode') = 'REGIONAL'

/*+ exports */
SELECT 
'{% raw %}{{ vpc_name }}{% endraw %}' as vpc_name,
selfLink as vpc_link
FROM google.compute.networks
WHERE name = '{% raw %}{{ vpc_name }}{% endraw %}'
AND project = '{% raw %}{{ project }}{% endraw %}'

/*+ delete, retries=20, retry_delay=10 */
DELETE FROM google.compute.networks
WHERE network = '{% raw %}{{ vpc_name }}{% endraw %}' AND project = '{% raw %}{{ project }}{% endraw %}'