getAddresses function

Future<GetAddressesResult> getAddresses(
  1. GetAddressesArgs args, {
  2. InvokeOptions? options,
})

List IP addresses in a project. For more information see the official API list and aggregated list documentation.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const test = gcp.compute.getAddresses({
    filter: "name:test-*",
});
const prod = new gcp.dns.ManagedZone("prod", {
    name: "prod-zone",
    dnsName: "prod.mydomain.com.",
});
const frontend = new gcp.dns.RecordSet("frontend", {
    name: pulumi.interpolate`frontend.${prod.dnsName}`,
    type: "A",
    ttl: 300,
    managedZone: prod.name,
    rrdatas: test.then(test => test.addresses.map(__item => __item.address)),
});
import pulumi
import pulumi_gcp as gcp

test = gcp.compute.get_addresses(filter="name:test-*")
prod = gcp.dns.ManagedZone("prod",
    name="prod-zone",
    dns_name="prod.mydomain.com.")
frontend = gcp.dns.RecordSet("frontend",
    name=prod.dns_name.apply(lambda dns_name: f"frontend.{dns_name}"),
    type="A",
    ttl=300,
    managed_zone=prod.name,
    rrdatas=[__item.address for __item in test.addresses])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var test = Gcp.Compute.GetAddresses.Invoke(new()
    {
        Filter = "name:test-*",
    });

    var prod = new Gcp.Dns.ManagedZone("prod", new()
    {
        Name = "prod-zone",
        DnsName = "prod.mydomain.com.",
    });

    var frontend = new Gcp.Dns.RecordSet("frontend", new()
    {
        Name = prod.DnsName.Apply(dnsName => $"frontend.{dnsName}"),
        Type = "A",
        Ttl = 300,
        ManagedZone = prod.Name,
        Rrdatas = test.Apply(getAddressesResult => getAddressesResult.Addresses).Select(__item => __item.Address).ToList(),
    });

});
package main

import (
	"fmt"

	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/dns"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		test, err := compute.GetAddresses(ctx, &compute.GetAddressesArgs{
			Filter: pulumi.StringRef("name:test-*"),
		}, nil)
		if err != nil {
			return err
		}
		prod, err := dns.NewManagedZone(ctx, "prod", &dns.ManagedZoneArgs{
			Name:    pulumi.String("prod-zone"),
			DnsName: pulumi.String("prod.mydomain.com."),
		})
		if err != nil {
			return err
		}
		var splat0 []*string
		for _, val0 := range test.Addresses {
			splat0 = append(splat0, val0.Address)
		}
		_, err = dns.NewRecordSet(ctx, "frontend", &dns.RecordSetArgs{
			Name: prod.DnsName.ApplyT(func(dnsName string) (string, error) {
				return fmt.Sprintf("frontend.%v", dnsName), nil
			}).(pulumi.StringOutput),
			Type:        pulumi.String("A"),
			Ttl:         pulumi.Int(300),
			ManagedZone: prod.Name,
			Rrdatas:     splat0,
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

data "gcp_compute_getaddresses" "test" {
  filter = "name:test-*"
}

resource "gcp_dns_recordset" "frontend" {
  name         ="frontend.${gcp_dns_managedzone.prod.dns_name}"
  type         = "A"
  ttl          = 300
  managed_zone = gcp_dns_managedzone.prod.name
  rrdatas      = data.gcp_compute_getaddresses.test.addresses[*].address
}
resource "gcp_dns_managedzone" "prod" {
  name     = "prod-zone"
  dns_name = "prod.mydomain.com."
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ComputeFunctions;
import com.pulumi.gcp.compute.inputs.GetAddressesArgs;
import com.pulumi.gcp.dns.ManagedZone;
import com.pulumi.gcp.dns.ManagedZoneArgs;
import com.pulumi.gcp.dns.RecordSet;
import com.pulumi.gcp.dns.RecordSetArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        final var test = ComputeFunctions.getAddresses(GetAddressesArgs.builder()
            .filter("name:test-*")
            .build());

        var prod = new ManagedZone("prod", ManagedZoneArgs.builder()
            .name("prod-zone")
            .dnsName("prod.mydomain.com.")
            .build());

        var frontend = new RecordSet("frontend", RecordSetArgs.builder()
            .name(prod.dnsName().applyValue(_dnsName -> String.format("frontend.%s", _dnsName)))
            .type("A")
            .ttl(300)
            .managedZone(prod.name())
            .rrdatas(test.addresses().stream().map(element -> element.address()).collect(toList()))
            .build());

    }
}

args Arguments passed to this invoke. Arguments for getAddresses. options Invoke options controlling this call.

Implementation

Future<GetAddressesResult> getAddresses(
  GetAddressesArgs args, {
  pulumi.InvokeOptions? options,
}) async {
  final deployment = pulumi.Deployment.instance;
  final result = await deployment.invoke<Map<String, dynamic>>(
    'gcp:compute/getAddresses:getAddresses',
    args.toMap(),
    options: pulumi.toDeploymentInvokeOptions(options),
  );
  return GetAddressesResult.fromMap(result);
}