This message was deleted.
# general
s
This message was deleted.
e
On providers that have something like
get_<resource>_list
it's pretty easy. Here's an example of doing it with Cloudflare zones:
Copy code
# Get or setup the zone
        matched_zones: List[pulumi_cloudflare.Zone] = pulumi_cloudflare.get_zones(
            filter={
                "name": args.zone_name
            },
            opts=self.child_opts
        ).zones

        # Remove duplicate entries from the list. No idea why they sometimes show up.
        unique_matched_zones: List[pulumi_cloudflare.Zone] = []
        for zone in matched_zones:
            if zone not in unique_matched_zones:
                unique_matched_zones.append(zone)

        if len(unique_matched_zones) > 1:
            raise ValueError(f"The provided zone name \"{args.zone_name}\" matched multiple zones ({unique_matched_zones}).")
        if len(matched_zones) == 1:
            self.zone: pulumi_cloudflare.Zone = pulumi_cloudflare.Zone.get(
                resource_name=f"{self.name}-zone",
                opts=self.child_opts,
                id=unique_matched_zones[0]["id"]
            )
        else:
            self.zone: pulumi_cloudflare.Zone = pulumi_cloudflare.Zone(
                resource_name=f"{self.name}-zone",
                opts=self.child_opts,
                plan=args.plan,
                zone=args.zone_name,
                type="full" if not args.cname else "partial",
                jump_start=False
            )
If a
get_<resource>_list
method doesn't exist you'll probably have to write one
a
Thanks, I'll give that a try 👍