in generate/resources/_vpcsc.py [0:0]
def create_sc_perimeter(self, data):
"""creates sc perimeter"""
name = data["perimeter_name"]
data["policy"] = self.tf_ref("sc_policy", data["policy"])
data["description"] = (
f'regular perimeter {name} {self.created["null"]["wait_for_members"].id}'
)
perimeter_al = []
for al in data.get("access_levels", []):
tf_al = self.tf_ref("sc_access_level_name", al)
perimeter_al.append(tf_al)
if perimeter_al:
data["access_levels"] = perimeter_al
for policy in data.get("ingress_policies", []):
ingress_from_resources = []
ingress_from_al = []
for resources in policy.get("from", {}).get("sources", {}).get("resources", []):
tf_resources = self.tf_ref("projects/number", resources)
ingress_from_resources.append(tf_resources)
if ingress_from_resources:
policy["from"]["sources"]["resources"] = ingress_from_resources
for al in policy.get("from", {}).get("sources", {}).get("access_levels", []):
tf_al = self.tf_ref("sc_access_level_name", al)
ingress_from_al.append(tf_al)
if ingress_from_al:
policy["from"]["sources"]["access_levels"] = ingress_from_al
for policy_name in ["ingress_policies", "egress_policies"]:
for policy in data.get(policy_name, []):
to_resources = []
for resources in policy.get("to", {}).get("resources", []):
tf_resources = self.tf_ref("projects/number", resources)
to_resources.append(tf_resources)
if to_resources:
policy["to"]["resources"] = to_resources
ScPerimeter(self, f"sc_perimiter_{name}", **data)