@pulumiverse/scaleway
Version:
A Pulumi package for creating and managing Scaleway cloud resources.
310 lines • 10.2 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
/**
* Creates and manages Scaleway Public Gateways.
* For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway).
*
* ## Example Usage
*
* ### Basic
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as scaleway from "@pulumiverse/scaleway";
*
* const main = new scaleway.network.PublicGateway("main", {
* name: "public_gateway_demo",
* type: "VPC-GW-S",
* tags: [
* "demo",
* "terraform",
* ],
* });
* ```
*
* ### With bastion
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as scaleway from "@pulumiverse/scaleway";
* import * as std from "@pulumi/std";
*
* const key1 = new scaleway.iam.SshKey("key1", {
* name: "key1",
* publicKey: std.file({
* input: "~/.ssh/id_rsa.pub",
* }).result,
* });
* const key2 = new scaleway.iam.SshKey("key2", {
* name: "key2",
* publicKey: std.file({
* input: "~/.ssh/another_key.pub",
* }).result,
* });
* const sshKeysHash = std.sha256({
* input: std.join({
* separator: ",",
* input: [
* key1.publicKey,
* key2.publicKey,
* ],
* }).result,
* }).result;
* const main = new scaleway.network.PublicGateway("main", {
* name: "public_gateway_demo",
* type: "VPC-GW-S",
* tags: [
* "demo",
* "terraform",
* ],
* bastionEnabled: true,
* bastionPort: 61000,
* refreshSshKeys: sshKeysHash,
* });
* ```
*
* ## Import
*
* Public Gateways can be imported using `{zone}/{id}`, e.g.
*
* ```sh
* $ pulumi import scaleway:network/publicGateway:PublicGateway main fr-par-1/11111111-1111-1111-1111-111111111111
* ```
*/
export declare class PublicGateway extends pulumi.CustomResource {
/**
* Get an existing PublicGateway 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?: PublicGatewayState, opts?: pulumi.CustomResourceOptions): PublicGateway;
/**
* Returns true if the given object is an instance of PublicGateway. 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 PublicGateway;
/**
* Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.
*/
readonly allowedIpRanges: pulumi.Output<string[]>;
/**
* The bandwidth available of the gateway
*/
readonly bandwidth: pulumi.Output<number>;
/**
* Enable SSH bastion on the gateway.
*/
readonly bastionEnabled: pulumi.Output<boolean | undefined>;
/**
* The port on which the SSH bastion will listen.
*/
readonly bastionPort: pulumi.Output<number>;
/**
* The date and time of the creation of the Public Gateway.
*/
readonly createdAt: pulumi.Output<string>;
/**
* Enable SMTP on the gateway.
*/
readonly enableSmtp: pulumi.Output<boolean>;
/**
* Attach an existing flexible IP to the gateway.
*/
readonly ipId: pulumi.Output<string>;
/**
* Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2
*
* @deprecated All gateways now use IPAM. This field is no longer needed
*/
readonly moveToIpam: pulumi.Output<boolean | undefined>;
/**
* The name for the Public Gateway. If not provided it will be randomly generated.
*/
readonly name: pulumi.Output<string>;
/**
* The Organization ID the Public Gateway is associated with.
*/
readonly organizationId: pulumi.Output<string>;
/**
* `projectId`) The ID of the project the public gateway is associated with.
*/
readonly projectId: pulumi.Output<string>;
/**
* Trigger a refresh of the SSH keys on the Public Gateway by changing this field's value.
*/
readonly refreshSshKeys: pulumi.Output<string | undefined>;
/**
* The status of the public gateway.
*/
readonly status: pulumi.Output<string>;
/**
* The tags to associate with the Public Gateway.
*/
readonly tags: pulumi.Output<string[] | undefined>;
/**
* The gateway type.
*/
readonly type: pulumi.Output<string>;
/**
* The date and time of the last update of the Public Gateway.
*/
readonly updatedAt: pulumi.Output<string>;
/**
* Override the gateway's default recursive DNS servers, if DNS features are enabled.
*
* @deprecated This field is no longer supported in the v2 API
*/
readonly upstreamDnsServers: pulumi.Output<string[]>;
/**
* `zone`) The zone in which the Public Gateway should be created.
*/
readonly zone: pulumi.Output<string | undefined>;
/**
* Create a PublicGateway 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: PublicGatewayArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering PublicGateway resources.
*/
export interface PublicGatewayState {
/**
* Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.
*/
allowedIpRanges?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* The bandwidth available of the gateway
*/
bandwidth?: pulumi.Input<number | undefined>;
/**
* Enable SSH bastion on the gateway.
*/
bastionEnabled?: pulumi.Input<boolean | undefined>;
/**
* The port on which the SSH bastion will listen.
*/
bastionPort?: pulumi.Input<number | undefined>;
/**
* The date and time of the creation of the Public Gateway.
*/
createdAt?: pulumi.Input<string | undefined>;
/**
* Enable SMTP on the gateway.
*/
enableSmtp?: pulumi.Input<boolean | undefined>;
/**
* Attach an existing flexible IP to the gateway.
*/
ipId?: pulumi.Input<string | undefined>;
/**
* Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2
*
* @deprecated All gateways now use IPAM. This field is no longer needed
*/
moveToIpam?: pulumi.Input<boolean | undefined>;
/**
* The name for the Public Gateway. If not provided it will be randomly generated.
*/
name?: pulumi.Input<string | undefined>;
/**
* The Organization ID the Public Gateway is associated with.
*/
organizationId?: pulumi.Input<string | undefined>;
/**
* `projectId`) The ID of the project the public gateway is associated with.
*/
projectId?: pulumi.Input<string | undefined>;
/**
* Trigger a refresh of the SSH keys on the Public Gateway by changing this field's value.
*/
refreshSshKeys?: pulumi.Input<string | undefined>;
/**
* The status of the public gateway.
*/
status?: pulumi.Input<string | undefined>;
/**
* The tags to associate with the Public Gateway.
*/
tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* The gateway type.
*/
type?: pulumi.Input<string | undefined>;
/**
* The date and time of the last update of the Public Gateway.
*/
updatedAt?: pulumi.Input<string | undefined>;
/**
* Override the gateway's default recursive DNS servers, if DNS features are enabled.
*
* @deprecated This field is no longer supported in the v2 API
*/
upstreamDnsServers?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* `zone`) The zone in which the Public Gateway should be created.
*/
zone?: pulumi.Input<string | undefined>;
}
/**
* The set of arguments for constructing a PublicGateway resource.
*/
export interface PublicGatewayArgs {
/**
* Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.
*/
allowedIpRanges?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Enable SSH bastion on the gateway.
*/
bastionEnabled?: pulumi.Input<boolean | undefined>;
/**
* The port on which the SSH bastion will listen.
*/
bastionPort?: pulumi.Input<number | undefined>;
/**
* Enable SMTP on the gateway.
*/
enableSmtp?: pulumi.Input<boolean | undefined>;
/**
* Attach an existing flexible IP to the gateway.
*/
ipId?: pulumi.Input<string | undefined>;
/**
* Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2
*
* @deprecated All gateways now use IPAM. This field is no longer needed
*/
moveToIpam?: pulumi.Input<boolean | undefined>;
/**
* The name for the Public Gateway. If not provided it will be randomly generated.
*/
name?: pulumi.Input<string | undefined>;
/**
* `projectId`) The ID of the project the public gateway is associated with.
*/
projectId?: pulumi.Input<string | undefined>;
/**
* Trigger a refresh of the SSH keys on the Public Gateway by changing this field's value.
*/
refreshSshKeys?: pulumi.Input<string | undefined>;
/**
* The tags to associate with the Public Gateway.
*/
tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* The gateway type.
*/
type: pulumi.Input<string>;
/**
* `zone`) The zone in which the Public Gateway should be created.
*/
zone?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=publicGateway.d.ts.map