SharedVPCHostProjectArgs

data class SharedVPCHostProjectArgs(val project: Output<String>? = null) : ConvertibleToJava<SharedVPCHostProjectArgs>

Enables the Google Compute Engine Shared VPC feature for a project, assigning it as a Shared VPC host project. For more information, see, the Project API documentation, where the Shared VPC feature is referred to by its former name "XPN".

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
// A host project provides network resources to associated service projects.
const host = new gcp.compute.SharedVPCHostProject("host", {project: "host-project-id"});
// A service project gains access to network resources provided by its
// associated host project.
const service1 = new gcp.compute.SharedVPCServiceProject("service1", {
hostProject: host.project,
serviceProject: "service-project-id-1",
});
const service2 = new gcp.compute.SharedVPCServiceProject("service2", {
hostProject: host.project,
serviceProject: "service-project-id-2",
});
import pulumi
import pulumi_gcp as gcp
# A host project provides network resources to associated service projects.
host = gcp.compute.SharedVPCHostProject("host", project="host-project-id")
# A service project gains access to network resources provided by its
# associated host project.
service1 = gcp.compute.SharedVPCServiceProject("service1",
host_project=host.project,
service_project="service-project-id-1")
service2 = gcp.compute.SharedVPCServiceProject("service2",
host_project=host.project,
service_project="service-project-id-2")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
// A host project provides network resources to associated service projects.
var host = new Gcp.Compute.SharedVPCHostProject("host", new()
{
Project = "host-project-id",
});
// A service project gains access to network resources provided by its
// associated host project.
var service1 = new Gcp.Compute.SharedVPCServiceProject("service1", new()
{
HostProject = host.Project,
ServiceProject = "service-project-id-1",
});
var service2 = new Gcp.Compute.SharedVPCServiceProject("service2", new()
{
HostProject = host.Project,
ServiceProject = "service-project-id-2",
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// A host project provides network resources to associated service projects.
host, err := compute.NewSharedVPCHostProject(ctx, "host", &compute.SharedVPCHostProjectArgs{
Project: pulumi.String("host-project-id"),
})
if err != nil {
return err
}
// A service project gains access to network resources provided by its
// associated host project.
_, err = compute.NewSharedVPCServiceProject(ctx, "service1", &compute.SharedVPCServiceProjectArgs{
HostProject: host.Project,
ServiceProject: pulumi.String("service-project-id-1"),
})
if err != nil {
return err
}
_, err = compute.NewSharedVPCServiceProject(ctx, "service2", &compute.SharedVPCServiceProjectArgs{
HostProject: host.Project,
ServiceProject: pulumi.String("service-project-id-2"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.SharedVPCHostProject;
import com.pulumi.gcp.compute.SharedVPCHostProjectArgs;
import com.pulumi.gcp.compute.SharedVPCServiceProject;
import com.pulumi.gcp.compute.SharedVPCServiceProjectArgs;
import java.util.List;
import java.util.ArrayList;
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) {
// A host project provides network resources to associated service projects.
var host = new SharedVPCHostProject("host", SharedVPCHostProjectArgs.builder()
.project("host-project-id")
.build());
// A service project gains access to network resources provided by its
// associated host project.
var service1 = new SharedVPCServiceProject("service1", SharedVPCServiceProjectArgs.builder()
.hostProject(host.project())
.serviceProject("service-project-id-1")
.build());
var service2 = new SharedVPCServiceProject("service2", SharedVPCServiceProjectArgs.builder()
.hostProject(host.project())
.serviceProject("service-project-id-2")
.build());
}
}
resources:
# A host project provides network resources to associated service projects.
host:
type: gcp:compute:SharedVPCHostProject
properties:
project: host-project-id
# A service project gains access to network resources provided by its
# associated host project.
service1:
type: gcp:compute:SharedVPCServiceProject
properties:
hostProject: ${host.project}
serviceProject: service-project-id-1
service2:
type: gcp:compute:SharedVPCServiceProject
properties:
hostProject: ${host.project}
serviceProject: service-project-id-2

Import

Google Compute Engine Shared VPC host project feature can be imported using project, e.g.

  • {{project_id}} When using the pulumi import command, Google Compute Engine Shared VPC host projects can be imported using one of the formats above. For example:

$ pulumi import gcp:compute/sharedVPCHostProject:SharedVPCHostProject default {{project_id}}

Constructors

Link copied to clipboard
constructor(project: Output<String>? = null)

Properties

Link copied to clipboard
val project: Output<String>? = null

The ID of the project that will serve as a Shared VPC host project

Functions

Link copied to clipboard
open override fun toJava(): SharedVPCHostProjectArgs