@pulumiverse/scaleway
Version:
A Pulumi package for creating and managing Scaleway cloud resources.
357 lines • 13.1 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Creates and manages Scaleway MongoDB® instance.
* For more information, see the [product documentation](https://www.scaleway.com/en/docs/managed-mongodb-databases/).
*
* > **Security Best Practice:**
* For enhanced security, we recommend using the `passwordWo` write-only argument instead of the regular `password` argument. This ensures your sensitive credentials are never stored in Terraform state files, providing superior protection against accidental exposure. Write-Only arguments are supported in Terraform 1.11.0 and later.
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as scaleway from "@pulumiverse/scaleway";
*
* //## Basic MongoDB instance creation
* const main = new scaleway.mongodb.Instance("main", {
* name: "test-mongodb-basic1",
* version: "7.0.12",
* nodeType: "MGDB-PLAY2-NANO",
* nodeNumber: 1,
* userName: "my_initial_user",
* password: "thiZ_is_v&ry_s3cret",
* volumeSizeInGb: 5,
* });
* ```
*
* ## Import
*
* MongoDB® instance can be imported using the `id`, e.g.
*
* ```sh
* $ pulumi import scaleway:mongodb/instance:Instance main fr-par/11111111-1111-1111-1111-111111111111
* ```
*/
export declare class Instance extends pulumi.CustomResource {
/**
* Get an existing Instance 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?: InstanceState, opts?: pulumi.CustomResourceOptions): Instance;
/**
* Returns true if the given object is an instance of Instance. 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 Instance;
/**
* The date and time of the creation of the MongoDB® instance.
*/
readonly createdAt: pulumi.Output<string>;
/**
* Whether automatic snapshot scheduling is enabled.
*/
readonly isSnapshotScheduleEnabled: pulumi.Output<boolean>;
/**
* Name of the MongoDB® instance.
*/
readonly name: pulumi.Output<string>;
/**
* Number of nodes in the instance
*/
readonly nodeNumber: pulumi.Output<number>;
/**
* The type of MongoDB® instance to create.
*/
readonly nodeType: pulumi.Output<string>;
/**
* Password of the user. Only one of `password` or `passwordWo` should be specified.
*/
readonly password: pulumi.Output<string | undefined>;
/**
* **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
* Password of the user in write-only mode. Only one of `password` or `passwordWo` should be specified. `passwordWo` will not be set in the Terraform state. To update the `passwordWo`, you must also update the `passwordWoVersion`.
*/
readonly passwordWo: pulumi.Output<string | undefined>;
/**
* The version of the write-only password. To update the `passwordWo`, you must also update the `passwordWoVersion`.
*/
readonly passwordWoVersion: pulumi.Output<number | undefined>;
/**
* The private IPv4 address associated with the instance.
*/
readonly privateIps: pulumi.Output<outputs.mongodb.InstancePrivateIp[]>;
/**
* Private Network endpoints of the Database Instance.
*/
readonly privateNetwork: pulumi.Output<outputs.mongodb.InstancePrivateNetwork | undefined>;
/**
* `projectId`) The ID of the project the MongoDB® instance is associated with.
*/
readonly projectId: pulumi.Output<string>;
/**
* Public network endpoint configuration (no arguments).
*/
readonly publicNetwork: pulumi.Output<outputs.mongodb.InstancePublicNetwork>;
/**
* `region`) The region in which the MongoDB® instance should be created.
*/
readonly region: pulumi.Output<string | undefined>;
/**
* Map of settings to define for the instance.
*/
readonly settings: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Snapshot ID to restore the MongoDB® instance from.
*/
readonly snapshotId: pulumi.Output<string | undefined>;
/**
* Snapshot schedule frequency in hours.
*/
readonly snapshotScheduleFrequencyHours: pulumi.Output<number>;
/**
* Snapshot schedule retention in days.
*/
readonly snapshotScheduleRetentionDays: pulumi.Output<number>;
/**
* List of tags attached to the MongoDB® instance.
*/
readonly tags: pulumi.Output<string[] | undefined>;
/**
* The PEM-encoded TLS certificate for the MongoDB® instance, if available.
*/
readonly tlsCertificate: pulumi.Output<string>;
/**
* The date and time of the last update of the MongoDB® instance.
*/
readonly updatedAt: pulumi.Output<string>;
/**
* Name of the user created when the instance is created.
*/
readonly userName: pulumi.Output<string | undefined>;
/**
* MongoDB® version of the instance.
*/
readonly version: pulumi.Output<string>;
/**
* Volume size in GB.
*/
readonly volumeSizeInGb: pulumi.Output<number>;
/**
* Volume type of the instance.
*/
readonly volumeType: pulumi.Output<string | undefined>;
/**
* Create a Instance 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: InstanceArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Instance resources.
*/
export interface InstanceState {
/**
* The date and time of the creation of the MongoDB® instance.
*/
createdAt?: pulumi.Input<string | undefined>;
/**
* Whether automatic snapshot scheduling is enabled.
*/
isSnapshotScheduleEnabled?: pulumi.Input<boolean | undefined>;
/**
* Name of the MongoDB® instance.
*/
name?: pulumi.Input<string | undefined>;
/**
* Number of nodes in the instance
*/
nodeNumber?: pulumi.Input<number | undefined>;
/**
* The type of MongoDB® instance to create.
*/
nodeType?: pulumi.Input<string | undefined>;
/**
* Password of the user. Only one of `password` or `passwordWo` should be specified.
*/
password?: pulumi.Input<string | undefined>;
/**
* **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
* Password of the user in write-only mode. Only one of `password` or `passwordWo` should be specified. `passwordWo` will not be set in the Terraform state. To update the `passwordWo`, you must also update the `passwordWoVersion`.
*/
passwordWo?: pulumi.Input<string | undefined>;
/**
* The version of the write-only password. To update the `passwordWo`, you must also update the `passwordWoVersion`.
*/
passwordWoVersion?: pulumi.Input<number | undefined>;
/**
* The private IPv4 address associated with the instance.
*/
privateIps?: pulumi.Input<pulumi.Input<inputs.mongodb.InstancePrivateIp>[] | undefined>;
/**
* Private Network endpoints of the Database Instance.
*/
privateNetwork?: pulumi.Input<inputs.mongodb.InstancePrivateNetwork | undefined>;
/**
* `projectId`) The ID of the project the MongoDB® instance is associated with.
*/
projectId?: pulumi.Input<string | undefined>;
/**
* Public network endpoint configuration (no arguments).
*/
publicNetwork?: pulumi.Input<inputs.mongodb.InstancePublicNetwork | undefined>;
/**
* `region`) The region in which the MongoDB® instance should be created.
*/
region?: pulumi.Input<string | undefined>;
/**
* Map of settings to define for the instance.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
} | undefined>;
/**
* Snapshot ID to restore the MongoDB® instance from.
*/
snapshotId?: pulumi.Input<string | undefined>;
/**
* Snapshot schedule frequency in hours.
*/
snapshotScheduleFrequencyHours?: pulumi.Input<number | undefined>;
/**
* Snapshot schedule retention in days.
*/
snapshotScheduleRetentionDays?: pulumi.Input<number | undefined>;
/**
* List of tags attached to the MongoDB® instance.
*/
tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* The PEM-encoded TLS certificate for the MongoDB® instance, if available.
*/
tlsCertificate?: pulumi.Input<string | undefined>;
/**
* The date and time of the last update of the MongoDB® instance.
*/
updatedAt?: pulumi.Input<string | undefined>;
/**
* Name of the user created when the instance is created.
*/
userName?: pulumi.Input<string | undefined>;
/**
* MongoDB® version of the instance.
*/
version?: pulumi.Input<string | undefined>;
/**
* Volume size in GB.
*/
volumeSizeInGb?: pulumi.Input<number | undefined>;
/**
* Volume type of the instance.
*/
volumeType?: pulumi.Input<string | undefined>;
}
/**
* The set of arguments for constructing a Instance resource.
*/
export interface InstanceArgs {
/**
* Whether automatic snapshot scheduling is enabled.
*/
isSnapshotScheduleEnabled?: pulumi.Input<boolean | undefined>;
/**
* Name of the MongoDB® instance.
*/
name?: pulumi.Input<string | undefined>;
/**
* Number of nodes in the instance
*/
nodeNumber: pulumi.Input<number>;
/**
* The type of MongoDB® instance to create.
*/
nodeType: pulumi.Input<string>;
/**
* Password of the user. Only one of `password` or `passwordWo` should be specified.
*/
password?: pulumi.Input<string | undefined>;
/**
* **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
* Password of the user in write-only mode. Only one of `password` or `passwordWo` should be specified. `passwordWo` will not be set in the Terraform state. To update the `passwordWo`, you must also update the `passwordWoVersion`.
*/
passwordWo?: pulumi.Input<string | undefined>;
/**
* The version of the write-only password. To update the `passwordWo`, you must also update the `passwordWoVersion`.
*/
passwordWoVersion?: pulumi.Input<number | undefined>;
/**
* The private IPv4 address associated with the instance.
*/
privateIps?: pulumi.Input<pulumi.Input<inputs.mongodb.InstancePrivateIp>[] | undefined>;
/**
* Private Network endpoints of the Database Instance.
*/
privateNetwork?: pulumi.Input<inputs.mongodb.InstancePrivateNetwork | undefined>;
/**
* `projectId`) The ID of the project the MongoDB® instance is associated with.
*/
projectId?: pulumi.Input<string | undefined>;
/**
* Public network endpoint configuration (no arguments).
*/
publicNetwork?: pulumi.Input<inputs.mongodb.InstancePublicNetwork | undefined>;
/**
* `region`) The region in which the MongoDB® instance should be created.
*/
region?: pulumi.Input<string | undefined>;
/**
* Map of settings to define for the instance.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
} | undefined>;
/**
* Snapshot ID to restore the MongoDB® instance from.
*/
snapshotId?: pulumi.Input<string | undefined>;
/**
* Snapshot schedule frequency in hours.
*/
snapshotScheduleFrequencyHours?: pulumi.Input<number | undefined>;
/**
* Snapshot schedule retention in days.
*/
snapshotScheduleRetentionDays?: pulumi.Input<number | undefined>;
/**
* List of tags attached to the MongoDB® instance.
*/
tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Name of the user created when the instance is created.
*/
userName?: pulumi.Input<string | undefined>;
/**
* MongoDB® version of the instance.
*/
version?: pulumi.Input<string | undefined>;
/**
* Volume size in GB.
*/
volumeSizeInGb?: pulumi.Input<number | undefined>;
/**
* Volume type of the instance.
*/
volumeType?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=instance.d.ts.map