UNPKG

@pulumiverse/scaleway

Version:

A Pulumi package for creating and managing Scaleway cloud resources.

338 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 Interlink Links. * * A link is a logical Interlink session created within a PoP, representing the connection between your infrastructure and Scaleway. Links can be hosted (facilitated by a partner's shared connection) or self-hosted (using your own dedicated physical connection). * * For more information, see [the Interlink documentation](https://www.scaleway.com/en/docs/network/interlink/) and [API documentation](https://www.scaleway.com/en/developers/api/interlink/). * * ## Example Usage * * ### Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * const pop = scaleway.interlink.getPop({ * name: "Telehouse TH2", * }); * const partner = scaleway.interlink.getPartner({ * name: "FranceIX", * }); * const main = new scaleway.interlink.Link("main", { * name: "my-hosted-link", * popId: pop.then(pop => pop.id), * partnerId: partner.then(partner => partner.id), * bandwidthMbps: 50, * }); * ``` * * ### With VPC * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * const pop = scaleway.interlink.getPop({ * name: "Telehouse TH2", * }); * const partner = scaleway.interlink.getPartner({ * name: "FranceIX", * }); * const vpc = new scaleway.network.Vpc("vpc", {name: "my-vpc"}); * const main = new scaleway.interlink.Link("main", { * name: "my-hosted-link", * popId: pop.then(pop => pop.id), * partnerId: partner.then(partner => partner.id), * bandwidthMbps: 50, * vpcId: vpc.id, * }); * ``` * * ## Import * * Interlink Links can be imported using `{region}/{id}`, e.g. * * ```sh * $ pulumi import scaleway:interlink/link:Link main fr-par/11111111-1111-1111-1111-111111111111 * ``` */ export declare class Link extends pulumi.CustomResource { /** * Get an existing Link 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?: LinkState, opts?: pulumi.CustomResourceOptions): Link; /** * Returns true if the given object is an instance of Link. 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 Link; /** * Desired bandwidth for the link. Must be compatible with available link bandwidths and remaining bandwidth capacity of the connection. */ readonly bandwidthMbps: pulumi.Output<number>; /** * Status of the link's BGP IPv4 session. */ readonly bgpV4Status: pulumi.Output<string>; /** * Status of the link's BGP IPv6 session. */ readonly bgpV6Status: pulumi.Output<string>; /** * If set, creates a self-hosted link using this dedicated physical connection. Conflicts with `partnerId`. */ readonly connectionId: pulumi.Output<string | undefined>; /** * Creation date of the link (RFC 3339 format). */ readonly createdAt: pulumi.Output<string>; /** * Defines whether route propagation is enabled or not. Defaults to `false`. */ readonly enableRoutePropagation: pulumi.Output<boolean | undefined>; /** * Name of the link. If not provided, a name will be randomly generated. */ readonly name: pulumi.Output<string>; /** * Organization ID. */ readonly organizationId: pulumi.Output<string>; /** * Used to identify a link from a user or partner's point of view. */ readonly pairingKey: pulumi.Output<string>; /** * If set, creates a hosted link on a partner's connection. Specify the ID of the chosen partner, who already has a shared connection with available bandwidth. Conflicts with `connectionId`. */ readonly partnerId: pulumi.Output<string | undefined>; /** * For self-hosted links, the peer AS Number to establish BGP session. Required when `connectionId` is set. */ readonly peerAsn: pulumi.Output<number>; /** * BGP configuration on peer's side (on-premises or other hosting provider). Contains `asn`, `ipv4`, `ipv6`. */ readonly peerBgpConfigs: pulumi.Output<outputs.interlink.LinkPeerBgpConfig[]>; /** * PoP (location) where the link will be created. */ readonly popId: pulumi.Output<string>; /** * `projectId`) The ID of the project the link is associated with. */ readonly projectId: pulumi.Output<string>; /** * `region`) The region in which the link should be created. */ readonly region: pulumi.Output<string | undefined>; /** * If set, attaches this routing policy containing IPv4 prefixes to the link. A BGP IPv4 session will be created. */ readonly routingPolicyV4Id: pulumi.Output<string>; /** * If set, attaches this routing policy containing IPv6 prefixes to the link. A BGP IPv6 session will be created. */ readonly routingPolicyV6Id: pulumi.Output<string>; /** * BGP configuration on Scaleway's side. Contains `asn`, `ipv4`, `ipv6`. */ readonly scwBgpConfigs: pulumi.Output<outputs.interlink.LinkScwBgpConfig[]>; /** * Status of the link. */ readonly status: pulumi.Output<string>; /** * List of tags to apply to the link. */ readonly tags: pulumi.Output<string[] | undefined>; /** * Last modification date of the link (RFC 3339 format). */ readonly updatedAt: pulumi.Output<string>; /** * For self-hosted links only, the VLAN ID. If the VLAN is not available (already taken or out of range), an error is returned. */ readonly vlan: pulumi.Output<number>; /** * ID of the Scaleway VPC to attach to the link. */ readonly vpcId: pulumi.Output<string | undefined>; /** * Create a Link 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: LinkArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Link resources. */ export interface LinkState { /** * Desired bandwidth for the link. Must be compatible with available link bandwidths and remaining bandwidth capacity of the connection. */ bandwidthMbps?: pulumi.Input<number | undefined>; /** * Status of the link's BGP IPv4 session. */ bgpV4Status?: pulumi.Input<string | undefined>; /** * Status of the link's BGP IPv6 session. */ bgpV6Status?: pulumi.Input<string | undefined>; /** * If set, creates a self-hosted link using this dedicated physical connection. Conflicts with `partnerId`. */ connectionId?: pulumi.Input<string | undefined>; /** * Creation date of the link (RFC 3339 format). */ createdAt?: pulumi.Input<string | undefined>; /** * Defines whether route propagation is enabled or not. Defaults to `false`. */ enableRoutePropagation?: pulumi.Input<boolean | undefined>; /** * Name of the link. If not provided, a name will be randomly generated. */ name?: pulumi.Input<string | undefined>; /** * Organization ID. */ organizationId?: pulumi.Input<string | undefined>; /** * Used to identify a link from a user or partner's point of view. */ pairingKey?: pulumi.Input<string | undefined>; /** * If set, creates a hosted link on a partner's connection. Specify the ID of the chosen partner, who already has a shared connection with available bandwidth. Conflicts with `connectionId`. */ partnerId?: pulumi.Input<string | undefined>; /** * For self-hosted links, the peer AS Number to establish BGP session. Required when `connectionId` is set. */ peerAsn?: pulumi.Input<number | undefined>; /** * BGP configuration on peer's side (on-premises or other hosting provider). Contains `asn`, `ipv4`, `ipv6`. */ peerBgpConfigs?: pulumi.Input<pulumi.Input<inputs.interlink.LinkPeerBgpConfig>[] | undefined>; /** * PoP (location) where the link will be created. */ popId?: pulumi.Input<string | undefined>; /** * `projectId`) The ID of the project the link is associated with. */ projectId?: pulumi.Input<string | undefined>; /** * `region`) The region in which the link should be created. */ region?: pulumi.Input<string | undefined>; /** * If set, attaches this routing policy containing IPv4 prefixes to the link. A BGP IPv4 session will be created. */ routingPolicyV4Id?: pulumi.Input<string | undefined>; /** * If set, attaches this routing policy containing IPv6 prefixes to the link. A BGP IPv6 session will be created. */ routingPolicyV6Id?: pulumi.Input<string | undefined>; /** * BGP configuration on Scaleway's side. Contains `asn`, `ipv4`, `ipv6`. */ scwBgpConfigs?: pulumi.Input<pulumi.Input<inputs.interlink.LinkScwBgpConfig>[] | undefined>; /** * Status of the link. */ status?: pulumi.Input<string | undefined>; /** * List of tags to apply to the link. */ tags?: pulumi.Input<pulumi.Input<string>[] | undefined>; /** * Last modification date of the link (RFC 3339 format). */ updatedAt?: pulumi.Input<string | undefined>; /** * For self-hosted links only, the VLAN ID. If the VLAN is not available (already taken or out of range), an error is returned. */ vlan?: pulumi.Input<number | undefined>; /** * ID of the Scaleway VPC to attach to the link. */ vpcId?: pulumi.Input<string | undefined>; } /** * The set of arguments for constructing a Link resource. */ export interface LinkArgs { /** * Desired bandwidth for the link. Must be compatible with available link bandwidths and remaining bandwidth capacity of the connection. */ bandwidthMbps: pulumi.Input<number>; /** * If set, creates a self-hosted link using this dedicated physical connection. Conflicts with `partnerId`. */ connectionId?: pulumi.Input<string | undefined>; /** * Defines whether route propagation is enabled or not. Defaults to `false`. */ enableRoutePropagation?: pulumi.Input<boolean | undefined>; /** * Name of the link. If not provided, a name will be randomly generated. */ name?: pulumi.Input<string | undefined>; /** * If set, creates a hosted link on a partner's connection. Specify the ID of the chosen partner, who already has a shared connection with available bandwidth. Conflicts with `connectionId`. */ partnerId?: pulumi.Input<string | undefined>; /** * For self-hosted links, the peer AS Number to establish BGP session. Required when `connectionId` is set. */ peerAsn?: pulumi.Input<number | undefined>; /** * PoP (location) where the link will be created. */ popId: pulumi.Input<string>; /** * `projectId`) The ID of the project the link is associated with. */ projectId?: pulumi.Input<string | undefined>; /** * `region`) The region in which the link should be created. */ region?: pulumi.Input<string | undefined>; /** * If set, attaches this routing policy containing IPv4 prefixes to the link. A BGP IPv4 session will be created. */ routingPolicyV4Id?: pulumi.Input<string | undefined>; /** * If set, attaches this routing policy containing IPv6 prefixes to the link. A BGP IPv6 session will be created. */ routingPolicyV6Id?: pulumi.Input<string | undefined>; /** * List of tags to apply to the link. */ tags?: pulumi.Input<pulumi.Input<string>[] | undefined>; /** * For self-hosted links only, the VLAN ID. If the VLAN is not available (already taken or out of range), an error is returned. */ vlan?: pulumi.Input<number | undefined>; /** * ID of the Scaleway VPC to attach to the link. */ vpcId?: pulumi.Input<string | undefined>; } //# sourceMappingURL=link.d.ts.map