@pulumiverse/scaleway
Version:
A Pulumi package for creating and managing Scaleway cloud resources.
338 lines • 12.8 kB
TypeScript
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