@pulumi/gcp
Version:
A Pulumi package for creating and managing Google Cloud Platform resources.
256 lines (255 loc) • 11.6 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
/**
* Manages a Cloud Router interface. For more information see
* [the official documentation](https://cloud.google.com/compute/docs/cloudrouter)
* and
* [API](https://cloud.google.com/compute/docs/reference/latest/routers).
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const foobar = new gcp.compute.RouterInterface("foobar", {
* name: "interface-1",
* router: "router-1",
* region: "us-central1",
* ipRange: "169.254.1.1/30",
* vpnTunnel: "tunnel-1",
* });
* ```
*
* ## Import
*
* Router interfaces can be imported using the `project` (optional), `region`, `router`, and `name`, e.g.
*
* * `{{project_id}}/{{region}}/{{router}}/{{name}}`
*
* * `{{region}}/{{router}}/{{name}}`
*
* When using the `pulumi import` command, router interfaces can be imported using one of the formats above. For example:
*
* ```sh
* $ pulumi import gcp:compute/routerInterface:RouterInterface default {{project_id}}/{{region}}/{{router}}/{{name}}
* ```
*
* ```sh
* $ pulumi import gcp:compute/routerInterface:RouterInterface default {{region}}/{{router}}/{{name}}
* ```
*/
export declare class RouterInterface extends pulumi.CustomResource {
/**
* Get an existing RouterInterface resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: RouterInterfaceState, opts?: pulumi.CustomResourceOptions): RouterInterface;
/**
* Returns true if the given object is an instance of RouterInterface. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is RouterInterface;
/**
* The name or resource link to the
* VLAN interconnect for this interface. Changing this forces a new interface to
* be created. Only one of `vpnTunnel`, `interconnectAttachment` or `subnetwork` can be specified.
*/
readonly interconnectAttachment: pulumi.Output<string | undefined>;
/**
* IP address and range of the interface. The IP range must be
* in the RFC3927 link-local IP space. Changing this forces a new interface to be created.
*/
readonly ipRange: pulumi.Output<string>;
/**
* IP version of this interface. Can be either IPV4 or IPV6.
*/
readonly ipVersion: pulumi.Output<string>;
/**
* A unique name for the interface, required by GCE. Changing
* this forces a new interface to be created.
*/
readonly name: pulumi.Output<string>;
/**
* The regional private internal IP address that is used
* to establish BGP sessions to a VM instance acting as a third-party Router Appliance. Changing this forces a new interface to be created.
*/
readonly privateIpAddress: pulumi.Output<string | undefined>;
/**
* The ID of the project in which this interface's routerbelongs.
* If it is not provided, the provider project is used. Changing this forces a new interface to be created.
*/
readonly project: pulumi.Output<string>;
/**
* The name of the interface that is redundant to
* this interface. Changing this forces a new interface to be created.
*/
readonly redundantInterface: pulumi.Output<string>;
/**
* The region this interface's router sits in.
* If not specified, the project region will be used. Changing this forces a new interface to be created.
*/
readonly region: pulumi.Output<string>;
/**
* The name of the router this interface will be attached to.
* Changing this forces a new interface to be created.
*
* In addition to the above required fields, a router interface must have specified either `ipRange` or exactly one of `vpnTunnel`, `interconnectAttachment` or `subnetwork`, or both.
*
* - - -
*/
readonly router: pulumi.Output<string>;
/**
* The URI of the subnetwork resource that this interface
* belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. Changing this forces a new interface to be created. Only one of `vpnTunnel`, `interconnectAttachment` or `subnetwork` can be specified.
*/
readonly subnetwork: pulumi.Output<string | undefined>;
/**
* The name or resource link to the VPN tunnel this
* interface will be linked to. Changing this forces a new interface to be created. Only
* one of `vpnTunnel`, `interconnectAttachment` or `subnetwork` can be specified.
*/
readonly vpnTunnel: pulumi.Output<string | undefined>;
/**
* Create a RouterInterface resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: RouterInterfaceArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering RouterInterface resources.
*/
export interface RouterInterfaceState {
/**
* The name or resource link to the
* VLAN interconnect for this interface. Changing this forces a new interface to
* be created. Only one of `vpnTunnel`, `interconnectAttachment` or `subnetwork` can be specified.
*/
interconnectAttachment?: pulumi.Input<string>;
/**
* IP address and range of the interface. The IP range must be
* in the RFC3927 link-local IP space. Changing this forces a new interface to be created.
*/
ipRange?: pulumi.Input<string>;
/**
* IP version of this interface. Can be either IPV4 or IPV6.
*/
ipVersion?: pulumi.Input<string>;
/**
* A unique name for the interface, required by GCE. Changing
* this forces a new interface to be created.
*/
name?: pulumi.Input<string>;
/**
* The regional private internal IP address that is used
* to establish BGP sessions to a VM instance acting as a third-party Router Appliance. Changing this forces a new interface to be created.
*/
privateIpAddress?: pulumi.Input<string>;
/**
* The ID of the project in which this interface's routerbelongs.
* If it is not provided, the provider project is used. Changing this forces a new interface to be created.
*/
project?: pulumi.Input<string>;
/**
* The name of the interface that is redundant to
* this interface. Changing this forces a new interface to be created.
*/
redundantInterface?: pulumi.Input<string>;
/**
* The region this interface's router sits in.
* If not specified, the project region will be used. Changing this forces a new interface to be created.
*/
region?: pulumi.Input<string>;
/**
* The name of the router this interface will be attached to.
* Changing this forces a new interface to be created.
*
* In addition to the above required fields, a router interface must have specified either `ipRange` or exactly one of `vpnTunnel`, `interconnectAttachment` or `subnetwork`, or both.
*
* - - -
*/
router?: pulumi.Input<string>;
/**
* The URI of the subnetwork resource that this interface
* belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. Changing this forces a new interface to be created. Only one of `vpnTunnel`, `interconnectAttachment` or `subnetwork` can be specified.
*/
subnetwork?: pulumi.Input<string>;
/**
* The name or resource link to the VPN tunnel this
* interface will be linked to. Changing this forces a new interface to be created. Only
* one of `vpnTunnel`, `interconnectAttachment` or `subnetwork` can be specified.
*/
vpnTunnel?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a RouterInterface resource.
*/
export interface RouterInterfaceArgs {
/**
* The name or resource link to the
* VLAN interconnect for this interface. Changing this forces a new interface to
* be created. Only one of `vpnTunnel`, `interconnectAttachment` or `subnetwork` can be specified.
*/
interconnectAttachment?: pulumi.Input<string>;
/**
* IP address and range of the interface. The IP range must be
* in the RFC3927 link-local IP space. Changing this forces a new interface to be created.
*/
ipRange?: pulumi.Input<string>;
/**
* IP version of this interface. Can be either IPV4 or IPV6.
*/
ipVersion?: pulumi.Input<string>;
/**
* A unique name for the interface, required by GCE. Changing
* this forces a new interface to be created.
*/
name?: pulumi.Input<string>;
/**
* The regional private internal IP address that is used
* to establish BGP sessions to a VM instance acting as a third-party Router Appliance. Changing this forces a new interface to be created.
*/
privateIpAddress?: pulumi.Input<string>;
/**
* The ID of the project in which this interface's routerbelongs.
* If it is not provided, the provider project is used. Changing this forces a new interface to be created.
*/
project?: pulumi.Input<string>;
/**
* The name of the interface that is redundant to
* this interface. Changing this forces a new interface to be created.
*/
redundantInterface?: pulumi.Input<string>;
/**
* The region this interface's router sits in.
* If not specified, the project region will be used. Changing this forces a new interface to be created.
*/
region?: pulumi.Input<string>;
/**
* The name of the router this interface will be attached to.
* Changing this forces a new interface to be created.
*
* In addition to the above required fields, a router interface must have specified either `ipRange` or exactly one of `vpnTunnel`, `interconnectAttachment` or `subnetwork`, or both.
*
* - - -
*/
router: pulumi.Input<string>;
/**
* The URI of the subnetwork resource that this interface
* belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. Changing this forces a new interface to be created. Only one of `vpnTunnel`, `interconnectAttachment` or `subnetwork` can be specified.
*/
subnetwork?: pulumi.Input<string>;
/**
* The name or resource link to the VPN tunnel this
* interface will be linked to. Changing this forces a new interface to be created. Only
* one of `vpnTunnel`, `interconnectAttachment` or `subnetwork` can be specified.
*/
vpnTunnel?: pulumi.Input<string>;
}