UNPKG

@pulumiverse/scaleway

Version:

A Pulumi package for creating and managing Scaleway cloud resources.

360 lines 12.8 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Creates and manages Scaleway Site-to-Site VPN Connections. * A connection links a Scaleway VPN Gateway to a Customer Gateway and establishes an IPSec tunnel with BGP routing. * * For more information, see [the main documentation](https://www.scaleway.com/en/docs/site-to-site-vpn/reference-content/understanding-s2svpn/). * * ## Example Usage * * ### Basic Connection * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * const vpc = new scaleway.network.Vpc("vpc", {name: "my-vpc"}); * const pn = new scaleway.network.PrivateNetwork("pn", { * name: "my-private-network", * vpcId: vpc.id, * ipv4Subnet: { * subnet: "10.0.1.0/24", * }, * }); * const gateway = new scaleway.s2svpn.Gateway("gateway", { * name: "my-vpn-gateway", * gatewayType: "VGW-S", * privateNetworkId: pn.id, * }); * const customerGw = new scaleway.s2svpn.CustomerGateway("customer_gw", { * name: "my-customer-gateway", * ipv4Public: "203.0.113.1", * asn: 65000, * }); * const policy = new scaleway.s2svpn.RoutingPolicy("policy", { * name: "my-routing-policy", * prefixFilterIns: ["10.0.2.0/24"], * prefixFilterOuts: ["10.0.1.0/24"], * }); * const main = new scaleway.s2svpn.Connection("main", { * name: "my-vpn-connection", * vpnGatewayId: gateway.id, * customerGatewayId: customerGw.id, * initiationPolicy: "customer_gateway", * enableRoutePropagation: true, * bgpConfigIpv4s: [{ * routingPolicyId: policy.id, * privateIp: "169.254.0.1/30", * peerPrivateIp: "169.254.0.2/30", * }], * ikev2Ciphers: [{ * encryption: "aes256", * integrity: "sha256", * dhGroup: "modp2048", * }], * espCiphers: [{ * encryption: "aes256", * integrity: "sha256", * dhGroup: "modp2048", * }], * }); * ``` * * ## Import * * Connections can be imported using `{region}/{id}`, e.g. * * ```sh * $ pulumi import scaleway:s2svpn/connection:Connection main fr-par/11111111-1111-1111-1111-111111111111 * ``` */ export declare class Connection extends pulumi.CustomResource { /** * Get an existing Connection 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?: ConnectionState, opts?: pulumi.CustomResourceOptions): Connection; /** * Returns true if the given object is an instance of Connection. 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 Connection; /** * BGP configuration for IPv4. See BGP Config below. */ readonly bgpConfigIpv4s: pulumi.Output<outputs.s2svpn.ConnectionBgpConfigIpv4[]>; /** * BGP configuration for IPv6. See BGP Config below. */ readonly bgpConfigIpv6s: pulumi.Output<outputs.s2svpn.ConnectionBgpConfigIpv6[]>; /** * The BGP IPv4 session information. See BGP Session below. */ readonly bgpSessionIpv4s: pulumi.Output<outputs.s2svpn.ConnectionBgpSessionIpv4[]>; /** * The BGP IPv6 session information. See BGP Session below. */ readonly bgpSessionIpv6s: pulumi.Output<outputs.s2svpn.ConnectionBgpSessionIpv6[]>; /** * The status of the BGP IPv4 session. */ readonly bgpStatusIpv4: pulumi.Output<string>; /** * The status of the BGP IPv6 session. */ readonly bgpStatusIpv6: pulumi.Output<string>; /** * The date and time of the creation of the connection (RFC 3339 format). */ readonly createdAt: pulumi.Output<string>; /** * The ID of the customer gateway to attach to the connection. */ readonly customerGatewayId: pulumi.Output<string>; /** * Defines whether route propagation is enabled or not. */ readonly enableRoutePropagation: pulumi.Output<boolean>; /** * ESP cipher configuration for Phase 2 (data encryption). See Cipher Config below. */ readonly espCiphers: pulumi.Output<outputs.s2svpn.ConnectionEspCipher[]>; /** * IKEv2 cipher configuration for Phase 1 (tunnel establishment). See Cipher Config below. */ readonly ikev2Ciphers: pulumi.Output<outputs.s2svpn.ConnectionIkev2Cipher[]>; /** * Defines who initiates the IPSec tunnel. */ readonly initiationPolicy: pulumi.Output<string>; /** * Defines IP version of the IPSec Tunnel. Defaults to `false` (IPv4). */ readonly isIpv6: pulumi.Output<boolean>; /** * The name of the connection. */ readonly name: pulumi.Output<string>; /** * The Organization ID the connection is associated with. */ readonly organizationId: pulumi.Output<string>; /** * `projectId`) The ID of the project the connection is associated with. */ readonly projectId: pulumi.Output<string>; /** * `region`) The region in which the connection should be created. */ readonly region: pulumi.Output<string | undefined>; /** * Whether route propagation is enabled. */ readonly routePropagationEnabled: pulumi.Output<boolean>; /** * The ID of the secret containing the pre-shared key (PSK) for the connection. */ readonly secretId: pulumi.Output<string>; /** * The version of the secret containing the PSK. */ readonly secretVersion: pulumi.Output<number>; /** * The status of the connection. */ readonly status: pulumi.Output<string>; /** * The list of tags to apply to the connection. */ readonly tags: pulumi.Output<string[] | undefined>; /** * The status of the IPSec tunnel. */ readonly tunnelStatus: pulumi.Output<string>; /** * The date and time of the last update of the connection (RFC 3339 format). */ readonly updatedAt: pulumi.Output<string>; /** * The ID of the VPN gateway to attach to the connection. */ readonly vpnGatewayId: pulumi.Output<string>; /** * Create a Connection 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?: ConnectionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Connection resources. */ export interface ConnectionState { /** * BGP configuration for IPv4. See BGP Config below. */ bgpConfigIpv4s?: pulumi.Input<pulumi.Input<inputs.s2svpn.ConnectionBgpConfigIpv4>[] | undefined>; /** * BGP configuration for IPv6. See BGP Config below. */ bgpConfigIpv6s?: pulumi.Input<pulumi.Input<inputs.s2svpn.ConnectionBgpConfigIpv6>[] | undefined>; /** * The BGP IPv4 session information. See BGP Session below. */ bgpSessionIpv4s?: pulumi.Input<pulumi.Input<inputs.s2svpn.ConnectionBgpSessionIpv4>[] | undefined>; /** * The BGP IPv6 session information. See BGP Session below. */ bgpSessionIpv6s?: pulumi.Input<pulumi.Input<inputs.s2svpn.ConnectionBgpSessionIpv6>[] | undefined>; /** * The status of the BGP IPv4 session. */ bgpStatusIpv4?: pulumi.Input<string | undefined>; /** * The status of the BGP IPv6 session. */ bgpStatusIpv6?: pulumi.Input<string | undefined>; /** * The date and time of the creation of the connection (RFC 3339 format). */ createdAt?: pulumi.Input<string | undefined>; /** * The ID of the customer gateway to attach to the connection. */ customerGatewayId?: pulumi.Input<string | undefined>; /** * Defines whether route propagation is enabled or not. */ enableRoutePropagation?: pulumi.Input<boolean | undefined>; /** * ESP cipher configuration for Phase 2 (data encryption). See Cipher Config below. */ espCiphers?: pulumi.Input<pulumi.Input<inputs.s2svpn.ConnectionEspCipher>[] | undefined>; /** * IKEv2 cipher configuration for Phase 1 (tunnel establishment). See Cipher Config below. */ ikev2Ciphers?: pulumi.Input<pulumi.Input<inputs.s2svpn.ConnectionIkev2Cipher>[] | undefined>; /** * Defines who initiates the IPSec tunnel. */ initiationPolicy?: pulumi.Input<string | undefined>; /** * Defines IP version of the IPSec Tunnel. Defaults to `false` (IPv4). */ isIpv6?: pulumi.Input<boolean | undefined>; /** * The name of the connection. */ name?: pulumi.Input<string | undefined>; /** * The Organization ID the connection is associated with. */ organizationId?: pulumi.Input<string | undefined>; /** * `projectId`) The ID of the project the connection is associated with. */ projectId?: pulumi.Input<string | undefined>; /** * `region`) The region in which the connection should be created. */ region?: pulumi.Input<string | undefined>; /** * Whether route propagation is enabled. */ routePropagationEnabled?: pulumi.Input<boolean | undefined>; /** * The ID of the secret containing the pre-shared key (PSK) for the connection. */ secretId?: pulumi.Input<string | undefined>; /** * The version of the secret containing the PSK. */ secretVersion?: pulumi.Input<number | undefined>; /** * The status of the connection. */ status?: pulumi.Input<string | undefined>; /** * The list of tags to apply to the connection. */ tags?: pulumi.Input<pulumi.Input<string>[] | undefined>; /** * The status of the IPSec tunnel. */ tunnelStatus?: pulumi.Input<string | undefined>; /** * The date and time of the last update of the connection (RFC 3339 format). */ updatedAt?: pulumi.Input<string | undefined>; /** * The ID of the VPN gateway to attach to the connection. */ vpnGatewayId?: pulumi.Input<string | undefined>; } /** * The set of arguments for constructing a Connection resource. */ export interface ConnectionArgs { /** * BGP configuration for IPv4. See BGP Config below. */ bgpConfigIpv4s?: pulumi.Input<pulumi.Input<inputs.s2svpn.ConnectionBgpConfigIpv4>[] | undefined>; /** * BGP configuration for IPv6. See BGP Config below. */ bgpConfigIpv6s?: pulumi.Input<pulumi.Input<inputs.s2svpn.ConnectionBgpConfigIpv6>[] | undefined>; /** * The ID of the customer gateway to attach to the connection. */ customerGatewayId?: pulumi.Input<string | undefined>; /** * Defines whether route propagation is enabled or not. */ enableRoutePropagation?: pulumi.Input<boolean | undefined>; /** * ESP cipher configuration for Phase 2 (data encryption). See Cipher Config below. */ espCiphers?: pulumi.Input<pulumi.Input<inputs.s2svpn.ConnectionEspCipher>[] | undefined>; /** * IKEv2 cipher configuration for Phase 1 (tunnel establishment). See Cipher Config below. */ ikev2Ciphers?: pulumi.Input<pulumi.Input<inputs.s2svpn.ConnectionIkev2Cipher>[] | undefined>; /** * Defines who initiates the IPSec tunnel. */ initiationPolicy?: pulumi.Input<string | undefined>; /** * Defines IP version of the IPSec Tunnel. Defaults to `false` (IPv4). */ isIpv6?: pulumi.Input<boolean | undefined>; /** * The name of the connection. */ name?: pulumi.Input<string | undefined>; /** * `projectId`) The ID of the project the connection is associated with. */ projectId?: pulumi.Input<string | undefined>; /** * `region`) The region in which the connection should be created. */ region?: pulumi.Input<string | undefined>; /** * The list of tags to apply to the connection. */ tags?: pulumi.Input<pulumi.Input<string>[] | undefined>; /** * The ID of the VPN gateway to attach to the connection. */ vpnGatewayId?: pulumi.Input<string | undefined>; } //# sourceMappingURL=connection.d.ts.map