WireGroup class

The WireGroup resource represents a group of redundant wires between interconnects in two different metros. Each WireGroup belongs to a CrossSiteNetwork. A wire group defines endpoints and the wires which exist between them.

To get more information about WireGroup, see:

Example Usage

Compute Wire Group Basic

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

const project = gcp.organizations.getProject({});
const example_cross_site_network = new gcp.compute.CrossSiteNetwork("example-cross-site-network", {
    name: "test-cross-site-network",
    description: "Example cross site network",
});
const example_test_wire_group = new gcp.compute.WireGroup("example-test-wire-group", {
    name: "test-wire-group",
    description: "Example Wire Group",
    crossSiteNetwork: "test-cross-site-network",
    wireProperties: {
        bandwidthUnmetered: 10,
        faultResponse: "NONE",
        bandwidthAllocation: "ALLOCATE_PER_WIRE",
    },
    adminEnabled: true,
}, {
    dependsOn: [example_cross_site_network],
});
import pulumi
import pulumi_gcp as gcp

project = gcp.organizations.get_project()
example_cross_site_network = gcp.compute.CrossSiteNetwork("example-cross-site-network",
    name="test-cross-site-network",
    description="Example cross site network")
example_test_wire_group = gcp.compute.WireGroup("example-test-wire-group",
    name="test-wire-group",
    description="Example Wire Group",
    cross_site_network="test-cross-site-network",
    wire_properties={
        "bandwidth_unmetered": 10,
        "fault_response": "NONE",
        "bandwidth_allocation": "ALLOCATE_PER_WIRE",
    },
    admin_enabled=True,
    opts = pulumi.ResourceOptions(depends_on=[example_cross_site_network]))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var project = Gcp.Organizations.GetProject.Invoke();

    var example_cross_site_network = new Gcp.Compute.CrossSiteNetwork("example-cross-site-network", new()
    {
        Name = "test-cross-site-network",
        Description = "Example cross site network",
    });

    var example_test_wire_group = new Gcp.Compute.WireGroup("example-test-wire-group", new()
    {
        Name = "test-wire-group",
        Description = "Example Wire Group",
        CrossSiteNetwork = "test-cross-site-network",
        WireProperties = new Gcp.Compute.Inputs.WireGroupWirePropertiesArgs
        {
            BandwidthUnmetered = 10,
            FaultResponse = "NONE",
            BandwidthAllocation = "ALLOCATE_PER_WIRE",
        },
        AdminEnabled = true,
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            example_cross_site_network,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
		if err != nil {
			return err
		}
		example_cross_site_network, err := compute.NewCrossSiteNetwork(ctx, "example-cross-site-network", &compute.CrossSiteNetworkArgs{
			Name:        pulumi.String("test-cross-site-network"),
			Description: pulumi.String("Example cross site network"),
		})
		if err != nil {
			return err
		}
		_, err = compute.NewWireGroup(ctx, "example-test-wire-group", &compute.WireGroupArgs{
			Name:             pulumi.String("test-wire-group"),
			Description:      pulumi.String("Example Wire Group"),
			CrossSiteNetwork: pulumi.String("test-cross-site-network"),
			WireProperties: &compute.WireGroupWirePropertiesArgs{
				BandwidthUnmetered:  pulumi.Int(10),
				FaultResponse:       pulumi.String("NONE"),
				BandwidthAllocation: pulumi.String("ALLOCATE_PER_WIRE"),
			},
			AdminEnabled: pulumi.Bool(true),
		}, pulumi.DependsOn([]pulumi.Resource{
			example_cross_site_network,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

data "gcp_organizations_getproject" "project" {
}

resource "gcp_compute_crosssitenetwork" "example-cross-site-network" {
  name        = "test-cross-site-network"
  description = "Example cross site network"
}
resource "gcp_compute_wiregroup" "example-test-wire-group" {
  depends_on         = [gcp_compute_crosssitenetwork.example-cross-site-network]
  name               = "test-wire-group"
  description        = "Example Wire Group"
  cross_site_network = "test-cross-site-network"
  wire_properties = {
    bandwidth_unmetered  = 10
    fault_response       = "NONE"
    bandwidth_allocation = "ALLOCATE_PER_WIRE"
  }
  admin_enabled = true
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.compute.CrossSiteNetwork;
import com.pulumi.gcp.compute.CrossSiteNetworkArgs;
import com.pulumi.gcp.compute.WireGroup;
import com.pulumi.gcp.compute.WireGroupArgs;
import com.pulumi.gcp.compute.inputs.WireGroupWirePropertiesArgs;
import com.pulumi.resources.CustomResourceOptions;
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 project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
            .build());

        var example_cross_site_network = new CrossSiteNetwork("example-cross-site-network", CrossSiteNetworkArgs.builder()
            .name("test-cross-site-network")
            .description("Example cross site network")
            .build());

        var example_test_wire_group = new WireGroup("example-test-wire-group", WireGroupArgs.builder()
            .name("test-wire-group")
            .description("Example Wire Group")
            .crossSiteNetwork("test-cross-site-network")
            .wireProperties(WireGroupWirePropertiesArgs.builder()
                .bandwidthUnmetered(10)
                .faultResponse("NONE")
                .bandwidthAllocation("ALLOCATE_PER_WIRE")
                .build())
            .adminEnabled(true)
            .build(), CustomResourceOptions.builder()
                .dependsOn(example_cross_site_network)
                .build());

    }
}
resources:
  example-cross-site-network:
    type: gcp:compute:CrossSiteNetwork
    properties:
      name: test-cross-site-network
      description: Example cross site network
  example-test-wire-group:
    type: gcp:compute:WireGroup
    properties:
      name: test-wire-group
      description: Example Wire Group
      crossSiteNetwork: test-cross-site-network
      wireProperties:
        bandwidthUnmetered: 10
        faultResponse: NONE
        bandwidthAllocation: ALLOCATE_PER_WIRE
      adminEnabled: true
    options:
      dependsOn:
        - ${["example-cross-site-network"]}
variables:
  project:
    fn::invoke:
      function: gcp:organizations:getProject
      arguments: {}

Compute Wire Group Basic Beta

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

const project = gcp.organizations.getProject({});
const example_cross_site_network = new gcp.compute.CrossSiteNetwork("example-cross-site-network", {
    name: "test-cross-site-network-beta",
    description: "Example cross site network",
});
const example_test_wire_group_beta = new gcp.compute.WireGroup("example-test-wire-group-beta", {
    name: "test-wire-group-beta",
    description: "Example Wire Group Beta",
    crossSiteNetwork: "test-cross-site-network-beta",
    wireProperties: {
        bandwidthUnmetered: 10,
        faultResponse: "NONE",
        bandwidthAllocation: "ALLOCATE_PER_WIRE",
    },
    wireGroupProperties: {
        type: "WIRE",
    },
    adminEnabled: true,
}, {
    dependsOn: [example_cross_site_network],
});
import pulumi
import pulumi_gcp as gcp

project = gcp.organizations.get_project()
example_cross_site_network = gcp.compute.CrossSiteNetwork("example-cross-site-network",
    name="test-cross-site-network-beta",
    description="Example cross site network")
example_test_wire_group_beta = gcp.compute.WireGroup("example-test-wire-group-beta",
    name="test-wire-group-beta",
    description="Example Wire Group Beta",
    cross_site_network="test-cross-site-network-beta",
    wire_properties={
        "bandwidth_unmetered": 10,
        "fault_response": "NONE",
        "bandwidth_allocation": "ALLOCATE_PER_WIRE",
    },
    wire_group_properties={
        "type": "WIRE",
    },
    admin_enabled=True,
    opts = pulumi.ResourceOptions(depends_on=[example_cross_site_network]))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var project = Gcp.Organizations.GetProject.Invoke();

    var example_cross_site_network = new Gcp.Compute.CrossSiteNetwork("example-cross-site-network", new()
    {
        Name = "test-cross-site-network-beta",
        Description = "Example cross site network",
    });

    var example_test_wire_group_beta = new Gcp.Compute.WireGroup("example-test-wire-group-beta", new()
    {
        Name = "test-wire-group-beta",
        Description = "Example Wire Group Beta",
        CrossSiteNetwork = "test-cross-site-network-beta",
        WireProperties = new Gcp.Compute.Inputs.WireGroupWirePropertiesArgs
        {
            BandwidthUnmetered = 10,
            FaultResponse = "NONE",
            BandwidthAllocation = "ALLOCATE_PER_WIRE",
        },
        WireGroupProperties = new Gcp.Compute.Inputs.WireGroupWireGroupPropertiesArgs
        {
            Type = "WIRE",
        },
        AdminEnabled = true,
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            example_cross_site_network,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
		if err != nil {
			return err
		}
		example_cross_site_network, err := compute.NewCrossSiteNetwork(ctx, "example-cross-site-network", &compute.CrossSiteNetworkArgs{
			Name:        pulumi.String("test-cross-site-network-beta"),
			Description: pulumi.String("Example cross site network"),
		})
		if err != nil {
			return err
		}
		_, err = compute.NewWireGroup(ctx, "example-test-wire-group-beta", &compute.WireGroupArgs{
			Name:             pulumi.String("test-wire-group-beta"),
			Description:      pulumi.String("Example Wire Group Beta"),
			CrossSiteNetwork: pulumi.String("test-cross-site-network-beta"),
			WireProperties: &compute.WireGroupWirePropertiesArgs{
				BandwidthUnmetered:  pulumi.Int(10),
				FaultResponse:       pulumi.String("NONE"),
				BandwidthAllocation: pulumi.String("ALLOCATE_PER_WIRE"),
			},
			WireGroupProperties: &compute.WireGroupWireGroupPropertiesArgs{
				Type: pulumi.String("WIRE"),
			},
			AdminEnabled: pulumi.Bool(true),
		}, pulumi.DependsOn([]pulumi.Resource{
			example_cross_site_network,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

data "gcp_organizations_getproject" "project" {
}

resource "gcp_compute_crosssitenetwork" "example-cross-site-network" {
  name        = "test-cross-site-network-beta"
  description = "Example cross site network"
}
resource "gcp_compute_wiregroup" "example-test-wire-group-beta" {
  depends_on         = [gcp_compute_crosssitenetwork.example-cross-site-network]
  name               = "test-wire-group-beta"
  description        = "Example Wire Group Beta"
  cross_site_network = "test-cross-site-network-beta"
  wire_properties = {
    bandwidth_unmetered  = 10
    fault_response       = "NONE"
    bandwidth_allocation = "ALLOCATE_PER_WIRE"
  }
  wire_group_properties = {
    type = "WIRE"
  }
  admin_enabled = true
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.compute.CrossSiteNetwork;
import com.pulumi.gcp.compute.CrossSiteNetworkArgs;
import com.pulumi.gcp.compute.WireGroup;
import com.pulumi.gcp.compute.WireGroupArgs;
import com.pulumi.gcp.compute.inputs.WireGroupWirePropertiesArgs;
import com.pulumi.gcp.compute.inputs.WireGroupWireGroupPropertiesArgs;
import com.pulumi.resources.CustomResourceOptions;
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 project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
            .build());

        var example_cross_site_network = new CrossSiteNetwork("example-cross-site-network", CrossSiteNetworkArgs.builder()
            .name("test-cross-site-network-beta")
            .description("Example cross site network")
            .build());

        var example_test_wire_group_beta = new WireGroup("example-test-wire-group-beta", WireGroupArgs.builder()
            .name("test-wire-group-beta")
            .description("Example Wire Group Beta")
            .crossSiteNetwork("test-cross-site-network-beta")
            .wireProperties(WireGroupWirePropertiesArgs.builder()
                .bandwidthUnmetered(10)
                .faultResponse("NONE")
                .bandwidthAllocation("ALLOCATE_PER_WIRE")
                .build())
            .wireGroupProperties(WireGroupWireGroupPropertiesArgs.builder()
                .type("WIRE")
                .build())
            .adminEnabled(true)
            .build(), CustomResourceOptions.builder()
                .dependsOn(example_cross_site_network)
                .build());

    }
}
resources:
  example-cross-site-network:
    type: gcp:compute:CrossSiteNetwork
    properties:
      name: test-cross-site-network-beta
      description: Example cross site network
  example-test-wire-group-beta:
    type: gcp:compute:WireGroup
    properties:
      name: test-wire-group-beta
      description: Example Wire Group Beta
      crossSiteNetwork: test-cross-site-network-beta
      wireProperties:
        bandwidthUnmetered: 10
        faultResponse: NONE
        bandwidthAllocation: ALLOCATE_PER_WIRE
      wireGroupProperties:
        type: WIRE
      adminEnabled: true
    options:
      dependsOn:
        - ${["example-cross-site-network"]}
variables:
  project:
    fn::invoke:
      function: gcp:organizations:getProject
      arguments: {}

Import

WireGroup can be imported using any of these accepted formats:

  • projects/{{project}}/global/crossSiteNetworks/{{cross_site_network}}/wireGroups/{{name}}
  • {{project}}/{{cross_site_network}}/{{name}}
  • {{cross_site_network}}/{{name}}

When using the pulumi import command, WireGroup can be imported using one of the formats above. For example:

$ pulumi import gcp:compute/wireGroup:WireGroup default projects/{{project}}/global/crossSiteNetworks/{{cross_site_network}}/wireGroups/{{name}}
$ pulumi import gcp:compute/wireGroup:WireGroup default {{project}}/{{cross_site_network}}/{{name}}
$ pulumi import gcp:compute/wireGroup:WireGroup default {{cross_site_network}}/{{name}}

Constructors

WireGroup(String name, {WireGroupArgs? args, CustomResourceOptions? options})
Creates a new WireGroup. name The Pulumi resource name. args Arguments used to configure this WireGroup. The set of arguments for WireGroup. options Resource options controlling this resource's behavior.
WireGroup.reference(String urn)
Creates a typed reference to an existing WireGroup resource.

Properties

adminEnabled ↔ Output<bool?>
Indicates whether the wire group is administratively enabled.
latefinal
childResources → Set<Resource>
finalinherited
completionSources ↔ Map<String, IOutputCompletionSource>
latefinalinherited
creationTimestamp ↔ Output<String>
Creation timestamp in RFC3339 text format.
latefinal
crossSiteNetwork ↔ Output<String>
Required cross site network to which wire group belongs.
latefinal
deletionPolicy ↔ Output<String>
Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
latefinal
description ↔ Output<String?>
An optional description of this resource. Provide this property when you create the resource.
latefinal
endpoints ↔ Output<List<WireGroupEndpoint>?>
Endpoints grouped by location, each mapping to interconnect configurations. Structure is documented below.
latefinal
hashCode → int
The hash code for this object.
no setterinherited
id ↔ Output<String>
getter/setter pairinherited
isCustom → bool
Returns whether this resource is provider-managed.
no setterinherited
isProtected → bool
Returns whether this resource is protected from deletion.
no setterinherited
isRemote → bool
Whether this resource is registered as remote.
no setterinherited
isResourceReference → bool
Whether this instance represents a resource value returned over RPC.
finalinherited
name ↔ Output<String>
Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
latefinal
project ↔ Output<String>
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
latefinal
resourceTransforms → List<ResourceTransform>
Inherited/explicit async transforms.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
topologies ↔ Output<List<WireGroupTopology>>
Topology details for the wire group configuration. Structure is documented below.
latefinal
transformations → List<ResourceTransformation>
Inherited/explicit legacy transformations.
no setterinherited
urn ↔ Output<String>
latefinalinherited
wireGroupProperties ↔ Output<WireGroupWireGroupProperties?>
(Optional, Beta) Properties specific to the wire group. Structure is documented below.
latefinal
wireProperties ↔ Output<WireGroupWireProperties?>
Default properties for wires within the group. Structure is documented below.
latefinal
wires ↔ Output<List<WireGroupWire>>
The single/redundant wire(s) managed by the wire group. Structure is documented below.
latefinal

Methods

failId(Object error) → void
Completes this resource ID with an error when registration fails.
inherited
failOutputs(Object error) → void
Completes all output properties with error.
inherited
failUrn(Object error) → void
Completes this resource URN with an error when registration fails.
inherited
getProvider(String moduleMember) → ProviderResource?
Returns provider for moduleMember's package, if configured.
inherited
getResourceName() → String
Returns this resource's logical name.
inherited
getResourceType() → String
Returns this resource's Pulumi type token.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
registerOutput<T>(String propertyName, {Object? decoder(Object?)?, bool isSecret = false}) → Output<T>
Registers a dynamic output property for this resource.
inherited
resolveId(String? value, {required bool isKnown}) → void
Resolves the provider-assigned ID for this resource.
inherited
resolveOutputs(Struct outputs) → void
Resolves all output properties from a monitor response payload.
inherited
resolveUrn(String value) → void
Resolves this resource's URN once assigned by the engine.
inherited
serializeProperties(Map<String, dynamic> properties) → Future<Struct>
Serializes resource properties for RPC transmission.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

get(String name, Input<String> id, {WireGroupState? state, CustomResourceOptions? options}) → WireGroup
Gets an existing WireGroup resource's state with the given name and id.