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:
- API documentation
- How-to Guides
- Create a WireGroup
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.
nameThe Pulumi resource name.argsArguments used to configure this WireGroup. The set of arguments for WireGroup.optionsResource 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