Package com.pulumi.gcp.compute
Class RouterPeer
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.gcp.compute.RouterPeer
-
public class RouterPeer extends com.pulumi.resources.CustomResource
BGP information that must be configured into the routing stack to establish BGP peering. This information must specify the peer ASN and either the interface name, IP address, or peer IP address. Please refer to RFC4273. To get more information about RouterBgpPeer, see: * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/routers) * How-to Guides * [Google Cloud Router](https://cloud.google.com/router/docs/) ## Example Usage ### Router Peer Basic ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.gcp.compute.RouterPeer; import com.pulumi.gcp.compute.RouterPeerArgs; 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) { var peer = new RouterPeer("peer", RouterPeerArgs.builder() .advertisedRoutePriority(100) .interface_("interface-1") .peerAsn(65513) .region("us-central1") .router("my-router") .build()); } } ``` ### Router Peer Disabled ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.gcp.compute.RouterPeer; import com.pulumi.gcp.compute.RouterPeerArgs; 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) { var peer = new RouterPeer("peer", RouterPeerArgs.builder() .advertisedRoutePriority(100) .enable(false) .interface_("interface-1") .peerAsn(65513) .peerIpAddress("169.254.1.2") .region("us-central1") .router("my-router") .build()); } } ``` ### Router Peer Bfd ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.gcp.compute.RouterPeer; import com.pulumi.gcp.compute.RouterPeerArgs; import com.pulumi.gcp.compute.inputs.RouterPeerBfdArgs; 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) { var peer = new RouterPeer("peer", RouterPeerArgs.builder() .advertisedRoutePriority(100) .bfd(RouterPeerBfdArgs.builder() .minReceiveInterval(1000) .minTransmitInterval(1000) .multiplier(5) .sessionInitializationMode("ACTIVE") .build()) .interface_("interface-1") .peerAsn(65513) .peerIpAddress("169.254.1.2") .region("us-central1") .router("my-router") .build()); } } ``` ### Router Peer Router Appliance ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.gcp.compute.Network; import com.pulumi.gcp.compute.NetworkArgs; import com.pulumi.gcp.compute.Subnetwork; import com.pulumi.gcp.compute.SubnetworkArgs; import com.pulumi.gcp.compute.Address; import com.pulumi.gcp.compute.AddressArgs; import com.pulumi.gcp.compute.Instance; import com.pulumi.gcp.compute.InstanceArgs; import com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs; import com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs; import com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs; import com.pulumi.gcp.networkconnectivity.Hub; import com.pulumi.gcp.networkconnectivity.Spoke; import com.pulumi.gcp.networkconnectivity.SpokeArgs; import com.pulumi.gcp.networkconnectivity.inputs.SpokeLinkedRouterApplianceInstancesArgs; import com.pulumi.gcp.compute.Router; import com.pulumi.gcp.compute.RouterArgs; import com.pulumi.gcp.compute.inputs.RouterBgpArgs; import com.pulumi.gcp.compute.RouterInterface; import com.pulumi.gcp.compute.RouterInterfaceArgs; import com.pulumi.gcp.compute.RouterPeer; import com.pulumi.gcp.compute.RouterPeerArgs; 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) { var network = new Network("network", NetworkArgs.builder() .autoCreateSubnetworks(false) .build()); var subnetwork = new Subnetwork("subnetwork", SubnetworkArgs.builder() .network(network.selfLink()) .ipCidrRange("10.0.0.0/16") .region("us-central1") .build()); var addrIntf = new Address("addrIntf", AddressArgs.builder() .region(subnetwork.region()) .subnetwork(subnetwork.id()) .addressType("INTERNAL") .build()); var addrIntfRedundant = new Address("addrIntfRedundant", AddressArgs.builder() .region(subnetwork.region()) .subnetwork(subnetwork.id()) .addressType("INTERNAL") .build()); var addrPeer = new Address("addrPeer", AddressArgs.builder() .region(subnetwork.region()) .subnetwork(subnetwork.id()) .addressType("INTERNAL") .build()); var instance = new Instance("instance", InstanceArgs.builder() .zone("us-central1-a") .machineType("e2-medium") .canIpForward(true) .bootDisk(InstanceBootDiskArgs.builder() .initializeParams(InstanceBootDiskInitializeParamsArgs.builder() .image("debian-cloud/debian-11") .build()) .build()) .networkInterfaces(InstanceNetworkInterfaceArgs.builder() .networkIp(addrPeer.address()) .subnetwork(subnetwork.selfLink()) .build()) .build()); var hub = new Hub("hub"); var spoke = new Spoke("spoke", SpokeArgs.builder() .location(subnetwork.region()) .hub(hub.id()) .linkedRouterApplianceInstances(SpokeLinkedRouterApplianceInstancesArgs.builder() .instances(SpokeLinkedRouterApplianceInstancesInstanceArgs.builder() .virtualMachine(instance.selfLink()) .ipAddress(addrPeer.address()) .build()) .siteToSiteDataTransfer(false) .build()) .build()); var router = new Router("router", RouterArgs.builder() .region(subnetwork.region()) .network(network.selfLink()) .bgp(RouterBgpArgs.builder() .asn(64514) .build()) .build()); var interfaceRedundant = new RouterInterface("interfaceRedundant", RouterInterfaceArgs.builder() .region(router.region()) .router(router.name()) .subnetwork(subnetwork.selfLink()) .privateIpAddress(addrIntfRedundant.address()) .build()); var interface_ = new RouterInterface("interface", RouterInterfaceArgs.builder() .region(router.region()) .router(router.name()) .subnetwork(subnetwork.selfLink()) .privateIpAddress(addrIntf.address()) .redundantInterface(interfaceRedundant.name()) .build()); var peer = new RouterPeer("peer", RouterPeerArgs.builder() .router(router.name()) .region(router.region()) .interface_(interface_.name()) .routerApplianceInstance(instance.selfLink()) .peerAsn(65513) .peerIpAddress(addrPeer.address()) .build()); } } ``` ## Import RouterBgpPeer can be imported using any of these accepted formats* `projects/{{project}}/regions/{{region}}/routers/{{router}}/{{name}}` * `{{project}}/{{region}}/{{router}}/{{name}}` * `{{region}}/{{router}}/{{name}}` * `{{router}}/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import RouterBgpPeer using one of the formats above. For exampletf import { id = "projects/{{project}}/regions/{{region}}/routers/{{router}}/{{name}}" to = google_compute_router_peer.default } ```sh $ pulumi import gcp:compute/routerPeer:RouterPeer When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), RouterBgpPeer can be imported using one of the formats above. For example ``` ```sh $ pulumi import gcp:compute/routerPeer:RouterPeer default projects/{{project}}/regions/{{region}}/routers/{{router}}/{{name}} ``` ```sh $ pulumi import gcp:compute/routerPeer:RouterPeer default {{project}}/{{region}}/{{router}}/{{name}} ``` ```sh $ pulumi import gcp:compute/routerPeer:RouterPeer default {{region}}/{{router}}/{{name}} ``` ```sh $ pulumi import gcp:compute/routerPeer:RouterPeer default {{router}}/{{name}} ```
-
-
Constructor Summary
Constructors Constructor Description RouterPeer(java.lang.String name)
RouterPeer(java.lang.String name, RouterPeerArgs args)
RouterPeer(java.lang.String name, RouterPeerArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>>
advertisedGroups()
com.pulumi.core.Output<java.util.Optional<java.util.List<RouterPeerAdvertisedIpRange>>>
advertisedIpRanges()
com.pulumi.core.Output<java.util.Optional<java.lang.Integer>>
advertisedRoutePriority()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
advertiseMode()
com.pulumi.core.Output<RouterPeerBfd>
bfd()
com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>
enable()
com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>
enableIpv6()
static RouterPeer
get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, RouterPeerState state, com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>
interface_()
com.pulumi.core.Output<java.lang.String>
ipAddress()
com.pulumi.core.Output<java.lang.String>
ipv6NexthopAddress()
com.pulumi.core.Output<java.lang.String>
managementType()
com.pulumi.core.Output<java.lang.String>
name()
com.pulumi.core.Output<java.lang.Integer>
peerAsn()
com.pulumi.core.Output<java.lang.String>
peerIpAddress()
com.pulumi.core.Output<java.lang.String>
peerIpv6NexthopAddress()
com.pulumi.core.Output<java.lang.String>
project()
com.pulumi.core.Output<java.lang.String>
region()
com.pulumi.core.Output<java.lang.String>
router()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
routerApplianceInstance()
-
-
-
Constructor Detail
-
RouterPeer
public RouterPeer(java.lang.String name)
- Parameters:
name
- The _unique_ name of the resulting resource.
-
RouterPeer
public RouterPeer(java.lang.String name, RouterPeerArgs args)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.
-
RouterPeer
public RouterPeer(java.lang.String name, RouterPeerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.options
- A bag of options that control this resource's behavior.
-
-
Method Detail
-
advertiseMode
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> advertiseMode()
- Returns:
- User-specified flag to indicate which mode to use for advertisement. Valid values of this enum field are: `DEFAULT`, `CUSTOM` Default value is `DEFAULT`. Possible values are: `DEFAULT`, `CUSTOM`.
-
advertisedGroups
public com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>> advertisedGroups()
- Returns:
- User-specified list of prefix groups to advertise in custom mode, which currently supports the following option:
-
advertisedIpRanges
public com.pulumi.core.Output<java.util.Optional<java.util.List<RouterPeerAdvertisedIpRange>>> advertisedIpRanges()
- Returns:
- User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertiseMode is `CUSTOM` and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. Structure is documented below.
-
advertisedRoutePriority
public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> advertisedRoutePriority()
- Returns:
- The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win.
-
bfd
public com.pulumi.core.Output<RouterPeerBfd> bfd()
- Returns:
- BFD configuration for the BGP peering. Structure is documented below.
-
enable
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enable()
- Returns:
- The status of the BGP peer connection. If set to false, any active session with the peer is terminated and all associated routing information is removed. If set to true, the peer connection can be established with routing information. The default is true.
-
enableIpv6
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableIpv6()
- Returns:
- Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
-
interface_
public com.pulumi.core.Output<java.lang.String> interface_()
- Returns:
- Name of the interface the BGP peer is associated with.
-
ipAddress
public com.pulumi.core.Output<java.lang.String> ipAddress()
- Returns:
- IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
-
ipv6NexthopAddress
public com.pulumi.core.Output<java.lang.String> ipv6NexthopAddress()
- Returns:
- IPv6 address of the interface inside Google Cloud Platform. The address must be in the range 2600:2d00:0:2::/64 or 2600:2d00:0:3::/64. If you do not specify the next hop addresses, Google Cloud automatically assigns unused addresses from the 2600:2d00:0:2::/64 or 2600:2d00:0:3::/64 range for you.
-
managementType
public com.pulumi.core.Output<java.lang.String> managementType()
- Returns:
- The resource that configures and manages this BGP peer.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- Name of this BGP peer. 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.
-
peerAsn
public com.pulumi.core.Output<java.lang.Integer> peerAsn()
- Returns:
- Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value.
-
peerIpAddress
public com.pulumi.core.Output<java.lang.String> peerIpAddress()
- Returns:
- IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported. Required if `ip_address` is set.
-
peerIpv6NexthopAddress
public com.pulumi.core.Output<java.lang.String> peerIpv6NexthopAddress()
- Returns:
- IPv6 address of the BGP interface outside Google Cloud Platform. The address must be in the range 2600:2d00:0:2::/64 or 2600:2d00:0:3::/64. If you do not specify the next hop addresses, Google Cloud automatically assigns unused addresses from the 2600:2d00:0:2::/64 or 2600:2d00:0:3::/64 range for you.
-
project
public com.pulumi.core.Output<java.lang.String> project()
- Returns:
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where the router and BgpPeer reside. If it is not provided, the provider region is used.
-
router
public com.pulumi.core.Output<java.lang.String> router()
- Returns:
- The name of the Cloud Router in which this BgpPeer will be configured. ***
-
routerApplianceInstance
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> routerApplianceInstance()
- Returns:
- The URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session.
-
get
public static RouterPeer get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable RouterPeerState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name
- The _unique_ name of the resulting resource.id
- The _unique_ provider ID of the resource to lookup.state
-options
- Optional settings to control the behavior of the CustomResource.
-
-