@pulumiverse/scaleway
Version:
A Pulumi package for creating and managing Scaleway cloud resources.
179 lines • 7 kB
JavaScript
;
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.VpcRoute = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("./utilities");
/**
* Creates and manages Scaleway VPC Routes.
* For more information, see [the main documentation](https://www.scaleway.com/en/docs/vpc/concepts/).
*
* ## Example Usage
*
* ### With Instance
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as scaleway from "@pulumiverse/scaleway";
*
* const vpc01 = new scaleway.network.Vpc("vpc01", {name: "tf-vpc-vpn"});
* const pn01 = new scaleway.network.PrivateNetwork("pn01", {
* name: "tf-pn-vpn",
* ipv4Subnet: {
* subnet: "172.16.64.0/22",
* },
* vpcId: vpc01.id,
* });
* const server01 = new scaleway.instance.Server("server01", {
* name: "tf-server-vpn",
* type: "PLAY2-MICRO",
* image: "openvpn",
* });
* const pnic01 = new scaleway.instance.PrivateNic("pnic01", {
* privateNetworkId: pn01.id,
* serverId: server01.id,
* });
* const rt01 = new scaleway.network.Route("rt01", {
* vpcId: vpc01.id,
* description: "tf-route-vpn",
* tags: [
* "tf",
* "route",
* ],
* destination: "10.0.0.0/24",
* nexthopResourceId: pnic01.id,
* });
* ```
*
* ### With Baremetal
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as scaleway from "@pulumi/scaleway";
* import * as scaleway from "@pulumiverse/scaleway";
*
* const vpc01 = new scaleway.network.Vpc("vpc01", {name: "tf-vpc-vpn"});
* const pn01 = new scaleway.network.PrivateNetwork("pn01", {
* name: "tf-pn-vpn",
* ipv4Subnet: {
* subnet: "172.16.64.0/22",
* },
* vpcId: vpc01.id,
* });
* const myOs = scaleway.elasticmetal.getOs({
* zone: "fr-par-2",
* name: "Ubuntu",
* version: "22.04 LTS (Jammy Jellyfish)",
* });
* const myOffer = scaleway.elasticmetal.getOffer({
* zone: "fr-par-2",
* name: "EM-B112X-SSD",
* });
* const privateNetwork = scaleway.elasticmetal.getOption({
* zone: "fr-par-2",
* name: "Private Network",
* });
* const myKey = scaleway.iam.getSshKey({
* name: "main",
* });
* const myServer = new scaleway.elasticmetal.Server("my_server", {
* zone: "fr-par-2",
* offer: myOffer.then(myOffer => myOffer.offerId),
* os: myOs.then(myOs => myOs.osId),
* sshKeyIds: [myKey.then(myKey => myKey.id)],
* options: [{
* id: privateNetwork.then(privateNetwork => privateNetwork.optionId),
* }],
* privateNetworks: [{
* id: pn01.id,
* }],
* });
* const rt01 = new scaleway.network.Route("rt01", {
* vpcId: vpc01.id,
* description: "tf-route-vpn",
* tags: [
* "tf",
* "route",
* ],
* destination: "10.0.0.0/24",
* nexthopResourceId: myServer.privateNetworks.apply(privateNetworks => privateNetworks?.[0]?.mappingId),
* });
* ```
*
* ## Import
*
* Routes can be imported using `{region}/{id}`, e.g.
*
* bash
*
* ```sh
* $ pulumi import scaleway:index/vpcRoute:VpcRoute main fr-par/11111111-1111-1111-1111-111111111111
* ```
*
* @deprecated scaleway.index/vpcroute.VpcRoute has been deprecated in favor of scaleway.network/route.Route
*/
class VpcRoute extends pulumi.CustomResource {
/**
* Get an existing VpcRoute 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, id, state, opts) {
pulumi.log.warn("VpcRoute is deprecated: scaleway.index/vpcroute.VpcRoute has been deprecated in favor of scaleway.network/route.Route");
return new VpcRoute(name, state, Object.assign(Object.assign({}, opts), { id: id }));
}
/**
* Returns true if the given object is an instance of VpcRoute. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj) {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === VpcRoute.__pulumiType;
}
/** @deprecated scaleway.index/vpcroute.VpcRoute has been deprecated in favor of scaleway.network/route.Route */
constructor(name, argsOrState, opts) {
pulumi.log.warn("VpcRoute is deprecated: scaleway.index/vpcroute.VpcRoute has been deprecated in favor of scaleway.network/route.Route");
let resourceInputs = {};
opts = opts || {};
if (opts.id) {
const state = argsOrState;
resourceInputs["createdAt"] = state ? state.createdAt : undefined;
resourceInputs["description"] = state ? state.description : undefined;
resourceInputs["destination"] = state ? state.destination : undefined;
resourceInputs["nexthopPrivateNetworkId"] = state ? state.nexthopPrivateNetworkId : undefined;
resourceInputs["nexthopResourceId"] = state ? state.nexthopResourceId : undefined;
resourceInputs["region"] = state ? state.region : undefined;
resourceInputs["tags"] = state ? state.tags : undefined;
resourceInputs["updatedAt"] = state ? state.updatedAt : undefined;
resourceInputs["vpcId"] = state ? state.vpcId : undefined;
}
else {
const args = argsOrState;
if ((!args || args.vpcId === undefined) && !opts.urn) {
throw new Error("Missing required property 'vpcId'");
}
resourceInputs["description"] = args ? args.description : undefined;
resourceInputs["destination"] = args ? args.destination : undefined;
resourceInputs["nexthopPrivateNetworkId"] = args ? args.nexthopPrivateNetworkId : undefined;
resourceInputs["nexthopResourceId"] = args ? args.nexthopResourceId : undefined;
resourceInputs["region"] = args ? args.region : undefined;
resourceInputs["tags"] = args ? args.tags : undefined;
resourceInputs["vpcId"] = args ? args.vpcId : undefined;
resourceInputs["createdAt"] = undefined /*out*/;
resourceInputs["updatedAt"] = undefined /*out*/;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(VpcRoute.__pulumiType, name, resourceInputs, opts);
}
}
exports.VpcRoute = VpcRoute;
/** @internal */
VpcRoute.__pulumiType = 'scaleway:index/vpcRoute:VpcRoute';
//# sourceMappingURL=vpcRoute.js.map