/* 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 %}'