def create_sc_perimeter()

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)