UNPKG

@huaweicloudos/pulumi

Version:

A Pulumi package for creating and managing Huaweicloud cloud resources.

524 lines (523 loc) 20.6 kB
import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs } from "../types"; /** * GeminiDB Mongo instance management within HuaweiCould. * * ## Example Usage * ### create a geminidb mongo instance with tags * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi from "@huaweicloudos/pulumi"; * * const instance1 = new huaweicloud.gaussdbfornosql.MongoInstance("instance1", { * password: _var.password, * flavor: "geminidb.mongodb.repset.xlarge.4", * volumeSize: 100, * vpcId: _var.vpc_id, * subnetId: _var.subnet_id, * securityGroupId: _var.secgroup_id, * availabilityZone: _var.availability_zone, * tags: { * foo: "bar", * key: "value", * }, * }); * ``` * ### create a geminidb mongo instance with backup strategy * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi from "@huaweicloudos/pulumi"; * * const instance1 = new huaweicloud.gaussdbfornosql.MongoInstance("instance1", { * password: _var.password, * flavor: "geminidb.mongodb.repset.xlarge.4", * volumeSize: 100, * vpcId: _var.vpc_id, * subnetId: _var.subnet_id, * securityGroupId: _var.secgroup_id, * availabilityZone: _var.availability_zone, * backupStrategy: { * startTime: "03:00-04:00", * keepDays: 14, * }, * }); * ``` * * ## Import * * GaussDB mongo instance can be imported using the `id`, e.g. bash * * ```sh * $ pulumi import huaweicloud:GaussDBforNoSQL/mongoInstance:MongoInstance instance_1 2d3cb29c73754417bbbf46b1f856b371in10 * ``` */ export declare class MongoInstance extends pulumi.CustomResource { /** * Get an existing MongoInstance 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?: MongoInstanceState, opts?: pulumi.CustomResourceOptions): MongoInstance; /** * Returns true if the given object is an instance of MongoInstance. 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 MongoInstance; /** * Specifies whether auto renew is enabled. * Valid values are **true** and **false**. */ readonly autoRenew: pulumi.Output<string | undefined>; /** * Specifies the AZ name. For a three-AZ deployment instance, * use commas (,) to separate the AZs, for example, `cn-north-4a,cn-north-4b,cn-north-4c`. * Changing this parameter will create a new resource. */ readonly availabilityZone: pulumi.Output<string>; /** * Specifies the advanced backup policy. Structure is documented below. */ readonly backupStrategy: pulumi.Output<outputs.GaussDBforNoSQL.MongoInstanceBackupStrategy>; /** * Specifies the charging mode of the instance. Valid values are **prePaid** * and **postPaid**, defaults to **postPaid**. Changing this will do nothing. */ readonly chargingMode: pulumi.Output<string | undefined>; /** * Specifies the Parameter Template ID. */ readonly configurationId: pulumi.Output<string>; /** * Specifies the database information. Structure is documented below. Changing * this parameter will create a new resource. */ readonly datastore: pulumi.Output<outputs.GaussDBforNoSQL.MongoInstanceDatastore>; /** * Indicates the default username. */ readonly dbUserName: pulumi.Output<string>; /** * Specifies the dedicated resource ID. Changing this parameter * will create a new resource. */ readonly dedicatedResourceId: pulumi.Output<string>; /** * Specifies the dedicated resource name. Changing this * parameter will create a new resource. */ readonly dedicatedResourceName: pulumi.Output<string>; /** * Specifies the enterprise project id, Only valid for users who * have enabled the enterprise multi-project service. */ readonly enterpriseProjectId: pulumi.Output<string | undefined>; /** * Specifies the instance specifications. For details, * see [DB Instance Specifications](https://support.huaweicloud.com/intl/en-us/mongoug-nosql/nosql_05_0029.html) * Changing this parameter will create a new resource. */ readonly flavor: pulumi.Output<string>; /** * If specified, try to import the instance instead of creating if the name already * existed. */ readonly forceImport: pulumi.Output<boolean | undefined>; /** * Indicates the LB IP address of the db. */ readonly lbIpAddress: pulumi.Output<string>; /** * Indicates the LB port of the db. */ readonly lbPort: pulumi.Output<string>; /** * Indicates the instance type. */ readonly mode: pulumi.Output<string>; /** * Specifies the instance name, which can be the same as an existing instance name. The * value must be `4` to `64` characters in length and start with a letter. It is case-sensitive and can contain only * letters, digits, hyphens (-), and underscores (_). */ readonly name: pulumi.Output<string>; /** * Specifies the number of nodes, only `3` is supported now. Defaults to `3`. * Changing this parameter will create a new resource. */ readonly nodeNum: pulumi.Output<number | undefined>; /** * Indicates the instance nodes information. Structure is documented below. */ readonly nodes: pulumi.Output<outputs.GaussDBforNoSQL.MongoInstanceNode[]>; /** * Specifies the database password. The value must be `8` to `32` characters in * length, including uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are * advised to enter a strong password to improve security, preventing security risks such as brute force cracking. */ readonly password: pulumi.Output<string>; /** * Specifies the charging period of the instance. * If `periodUnit` is set to **month** , the value ranges from `1` to `9`. * If `periodUnit` is set to *year*, the value ranges from `1` to `3`. * This parameter is mandatory if `chargingMode` is set to **prePaid**. * Changing this will do nothing. */ readonly period: pulumi.Output<number | undefined>; /** * Specifies the charging period unit of the instance. * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**. * Changing this will do nothing. */ readonly periodUnit: pulumi.Output<string | undefined>; /** * Indicates the database port. */ readonly port: pulumi.Output<number>; /** * Indicates the IP address list of the db. */ readonly privateIps: pulumi.Output<string[]>; /** * The region in which to create the mongo instance resource. If omitted, the * provider-level region will be used. Changing this creates a new mongo instance resource. */ readonly region: pulumi.Output<string>; /** * Specifies the security group ID. Required if the selected subnet doesn't * enable network ACL. */ readonly securityGroupId: pulumi.Output<string | undefined>; /** * Specifies whether to enable or disable SSL. Defaults to **false**. Changing this * parameter will create a new resource. */ readonly ssl: pulumi.Output<boolean | undefined>; /** * Indicates the node status. */ readonly status: pulumi.Output<string>; /** * Specifies the network ID of a subnet. Changing this parameter will create * a new resource. */ readonly subnetId: pulumi.Output<string>; /** * The key/value pairs to associate with the instance. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Specifies the storage space in GB. The value must be a multiple of `10`. For a * GaussDB mongo DB instance, the minimum storage space is `100` GB, and the maximum storage space is related to the * instance performance specifications. For details, * see [DB Instance Specifications](https://support.huaweicloud.com/intl/en-us/mongoug-nosql/nosql_05_0029.html) */ readonly volumeSize: pulumi.Output<number>; /** * Specifies the VPC ID. Changing this parameter will create a new resource. */ readonly vpcId: pulumi.Output<string>; /** * Create a MongoInstance 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: MongoInstanceArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering MongoInstance resources. */ export interface MongoInstanceState { /** * Specifies whether auto renew is enabled. * Valid values are **true** and **false**. */ autoRenew?: pulumi.Input<string>; /** * Specifies the AZ name. For a three-AZ deployment instance, * use commas (,) to separate the AZs, for example, `cn-north-4a,cn-north-4b,cn-north-4c`. * Changing this parameter will create a new resource. */ availabilityZone?: pulumi.Input<string>; /** * Specifies the advanced backup policy. Structure is documented below. */ backupStrategy?: pulumi.Input<inputs.GaussDBforNoSQL.MongoInstanceBackupStrategy>; /** * Specifies the charging mode of the instance. Valid values are **prePaid** * and **postPaid**, defaults to **postPaid**. Changing this will do nothing. */ chargingMode?: pulumi.Input<string>; /** * Specifies the Parameter Template ID. */ configurationId?: pulumi.Input<string>; /** * Specifies the database information. Structure is documented below. Changing * this parameter will create a new resource. */ datastore?: pulumi.Input<inputs.GaussDBforNoSQL.MongoInstanceDatastore>; /** * Indicates the default username. */ dbUserName?: pulumi.Input<string>; /** * Specifies the dedicated resource ID. Changing this parameter * will create a new resource. */ dedicatedResourceId?: pulumi.Input<string>; /** * Specifies the dedicated resource name. Changing this * parameter will create a new resource. */ dedicatedResourceName?: pulumi.Input<string>; /** * Specifies the enterprise project id, Only valid for users who * have enabled the enterprise multi-project service. */ enterpriseProjectId?: pulumi.Input<string>; /** * Specifies the instance specifications. For details, * see [DB Instance Specifications](https://support.huaweicloud.com/intl/en-us/mongoug-nosql/nosql_05_0029.html) * Changing this parameter will create a new resource. */ flavor?: pulumi.Input<string>; /** * If specified, try to import the instance instead of creating if the name already * existed. */ forceImport?: pulumi.Input<boolean>; /** * Indicates the LB IP address of the db. */ lbIpAddress?: pulumi.Input<string>; /** * Indicates the LB port of the db. */ lbPort?: pulumi.Input<string>; /** * Indicates the instance type. */ mode?: pulumi.Input<string>; /** * Specifies the instance name, which can be the same as an existing instance name. The * value must be `4` to `64` characters in length and start with a letter. It is case-sensitive and can contain only * letters, digits, hyphens (-), and underscores (_). */ name?: pulumi.Input<string>; /** * Specifies the number of nodes, only `3` is supported now. Defaults to `3`. * Changing this parameter will create a new resource. */ nodeNum?: pulumi.Input<number>; /** * Indicates the instance nodes information. Structure is documented below. */ nodes?: pulumi.Input<pulumi.Input<inputs.GaussDBforNoSQL.MongoInstanceNode>[]>; /** * Specifies the database password. The value must be `8` to `32` characters in * length, including uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are * advised to enter a strong password to improve security, preventing security risks such as brute force cracking. */ password?: pulumi.Input<string>; /** * Specifies the charging period of the instance. * If `periodUnit` is set to **month** , the value ranges from `1` to `9`. * If `periodUnit` is set to *year*, the value ranges from `1` to `3`. * This parameter is mandatory if `chargingMode` is set to **prePaid**. * Changing this will do nothing. */ period?: pulumi.Input<number>; /** * Specifies the charging period unit of the instance. * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**. * Changing this will do nothing. */ periodUnit?: pulumi.Input<string>; /** * Indicates the database port. */ port?: pulumi.Input<number>; /** * Indicates the IP address list of the db. */ privateIps?: pulumi.Input<pulumi.Input<string>[]>; /** * The region in which to create the mongo instance resource. If omitted, the * provider-level region will be used. Changing this creates a new mongo instance resource. */ region?: pulumi.Input<string>; /** * Specifies the security group ID. Required if the selected subnet doesn't * enable network ACL. */ securityGroupId?: pulumi.Input<string>; /** * Specifies whether to enable or disable SSL. Defaults to **false**. Changing this * parameter will create a new resource. */ ssl?: pulumi.Input<boolean>; /** * Indicates the node status. */ status?: pulumi.Input<string>; /** * Specifies the network ID of a subnet. Changing this parameter will create * a new resource. */ subnetId?: pulumi.Input<string>; /** * The key/value pairs to associate with the instance. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Specifies the storage space in GB. The value must be a multiple of `10`. For a * GaussDB mongo DB instance, the minimum storage space is `100` GB, and the maximum storage space is related to the * instance performance specifications. For details, * see [DB Instance Specifications](https://support.huaweicloud.com/intl/en-us/mongoug-nosql/nosql_05_0029.html) */ volumeSize?: pulumi.Input<number>; /** * Specifies the VPC ID. Changing this parameter will create a new resource. */ vpcId?: pulumi.Input<string>; } /** * The set of arguments for constructing a MongoInstance resource. */ export interface MongoInstanceArgs { /** * Specifies whether auto renew is enabled. * Valid values are **true** and **false**. */ autoRenew?: pulumi.Input<string>; /** * Specifies the AZ name. For a three-AZ deployment instance, * use commas (,) to separate the AZs, for example, `cn-north-4a,cn-north-4b,cn-north-4c`. * Changing this parameter will create a new resource. */ availabilityZone: pulumi.Input<string>; /** * Specifies the advanced backup policy. Structure is documented below. */ backupStrategy?: pulumi.Input<inputs.GaussDBforNoSQL.MongoInstanceBackupStrategy>; /** * Specifies the charging mode of the instance. Valid values are **prePaid** * and **postPaid**, defaults to **postPaid**. Changing this will do nothing. */ chargingMode?: pulumi.Input<string>; /** * Specifies the Parameter Template ID. */ configurationId?: pulumi.Input<string>; /** * Specifies the database information. Structure is documented below. Changing * this parameter will create a new resource. */ datastore?: pulumi.Input<inputs.GaussDBforNoSQL.MongoInstanceDatastore>; /** * Specifies the dedicated resource ID. Changing this parameter * will create a new resource. */ dedicatedResourceId?: pulumi.Input<string>; /** * Specifies the dedicated resource name. Changing this * parameter will create a new resource. */ dedicatedResourceName?: pulumi.Input<string>; /** * Specifies the enterprise project id, Only valid for users who * have enabled the enterprise multi-project service. */ enterpriseProjectId?: pulumi.Input<string>; /** * Specifies the instance specifications. For details, * see [DB Instance Specifications](https://support.huaweicloud.com/intl/en-us/mongoug-nosql/nosql_05_0029.html) * Changing this parameter will create a new resource. */ flavor: pulumi.Input<string>; /** * If specified, try to import the instance instead of creating if the name already * existed. */ forceImport?: pulumi.Input<boolean>; /** * Specifies the instance name, which can be the same as an existing instance name. The * value must be `4` to `64` characters in length and start with a letter. It is case-sensitive and can contain only * letters, digits, hyphens (-), and underscores (_). */ name?: pulumi.Input<string>; /** * Specifies the number of nodes, only `3` is supported now. Defaults to `3`. * Changing this parameter will create a new resource. */ nodeNum?: pulumi.Input<number>; /** * Specifies the database password. The value must be `8` to `32` characters in * length, including uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are * advised to enter a strong password to improve security, preventing security risks such as brute force cracking. */ password: pulumi.Input<string>; /** * Specifies the charging period of the instance. * If `periodUnit` is set to **month** , the value ranges from `1` to `9`. * If `periodUnit` is set to *year*, the value ranges from `1` to `3`. * This parameter is mandatory if `chargingMode` is set to **prePaid**. * Changing this will do nothing. */ period?: pulumi.Input<number>; /** * Specifies the charging period unit of the instance. * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**. * Changing this will do nothing. */ periodUnit?: pulumi.Input<string>; /** * The region in which to create the mongo instance resource. If omitted, the * provider-level region will be used. Changing this creates a new mongo instance resource. */ region?: pulumi.Input<string>; /** * Specifies the security group ID. Required if the selected subnet doesn't * enable network ACL. */ securityGroupId?: pulumi.Input<string>; /** * Specifies whether to enable or disable SSL. Defaults to **false**. Changing this * parameter will create a new resource. */ ssl?: pulumi.Input<boolean>; /** * Specifies the network ID of a subnet. Changing this parameter will create * a new resource. */ subnetId: pulumi.Input<string>; /** * The key/value pairs to associate with the instance. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Specifies the storage space in GB. The value must be a multiple of `10`. For a * GaussDB mongo DB instance, the minimum storage space is `100` GB, and the maximum storage space is related to the * instance performance specifications. For details, * see [DB Instance Specifications](https://support.huaweicloud.com/intl/en-us/mongoug-nosql/nosql_05_0029.html) */ volumeSize: pulumi.Input<number>; /** * Specifies the VPC ID. Changing this parameter will create a new resource. */ vpcId: pulumi.Input<string>; }