UNPKG

@huaweicloudos/pulumi

Version:

A Pulumi package for creating and managing Huaweicloud cloud resources.

517 lines (516 loc) 22.5 kB
import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs } from "../types"; /** * GeminiDB Redis instance management within HuaweiCould. * * ## Example Usage * ### create a geminidb redis instance with tags * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi from "@huaweicloudos/pulumi"; * * const test = new huaweicloud.gaussdbfornosql.RedisInstance("test", { * password: _var.password, * flavor: "geminidb.redis.xlarge.4", * volumeSize: 16, * vpcId: _var.vpc_id, * subnetId: _var.subnet_id, * securityGroupId: _var.secgroup_id, * availabilityZone: _var.availability_zone, * tags: { * foo: "bar", * key: "value", * }, * }); * ``` * ### create a geminidb redis instance with backup strategy * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi from "@huaweicloudos/pulumi"; * * const test = new huaweicloud.gaussdbfornosql.RedisInstance("test", { * password: _var.password, * flavor: "geminidb.redis.xlarge.4", * volumeSize: 16, * 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 Redis instance can be imported using the `id`, e.g. bash * * ```sh * $ pulumi import huaweicloud:GaussDBforNoSQL/redisInstance:RedisInstance instance_1 d54b21f037ed447aad4bfd20927711c6in12 * ``` */ export declare class RedisInstance extends pulumi.CustomResource { /** * Get an existing RedisInstance 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?: RedisInstanceState, opts?: pulumi.CustomResourceOptions): RedisInstance; /** * Returns true if the given object is an instance of RedisInstance. 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 RedisInstance; readonly autoPay: pulumi.Output<string | undefined>; /** * Specifies whether auto renew is enabled. Valid values are "true" and "false". */ readonly autoRenew: pulumi.Output<string | undefined>; /** * Specifies the AZ name. * See [Region and Endpoints](https://developer.huaweicloud.com/intl/en-us/endpoint?GaussDB%20NoSQL) for more detail. * 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 Multi-AZ details of the active/standby instance. * The system ignores this parameter if single-AZ deployment is selected. Currently, only GeminiDB Redis instances are * supported. */ readonly availabilityZoneDetail: pulumi.Output<outputs.GaussDBforNoSQL.RedisInstanceAvailabilityZoneDetail | undefined>; /** * Specifies the advanced backup policy. Structure is documented below. Do nothing * in update method if change this parameter. */ readonly backupStrategy: pulumi.Output<outputs.GaussDBforNoSQL.RedisInstanceBackupStrategy>; /** * Specifies the charging mode of the GaussDB for Redis instance. Valid values are * **prePaid** and **postPaid**, defaults to **postPaid**. Do nothing in update method if change this parameter. */ readonly chargingMode: pulumi.Output<string | undefined>; /** * Specifies the database information. Structure is documented below. Changing * this parameter will create a new resource. */ readonly datastore: pulumi.Output<outputs.GaussDBforNoSQL.RedisInstanceDatastore>; /** * Indicates the default username. */ readonly dbUserName: 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/redisug-nosql/nosql_05_0059.html). */ 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>; /** * Specifies the instance type. Value options: **Cluster**, **Replication**. * Defaults to **Cluster**. */ readonly mode: pulumi.Output<string | undefined>; /** * 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 (_). Chinese characters must be in UTF-8 or Unicode format. */ readonly name: pulumi.Output<string>; /** * Specifies the number of nodes, ranges from `2` to `12`. Defaults to `3`. */ readonly nodeNum: pulumi.Output<number | undefined>; /** * Indicates the instance nodes information. Structure is documented below. */ readonly nodes: pulumi.Output<outputs.GaussDBforNoSQL.RedisInstanceNode[]>; /** * 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 GaussDB for Redis 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 GaussDB for Redis instance. Valid values * are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**. Do nothing in update * method if change this parameter. */ readonly periodUnit: pulumi.Output<string | undefined>; /** * Specifies the port number for accessing the instance. You can specify a port number * based on your requirements. The port number ranges from `1,024` to `65,535`, excluding `2,180`, `2,887`, `3,887`, * `6,377`, `6,378`, `6,380`, `8,018`, `8,079`, `8,091`, `8,479`, `8,484`, `8,999`, `12,017`, `12,333`, and `50,069`. * Defaults to `6,379`. If you want to use this instance for dual-active DR, set the port to `8,635`. */ 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 Redis instance resource. * See [Region and Endpoints](https://developer.huaweicloud.com/intl/en-us/endpoint?GaussDB%20NoSQL) for more detail. If * omitted, the provider-level region will be used. Changing this creates a new Redis 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 SSL is enabled. Defaults to **false**. */ 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. For a GaussDB for Redis instance, the minimum and * maximum storage space depends on the flavor and nodes_num. For details, * see [DB Instance Specifications](https://support.huaweicloud.com/intl/en-us/redisug-nosql/nosql_05_0059.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 RedisInstance 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: RedisInstanceArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering RedisInstance resources. */ export interface RedisInstanceState { autoPay?: pulumi.Input<string>; /** * Specifies whether auto renew is enabled. Valid values are "true" and "false". */ autoRenew?: pulumi.Input<string>; /** * Specifies the AZ name. * See [Region and Endpoints](https://developer.huaweicloud.com/intl/en-us/endpoint?GaussDB%20NoSQL) for more detail. * 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 Multi-AZ details of the active/standby instance. * The system ignores this parameter if single-AZ deployment is selected. Currently, only GeminiDB Redis instances are * supported. */ availabilityZoneDetail?: pulumi.Input<inputs.GaussDBforNoSQL.RedisInstanceAvailabilityZoneDetail>; /** * Specifies the advanced backup policy. Structure is documented below. Do nothing * in update method if change this parameter. */ backupStrategy?: pulumi.Input<inputs.GaussDBforNoSQL.RedisInstanceBackupStrategy>; /** * Specifies the charging mode of the GaussDB for Redis instance. Valid values are * **prePaid** and **postPaid**, defaults to **postPaid**. Do nothing in update method if change this parameter. */ chargingMode?: pulumi.Input<string>; /** * Specifies the database information. Structure is documented below. Changing * this parameter will create a new resource. */ datastore?: pulumi.Input<inputs.GaussDBforNoSQL.RedisInstanceDatastore>; /** * Indicates the default username. */ dbUserName?: 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/redisug-nosql/nosql_05_0059.html). */ 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>; /** * Specifies the instance type. Value options: **Cluster**, **Replication**. * Defaults to **Cluster**. */ 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 (_). Chinese characters must be in UTF-8 or Unicode format. */ name?: pulumi.Input<string>; /** * Specifies the number of nodes, ranges from `2` to `12`. Defaults to `3`. */ nodeNum?: pulumi.Input<number>; /** * Indicates the instance nodes information. Structure is documented below. */ nodes?: pulumi.Input<pulumi.Input<inputs.GaussDBforNoSQL.RedisInstanceNode>[]>; /** * 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 GaussDB for Redis 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 GaussDB for Redis instance. Valid values * are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**. Do nothing in update * method if change this parameter. */ periodUnit?: pulumi.Input<string>; /** * Specifies the port number for accessing the instance. You can specify a port number * based on your requirements. The port number ranges from `1,024` to `65,535`, excluding `2,180`, `2,887`, `3,887`, * `6,377`, `6,378`, `6,380`, `8,018`, `8,079`, `8,091`, `8,479`, `8,484`, `8,999`, `12,017`, `12,333`, and `50,069`. * Defaults to `6,379`. If you want to use this instance for dual-active DR, set the port to `8,635`. */ 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 Redis instance resource. * See [Region and Endpoints](https://developer.huaweicloud.com/intl/en-us/endpoint?GaussDB%20NoSQL) for more detail. If * omitted, the provider-level region will be used. Changing this creates a new Redis 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 SSL is enabled. Defaults to **false**. */ 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. For a GaussDB for Redis instance, the minimum and * maximum storage space depends on the flavor and nodes_num. For details, * see [DB Instance Specifications](https://support.huaweicloud.com/intl/en-us/redisug-nosql/nosql_05_0059.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 RedisInstance resource. */ export interface RedisInstanceArgs { autoPay?: pulumi.Input<string>; /** * Specifies whether auto renew is enabled. Valid values are "true" and "false". */ autoRenew?: pulumi.Input<string>; /** * Specifies the AZ name. * See [Region and Endpoints](https://developer.huaweicloud.com/intl/en-us/endpoint?GaussDB%20NoSQL) for more detail. * 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 Multi-AZ details of the active/standby instance. * The system ignores this parameter if single-AZ deployment is selected. Currently, only GeminiDB Redis instances are * supported. */ availabilityZoneDetail?: pulumi.Input<inputs.GaussDBforNoSQL.RedisInstanceAvailabilityZoneDetail>; /** * Specifies the advanced backup policy. Structure is documented below. Do nothing * in update method if change this parameter. */ backupStrategy?: pulumi.Input<inputs.GaussDBforNoSQL.RedisInstanceBackupStrategy>; /** * Specifies the charging mode of the GaussDB for Redis instance. Valid values are * **prePaid** and **postPaid**, defaults to **postPaid**. Do nothing in update method if change this parameter. */ chargingMode?: pulumi.Input<string>; /** * Specifies the database information. Structure is documented below. Changing * this parameter will create a new resource. */ datastore?: pulumi.Input<inputs.GaussDBforNoSQL.RedisInstanceDatastore>; /** * 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/redisug-nosql/nosql_05_0059.html). */ 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 type. Value options: **Cluster**, **Replication**. * Defaults to **Cluster**. */ 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 (_). Chinese characters must be in UTF-8 or Unicode format. */ name?: pulumi.Input<string>; /** * Specifies the number of nodes, ranges from `2` to `12`. Defaults to `3`. */ 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 GaussDB for Redis 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 GaussDB for Redis instance. Valid values * are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**. Do nothing in update * method if change this parameter. */ periodUnit?: pulumi.Input<string>; /** * Specifies the port number for accessing the instance. You can specify a port number * based on your requirements. The port number ranges from `1,024` to `65,535`, excluding `2,180`, `2,887`, `3,887`, * `6,377`, `6,378`, `6,380`, `8,018`, `8,079`, `8,091`, `8,479`, `8,484`, `8,999`, `12,017`, `12,333`, and `50,069`. * Defaults to `6,379`. If you want to use this instance for dual-active DR, set the port to `8,635`. */ port?: pulumi.Input<number>; /** * The region in which to create the Redis instance resource. * See [Region and Endpoints](https://developer.huaweicloud.com/intl/en-us/endpoint?GaussDB%20NoSQL) for more detail. If * omitted, the provider-level region will be used. Changing this creates a new Redis 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 SSL is enabled. Defaults to **false**. */ 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. For a GaussDB for Redis instance, the minimum and * maximum storage space depends on the flavor and nodes_num. For details, * see [DB Instance Specifications](https://support.huaweicloud.com/intl/en-us/redisug-nosql/nosql_05_0059.html) */ volumeSize: pulumi.Input<number>; /** * Specifies the VPC ID. Changing this parameter will create a new resource. */ vpcId: pulumi.Input<string>; }