rds

package
v2.27.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2020 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	pulumi.CustomResourceState

	// Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The Id of instance in which account belongs.
	InstanceId pulumi.StringOutput `pulumi:"instanceId"`
	// An KMS encrypts password used to a db account. If the `password` is filled in, this field will be ignored.
	KmsEncryptedPassword pulumi.StringPtrOutput `pulumi:"kmsEncryptedPassword"`
	// An KMS encryption context used to decrypt `kmsEncryptedPassword` before creating or updating a db account with `kmsEncryptedPassword`. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when `kmsEncryptedPassword` is set.
	KmsEncryptionContext pulumi.MapOutput `pulumi:"kmsEncryptionContext"`
	// Operation account requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter and have no more than 16 characters.
	Name pulumi.StringOutput `pulumi:"name"`
	// Operation password. It may consist of letters, digits, or underlines, with a length of 6 to 32 characters. You have to specify one of `password` and `kmsEncryptedPassword` fields.
	Password pulumi.StringPtrOutput `pulumi:"password"`
	// Privilege type of account.
	// - Normal: Common privilege.
	// - Super: High privilege.
	Type pulumi.StringOutput `pulumi:"type"`
}

Provides an RDS account resource and used to manage databases.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		creation := "Rds"
		if param := cfg.Get("creation"); param != "" {
			creation = param
		}
		name := "dbaccountmysql"
		if param := cfg.Get("name"); param != "" {
			name = param
		}
		opt0 := creation
		defaultZones, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
			AvailableResourceCreation: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		defaultNetwork, err := vpc.NewNetwork(ctx, "defaultNetwork", &vpc.NetworkArgs{
			CidrBlock: pulumi.String("172.16.0.0/16"),
		})
		if err != nil {
			return err
		}
		defaultSwitch, err := vpc.NewSwitch(ctx, "defaultSwitch", &vpc.SwitchArgs{
			VpcId:            defaultNetwork.ID(),
			CidrBlock:        pulumi.String("172.16.0.0/24"),
			AvailabilityZone: pulumi.String(defaultZones.Zones[0].Id),
		})
		if err != nil {
			return err
		}
		instance, err := rds.NewInstance(ctx, "instance", &rds.InstanceArgs{
			Engine:          pulumi.String("MySQL"),
			EngineVersion:   pulumi.String("5.6"),
			InstanceType:    pulumi.String("rds.mysql.s1.small"),
			InstanceStorage: pulumi.Int(10),
			VswitchId:       defaultSwitch.ID(),
			InstanceName:    pulumi.String(name),
		})
		if err != nil {
			return err
		}
		_, err = rds.NewAccount(ctx, "account", &rds.AccountArgs{
			InstanceId: instance.ID(),
			Password:   pulumi.String("Test12345"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

RDS account can be imported using the id, e.g.

```sh

$ pulumi import alicloud:rds/account:Account example "rm-12345:tf_account"

```

func GetAccount

func GetAccount(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AccountState, opts ...pulumi.ResourceOption) (*Account, error)

GetAccount gets an existing Account resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewAccount

func NewAccount(ctx *pulumi.Context,
	name string, args *AccountArgs, opts ...pulumi.ResourceOption) (*Account, error)

NewAccount registers a new resource with the given unique name, arguments, and options.

func (Account) ElementType added in v2.25.1

func (Account) ElementType() reflect.Type

func (Account) ToAccountOutput added in v2.25.1

func (i Account) ToAccountOutput() AccountOutput

func (Account) ToAccountOutputWithContext added in v2.25.1

func (i Account) ToAccountOutputWithContext(ctx context.Context) AccountOutput

type AccountArgs

type AccountArgs struct {
	// Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.
	Description pulumi.StringPtrInput
	// The Id of instance in which account belongs.
	InstanceId pulumi.StringInput
	// An KMS encrypts password used to a db account. If the `password` is filled in, this field will be ignored.
	KmsEncryptedPassword pulumi.StringPtrInput
	// An KMS encryption context used to decrypt `kmsEncryptedPassword` before creating or updating a db account with `kmsEncryptedPassword`. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when `kmsEncryptedPassword` is set.
	KmsEncryptionContext pulumi.MapInput
	// Operation account requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter and have no more than 16 characters.
	Name pulumi.StringPtrInput
	// Operation password. It may consist of letters, digits, or underlines, with a length of 6 to 32 characters. You have to specify one of `password` and `kmsEncryptedPassword` fields.
	Password pulumi.StringPtrInput
	// Privilege type of account.
	// - Normal: Common privilege.
	// - Super: High privilege.
	Type pulumi.StringPtrInput
}

The set of arguments for constructing a Account resource.

func (AccountArgs) ElementType

func (AccountArgs) ElementType() reflect.Type

type AccountInput added in v2.25.1

type AccountInput interface {
	pulumi.Input

	ToAccountOutput() AccountOutput
	ToAccountOutputWithContext(ctx context.Context) AccountOutput
}

type AccountOutput added in v2.25.1

type AccountOutput struct {
	*pulumi.OutputState
}

func (AccountOutput) ElementType added in v2.25.1

func (AccountOutput) ElementType() reflect.Type

func (AccountOutput) ToAccountOutput added in v2.25.1

func (o AccountOutput) ToAccountOutput() AccountOutput

func (AccountOutput) ToAccountOutputWithContext added in v2.25.1

func (o AccountOutput) ToAccountOutputWithContext(ctx context.Context) AccountOutput

type AccountPrivilege

type AccountPrivilege struct {
	pulumi.CustomResourceState

	// A specified account name.
	AccountName pulumi.StringOutput `pulumi:"accountName"`
	// List of specified database name.
	DbNames pulumi.StringArrayOutput `pulumi:"dbNames"`
	// The Id of instance in which account belongs.
	InstanceId pulumi.StringOutput `pulumi:"instanceId"`
	// The privilege of one account access database. Valid values:
	// - ReadOnly: This value is only for MySQL, MariaDB and SQL Server
	// - ReadWrite: This value is only for MySQL, MariaDB and SQL Server
	// - DDLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB
	// - DMLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB
	// - DBOwner: (Available in 1.64.0+) This value is only for SQL Server and PostgreSQL.
	Privilege pulumi.StringPtrOutput `pulumi:"privilege"`
}

Provides an RDS account privilege resource and used to grant several database some access privilege. A database can be granted by multiple account.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		creation := "Rds"
		if param := cfg.Get("creation"); param != "" {
			creation = param
		}
		name := "dbaccountprivilegebasic"
		if param := cfg.Get("name"); param != "" {
			name = param
		}
		opt0 := creation
		defaultZones, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
			AvailableResourceCreation: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		defaultNetwork, err := vpc.NewNetwork(ctx, "defaultNetwork", &vpc.NetworkArgs{
			CidrBlock: pulumi.String("172.16.0.0/16"),
		})
		if err != nil {
			return err
		}
		defaultSwitch, err := vpc.NewSwitch(ctx, "defaultSwitch", &vpc.SwitchArgs{
			VpcId:            defaultNetwork.ID(),
			CidrBlock:        pulumi.String("172.16.0.0/24"),
			AvailabilityZone: pulumi.String(defaultZones.Zones[0].Id),
		})
		if err != nil {
			return err
		}
		instance, err := rds.NewInstance(ctx, "instance", &rds.InstanceArgs{
			Engine:          pulumi.String("MySQL"),
			EngineVersion:   pulumi.String("5.6"),
			InstanceType:    pulumi.String("rds.mysql.s1.small"),
			InstanceStorage: pulumi.Int(10),
			VswitchId:       defaultSwitch.ID(),
			InstanceName:    pulumi.String(name),
		})
		if err != nil {
			return err
		}
		var db []*rds.Database
		for key0, _ := range 2 {
			__res, err := rds.NewDatabase(ctx, fmt.Sprintf("db-%v", key0), &rds.DatabaseArgs{
				InstanceId:  instance.ID(),
				Description: pulumi.String("from terraform"),
			})
			if err != nil {
				return err
			}
			db = append(db, __res)
		}
		account, err := rds.NewAccount(ctx, "account", &rds.AccountArgs{
			InstanceId:  instance.ID(),
			Password:    pulumi.String("Test12345"),
			Description: pulumi.String("from terraform"),
		})
		if err != nil {
			return err
		}
		var splat0 pulumi.StringArray
		for _, val0 := range db {
			splat0 = append(splat0, val0.Name)
		}
		_, err = rds.NewAccountPrivilege(ctx, "privilege", &rds.AccountPrivilegeArgs{
			InstanceId:  instance.ID(),
			AccountName: account.Name,
			Privilege:   pulumi.String("ReadOnly"),
			DbNames:     toPulumiStringArray(splat0),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
func toPulumiStringArray(arr []string) pulumi.StringArray {
	var pulumiArr pulumi.StringArray
	for _, v := range arr {
		pulumiArr = append(pulumiArr, pulumi.String(v))
	}
	return pulumiArr
}

```

## Import

RDS account privilege can be imported using the id, e.g.

```sh

$ pulumi import alicloud:rds/accountPrivilege:AccountPrivilege example "rm-12345:tf_account:ReadOnly"

```

func GetAccountPrivilege

func GetAccountPrivilege(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AccountPrivilegeState, opts ...pulumi.ResourceOption) (*AccountPrivilege, error)

GetAccountPrivilege gets an existing AccountPrivilege resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewAccountPrivilege

func NewAccountPrivilege(ctx *pulumi.Context,
	name string, args *AccountPrivilegeArgs, opts ...pulumi.ResourceOption) (*AccountPrivilege, error)

NewAccountPrivilege registers a new resource with the given unique name, arguments, and options.

func (AccountPrivilege) ElementType added in v2.25.1

func (AccountPrivilege) ElementType() reflect.Type

func (AccountPrivilege) ToAccountPrivilegeOutput added in v2.25.1

func (i AccountPrivilege) ToAccountPrivilegeOutput() AccountPrivilegeOutput

func (AccountPrivilege) ToAccountPrivilegeOutputWithContext added in v2.25.1

func (i AccountPrivilege) ToAccountPrivilegeOutputWithContext(ctx context.Context) AccountPrivilegeOutput

type AccountPrivilegeArgs

type AccountPrivilegeArgs struct {
	// A specified account name.
	AccountName pulumi.StringInput
	// List of specified database name.
	DbNames pulumi.StringArrayInput
	// The Id of instance in which account belongs.
	InstanceId pulumi.StringInput
	// The privilege of one account access database. Valid values:
	// - ReadOnly: This value is only for MySQL, MariaDB and SQL Server
	// - ReadWrite: This value is only for MySQL, MariaDB and SQL Server
	// - DDLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB
	// - DMLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB
	// - DBOwner: (Available in 1.64.0+) This value is only for SQL Server and PostgreSQL.
	Privilege pulumi.StringPtrInput
}

The set of arguments for constructing a AccountPrivilege resource.

func (AccountPrivilegeArgs) ElementType

func (AccountPrivilegeArgs) ElementType() reflect.Type

type AccountPrivilegeInput added in v2.25.1

type AccountPrivilegeInput interface {
	pulumi.Input

	ToAccountPrivilegeOutput() AccountPrivilegeOutput
	ToAccountPrivilegeOutputWithContext(ctx context.Context) AccountPrivilegeOutput
}

type AccountPrivilegeOutput added in v2.25.1

type AccountPrivilegeOutput struct {
	*pulumi.OutputState
}

func (AccountPrivilegeOutput) ElementType added in v2.25.1

func (AccountPrivilegeOutput) ElementType() reflect.Type

func (AccountPrivilegeOutput) ToAccountPrivilegeOutput added in v2.25.1

func (o AccountPrivilegeOutput) ToAccountPrivilegeOutput() AccountPrivilegeOutput

func (AccountPrivilegeOutput) ToAccountPrivilegeOutputWithContext added in v2.25.1

func (o AccountPrivilegeOutput) ToAccountPrivilegeOutputWithContext(ctx context.Context) AccountPrivilegeOutput

type AccountPrivilegeState

type AccountPrivilegeState struct {
	// A specified account name.
	AccountName pulumi.StringPtrInput
	// List of specified database name.
	DbNames pulumi.StringArrayInput
	// The Id of instance in which account belongs.
	InstanceId pulumi.StringPtrInput
	// The privilege of one account access database. Valid values:
	// - ReadOnly: This value is only for MySQL, MariaDB and SQL Server
	// - ReadWrite: This value is only for MySQL, MariaDB and SQL Server
	// - DDLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB
	// - DMLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB
	// - DBOwner: (Available in 1.64.0+) This value is only for SQL Server and PostgreSQL.
	Privilege pulumi.StringPtrInput
}

func (AccountPrivilegeState) ElementType

func (AccountPrivilegeState) ElementType() reflect.Type

type AccountState

type AccountState struct {
	// Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.
	Description pulumi.StringPtrInput
	// The Id of instance in which account belongs.
	InstanceId pulumi.StringPtrInput
	// An KMS encrypts password used to a db account. If the `password` is filled in, this field will be ignored.
	KmsEncryptedPassword pulumi.StringPtrInput
	// An KMS encryption context used to decrypt `kmsEncryptedPassword` before creating or updating a db account with `kmsEncryptedPassword`. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when `kmsEncryptedPassword` is set.
	KmsEncryptionContext pulumi.MapInput
	// Operation account requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter and have no more than 16 characters.
	Name pulumi.StringPtrInput
	// Operation password. It may consist of letters, digits, or underlines, with a length of 6 to 32 characters. You have to specify one of `password` and `kmsEncryptedPassword` fields.
	Password pulumi.StringPtrInput
	// Privilege type of account.
	// - Normal: Common privilege.
	// - Super: High privilege.
	Type pulumi.StringPtrInput
}

func (AccountState) ElementType

func (AccountState) ElementType() reflect.Type

type BackupPolicy

type BackupPolicy struct {
	pulumi.CustomResourceState

	// Instance archive backup keep count. Valid when the `enableBackupLog` is `true` and instance is mysql local disk. When `archiveBackupKeepPolicy` is `ByMonth` Valid values: [1-31]. When `archiveBackupKeepPolicy` is `ByWeek` Valid values: [1-7].
	ArchiveBackupKeepCount pulumi.IntOutput `pulumi:"archiveBackupKeepCount"`
	// Instance archive backup keep policy. Valid when the `enableBackupLog` is `true` and instance is mysql local disk. Valid values are `ByMonth`, `Disable`, `KeepAll`.
	ArchiveBackupKeepPolicy pulumi.StringOutput `pulumi:"archiveBackupKeepPolicy"`
	// Instance archive backup retention days. Valid when the `enableBackupLog` is `true` and instance is mysql local disk. Valid values: [30-1095], and `archiveBackupRetentionPeriod` must larger than `backupRetentionPeriod` 730.
	ArchiveBackupRetentionPeriod pulumi.IntOutput `pulumi:"archiveBackupRetentionPeriod"`
	// It has been deprecated from version 1.69.0, and use field 'preferred_backup_period' instead.
	//
	// Deprecated: Attribute 'backup_period' has been deprecated from version 1.69.0. Use `preferred_backup_period` instead
	BackupPeriods pulumi.StringArrayOutput `pulumi:"backupPeriods"`
	// Instance backup retention days. Valid values: [7-730]. Default to 7. But mysql local disk is unlimited.
	BackupRetentionPeriod pulumi.IntPtrOutput `pulumi:"backupRetentionPeriod"`
	// It has been deprecated from version 1.69.0, and use field 'preferred_backup_time' instead.
	//
	// Deprecated: Attribute 'backup_time' has been deprecated from version 1.69.0. Use `preferred_backup_time` instead
	BackupTime pulumi.StringOutput `pulumi:"backupTime"`
	// The compress type of instance policy. Valid values are `1`, `4`, `8`.
	CompressType pulumi.StringOutput `pulumi:"compressType"`
	// Whether to backup instance log. Valid values are `true`, `false`, Default to `true`. Note: The 'Basic Edition' category Rds instance does not support setting log backup. [What is Basic Edition](https://www.alibabacloud.com/help/doc-detail/48980.htm).
	EnableBackupLog pulumi.BoolOutput `pulumi:"enableBackupLog"`
	// Instance high space usage protection policy. Valid when the `enableBackupLog` is `true`. Valid values are `Enable`, `Disable`.
	HighSpaceUsageProtection pulumi.StringPtrOutput `pulumi:"highSpaceUsageProtection"`
	// The Id of instance that can run database.
	InstanceId pulumi.StringOutput `pulumi:"instanceId"`
	// Instance log backup local retention hours. Valid when the `enableBackupLog` is `true`. Valid values: [0-7*24].
	LocalLogRetentionHours pulumi.IntOutput `pulumi:"localLogRetentionHours"`
	// Instance log backup local retention space. Valid when the `enableBackupLog` is `true`. Valid values: [5-50].
	LocalLogRetentionSpace pulumi.IntOutput `pulumi:"localLogRetentionSpace"`
	// It has been deprecated from version 1.68.0, and use field 'enable_backup_log' instead.
	//
	// Deprecated: Attribute 'log_backup' has been deprecated from version 1.68.0. Use `enable_backup_log` instead
	LogBackup pulumi.BoolOutput `pulumi:"logBackup"`
	// Instance log backup frequency. Valid when the instance engine is `SQLServer`. Valid values are `LogInterval`.
	LogBackupFrequency pulumi.StringOutput `pulumi:"logBackupFrequency"`
	// Instance log backup retention days. Valid when the `enableBackupLog` is `1`. Valid values: [7-730]. Default to 7. It cannot be larger than `backupRetentionPeriod`.
	LogBackupRetentionPeriod pulumi.IntOutput `pulumi:"logBackupRetentionPeriod"`
	// It has been deprecated from version 1.69.0, and use field 'log_backup_retention_period' instead.
	//
	// Deprecated: Attribute 'log_retention_period' has been deprecated from version 1.69.0. Use `log_backup_retention_period` instead
	LogRetentionPeriod pulumi.IntOutput `pulumi:"logRetentionPeriod"`
	// DB Instance backup period. Please set at least two days to ensure backing up at least twice a week. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]. Default to ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"].
	PreferredBackupPeriods pulumi.StringArrayOutput `pulumi:"preferredBackupPeriods"`
	// DB instance backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. Default to "02:00Z-03:00Z". China time is 8 hours behind it.
	PreferredBackupTime pulumi.StringPtrOutput `pulumi:"preferredBackupTime"`
	// It has been deprecated from version 1.69.0, and use field 'backup_retention_period' instead.
	//
	// Deprecated: Attribute 'retention_period' has been deprecated from version 1.69.0. Use `backup_retention_period` instead
	RetentionPeriod pulumi.IntOutput `pulumi:"retentionPeriod"`
}

Provides an RDS instance backup policy resource and used to configure instance backup policy.

> **NOTE:** Each DB instance has a backup policy and it will be set default values when destroying the resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		creation := "Rds"
		if param := cfg.Get("creation"); param != "" {
			creation = param
		}
		name := "dbbackuppolicybasic"
		if param := cfg.Get("name"); param != "" {
			name = param
		}
		opt0 := creation
		defaultZones, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
			AvailableResourceCreation: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		defaultNetwork, err := vpc.NewNetwork(ctx, "defaultNetwork", &vpc.NetworkArgs{
			CidrBlock: pulumi.String("172.16.0.0/16"),
		})
		if err != nil {
			return err
		}
		defaultSwitch, err := vpc.NewSwitch(ctx, "defaultSwitch", &vpc.SwitchArgs{
			VpcId:            defaultNetwork.ID(),
			CidrBlock:        pulumi.String("172.16.0.0/24"),
			AvailabilityZone: pulumi.String(defaultZones.Zones[0].Id),
		})
		if err != nil {
			return err
		}
		instance, err := rds.NewInstance(ctx, "instance", &rds.InstanceArgs{
			Engine:          pulumi.String("MySQL"),
			EngineVersion:   pulumi.String("5.6"),
			InstanceType:    pulumi.String("rds.mysql.s1.small"),
			InstanceStorage: pulumi.Int(10),
			VswitchId:       defaultSwitch.ID(),
			InstanceName:    pulumi.String(name),
		})
		if err != nil {
			return err
		}
		_, err = rds.NewBackupPolicy(ctx, "policy", &rds.BackupPolicyArgs{
			InstanceId: instance.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

RDS backup policy can be imported using the id or instance id, e.g.

```sh

$ pulumi import alicloud:rds/backupPolicy:BackupPolicy example "rm-12345678"

```

func GetBackupPolicy

func GetBackupPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BackupPolicyState, opts ...pulumi.ResourceOption) (*BackupPolicy, error)

GetBackupPolicy gets an existing BackupPolicy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewBackupPolicy

func NewBackupPolicy(ctx *pulumi.Context,
	name string, args *BackupPolicyArgs, opts ...pulumi.ResourceOption) (*BackupPolicy, error)

NewBackupPolicy registers a new resource with the given unique name, arguments, and options.

func (BackupPolicy) ElementType added in v2.25.1

func (BackupPolicy) ElementType() reflect.Type

func (BackupPolicy) ToBackupPolicyOutput added in v2.25.1

func (i BackupPolicy) ToBackupPolicyOutput() BackupPolicyOutput

func (BackupPolicy) ToBackupPolicyOutputWithContext added in v2.25.1

func (i BackupPolicy) ToBackupPolicyOutputWithContext(ctx context.Context) BackupPolicyOutput

type BackupPolicyArgs

type BackupPolicyArgs struct {
	// Instance archive backup keep count. Valid when the `enableBackupLog` is `true` and instance is mysql local disk. When `archiveBackupKeepPolicy` is `ByMonth` Valid values: [1-31]. When `archiveBackupKeepPolicy` is `ByWeek` Valid values: [1-7].
	ArchiveBackupKeepCount pulumi.IntPtrInput
	// Instance archive backup keep policy. Valid when the `enableBackupLog` is `true` and instance is mysql local disk. Valid values are `ByMonth`, `Disable`, `KeepAll`.
	ArchiveBackupKeepPolicy pulumi.StringPtrInput
	// Instance archive backup retention days. Valid when the `enableBackupLog` is `true` and instance is mysql local disk. Valid values: [30-1095], and `archiveBackupRetentionPeriod` must larger than `backupRetentionPeriod` 730.
	ArchiveBackupRetentionPeriod pulumi.IntPtrInput
	// It has been deprecated from version 1.69.0, and use field 'preferred_backup_period' instead.
	//
	// Deprecated: Attribute 'backup_period' has been deprecated from version 1.69.0. Use `preferred_backup_period` instead
	BackupPeriods pulumi.StringArrayInput
	// Instance backup retention days. Valid values: [7-730]. Default to 7. But mysql local disk is unlimited.
	BackupRetentionPeriod pulumi.IntPtrInput
	// It has been deprecated from version 1.69.0, and use field 'preferred_backup_time' instead.
	//
	// Deprecated: Attribute 'backup_time' has been deprecated from version 1.69.0. Use `preferred_backup_time` instead
	BackupTime pulumi.StringPtrInput
	// The compress type of instance policy. Valid values are `1`, `4`, `8`.
	CompressType pulumi.StringPtrInput
	// Whether to backup instance log. Valid values are `true`, `false`, Default to `true`. Note: The 'Basic Edition' category Rds instance does not support setting log backup. [What is Basic Edition](https://www.alibabacloud.com/help/doc-detail/48980.htm).
	EnableBackupLog pulumi.BoolPtrInput
	// Instance high space usage protection policy. Valid when the `enableBackupLog` is `true`. Valid values are `Enable`, `Disable`.
	HighSpaceUsageProtection pulumi.StringPtrInput
	// The Id of instance that can run database.
	InstanceId pulumi.StringInput
	// Instance log backup local retention hours. Valid when the `enableBackupLog` is `true`. Valid values: [0-7*24].
	LocalLogRetentionHours pulumi.IntPtrInput
	// Instance log backup local retention space. Valid when the `enableBackupLog` is `true`. Valid values: [5-50].
	LocalLogRetentionSpace pulumi.IntPtrInput
	// It has been deprecated from version 1.68.0, and use field 'enable_backup_log' instead.
	//
	// Deprecated: Attribute 'log_backup' has been deprecated from version 1.68.0. Use `enable_backup_log` instead
	LogBackup pulumi.BoolPtrInput
	// Instance log backup frequency. Valid when the instance engine is `SQLServer`. Valid values are `LogInterval`.
	LogBackupFrequency pulumi.StringPtrInput
	// Instance log backup retention days. Valid when the `enableBackupLog` is `1`. Valid values: [7-730]. Default to 7. It cannot be larger than `backupRetentionPeriod`.
	LogBackupRetentionPeriod pulumi.IntPtrInput
	// It has been deprecated from version 1.69.0, and use field 'log_backup_retention_period' instead.
	//
	// Deprecated: Attribute 'log_retention_period' has been deprecated from version 1.69.0. Use `log_backup_retention_period` instead
	LogRetentionPeriod pulumi.IntPtrInput
	// DB Instance backup period. Please set at least two days to ensure backing up at least twice a week. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]. Default to ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"].
	PreferredBackupPeriods pulumi.StringArrayInput
	// DB instance backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. Default to "02:00Z-03:00Z". China time is 8 hours behind it.
	PreferredBackupTime pulumi.StringPtrInput
	// It has been deprecated from version 1.69.0, and use field 'backup_retention_period' instead.
	//
	// Deprecated: Attribute 'retention_period' has been deprecated from version 1.69.0. Use `backup_retention_period` instead
	RetentionPeriod pulumi.IntPtrInput
}

The set of arguments for constructing a BackupPolicy resource.

func (BackupPolicyArgs) ElementType

func (BackupPolicyArgs) ElementType() reflect.Type

type BackupPolicyInput added in v2.25.1

type BackupPolicyInput interface {
	pulumi.Input

	ToBackupPolicyOutput() BackupPolicyOutput
	ToBackupPolicyOutputWithContext(ctx context.Context) BackupPolicyOutput
}

type BackupPolicyOutput added in v2.25.1

type BackupPolicyOutput struct {
	*pulumi.OutputState
}

func (BackupPolicyOutput) ElementType added in v2.25.1

func (BackupPolicyOutput) ElementType() reflect.Type

func (BackupPolicyOutput) ToBackupPolicyOutput added in v2.25.1

func (o BackupPolicyOutput) ToBackupPolicyOutput() BackupPolicyOutput

func (BackupPolicyOutput) ToBackupPolicyOutputWithContext added in v2.25.1

func (o BackupPolicyOutput) ToBackupPolicyOutputWithContext(ctx context.Context) BackupPolicyOutput

type BackupPolicyState

type BackupPolicyState struct {
	// Instance archive backup keep count. Valid when the `enableBackupLog` is `true` and instance is mysql local disk. When `archiveBackupKeepPolicy` is `ByMonth` Valid values: [1-31]. When `archiveBackupKeepPolicy` is `ByWeek` Valid values: [1-7].
	ArchiveBackupKeepCount pulumi.IntPtrInput
	// Instance archive backup keep policy. Valid when the `enableBackupLog` is `true` and instance is mysql local disk. Valid values are `ByMonth`, `Disable`, `KeepAll`.
	ArchiveBackupKeepPolicy pulumi.StringPtrInput
	// Instance archive backup retention days. Valid when the `enableBackupLog` is `true` and instance is mysql local disk. Valid values: [30-1095], and `archiveBackupRetentionPeriod` must larger than `backupRetentionPeriod` 730.
	ArchiveBackupRetentionPeriod pulumi.IntPtrInput
	// It has been deprecated from version 1.69.0, and use field 'preferred_backup_period' instead.
	//
	// Deprecated: Attribute 'backup_period' has been deprecated from version 1.69.0. Use `preferred_backup_period` instead
	BackupPeriods pulumi.StringArrayInput
	// Instance backup retention days. Valid values: [7-730]. Default to 7. But mysql local disk is unlimited.
	BackupRetentionPeriod pulumi.IntPtrInput
	// It has been deprecated from version 1.69.0, and use field 'preferred_backup_time' instead.
	//
	// Deprecated: Attribute 'backup_time' has been deprecated from version 1.69.0. Use `preferred_backup_time` instead
	BackupTime pulumi.StringPtrInput
	// The compress type of instance policy. Valid values are `1`, `4`, `8`.
	CompressType pulumi.StringPtrInput
	// Whether to backup instance log. Valid values are `true`, `false`, Default to `true`. Note: The 'Basic Edition' category Rds instance does not support setting log backup. [What is Basic Edition](https://www.alibabacloud.com/help/doc-detail/48980.htm).
	EnableBackupLog pulumi.BoolPtrInput
	// Instance high space usage protection policy. Valid when the `enableBackupLog` is `true`. Valid values are `Enable`, `Disable`.
	HighSpaceUsageProtection pulumi.StringPtrInput
	// The Id of instance that can run database.
	InstanceId pulumi.StringPtrInput
	// Instance log backup local retention hours. Valid when the `enableBackupLog` is `true`. Valid values: [0-7*24].
	LocalLogRetentionHours pulumi.IntPtrInput
	// Instance log backup local retention space. Valid when the `enableBackupLog` is `true`. Valid values: [5-50].
	LocalLogRetentionSpace pulumi.IntPtrInput
	// It has been deprecated from version 1.68.0, and use field 'enable_backup_log' instead.
	//
	// Deprecated: Attribute 'log_backup' has been deprecated from version 1.68.0. Use `enable_backup_log` instead
	LogBackup pulumi.BoolPtrInput
	// Instance log backup frequency. Valid when the instance engine is `SQLServer`. Valid values are `LogInterval`.
	LogBackupFrequency pulumi.StringPtrInput
	// Instance log backup retention days. Valid when the `enableBackupLog` is `1`. Valid values: [7-730]. Default to 7. It cannot be larger than `backupRetentionPeriod`.
	LogBackupRetentionPeriod pulumi.IntPtrInput
	// It has been deprecated from version 1.69.0, and use field 'log_backup_retention_period' instead.
	//
	// Deprecated: Attribute 'log_retention_period' has been deprecated from version 1.69.0. Use `log_backup_retention_period` instead
	LogRetentionPeriod pulumi.IntPtrInput
	// DB Instance backup period. Please set at least two days to ensure backing up at least twice a week. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]. Default to ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"].
	PreferredBackupPeriods pulumi.StringArrayInput
	// DB instance backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. Default to "02:00Z-03:00Z". China time is 8 hours behind it.
	PreferredBackupTime pulumi.StringPtrInput
	// It has been deprecated from version 1.69.0, and use field 'backup_retention_period' instead.
	//
	// Deprecated: Attribute 'retention_period' has been deprecated from version 1.69.0. Use `backup_retention_period` instead
	RetentionPeriod pulumi.IntPtrInput
}

func (BackupPolicyState) ElementType

func (BackupPolicyState) ElementType() reflect.Type

type Connection

type Connection struct {
	pulumi.CustomResourceState

	// Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to <instance_id> + 'tf'.
	ConnectionPrefix pulumi.StringOutput `pulumi:"connectionPrefix"`
	// Connection instance string.
	ConnectionString pulumi.StringOutput `pulumi:"connectionString"`
	// The Id of instance that can run database.
	InstanceId pulumi.StringOutput `pulumi:"instanceId"`
	// The ip address of connection string.
	IpAddress pulumi.StringOutput `pulumi:"ipAddress"`
	// Internet connection port. Valid value: [3001-3999]. Default to 3306.
	Port pulumi.StringPtrOutput `pulumi:"port"`
}

Provides an RDS connection resource to allocate an Internet connection string for RDS instance.

> **NOTE:** Each RDS instance will allocate a intranet connnection string automatically and its prifix is RDS instance ID.

To avoid unnecessary conflict, please specified a internet connection prefix before applying the resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		creation := "Rds"
		if param := cfg.Get("creation"); param != "" {
			creation = param
		}
		name := "dbconnectionbasic"
		if param := cfg.Get("name"); param != "" {
			name = param
		}
		opt0 := creation
		defaultZones, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
			AvailableResourceCreation: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		defaultNetwork, err := vpc.NewNetwork(ctx, "defaultNetwork", &vpc.NetworkArgs{
			CidrBlock: pulumi.String("172.16.0.0/16"),
		})
		if err != nil {
			return err
		}
		defaultSwitch, err := vpc.NewSwitch(ctx, "defaultSwitch", &vpc.SwitchArgs{
			VpcId:            defaultNetwork.ID(),
			CidrBlock:        pulumi.String("172.16.0.0/24"),
			AvailabilityZone: pulumi.String(defaultZones.Zones[0].Id),
		})
		if err != nil {
			return err
		}
		instance, err := rds.NewInstance(ctx, "instance", &rds.InstanceArgs{
			Engine:          pulumi.String("MySQL"),
			EngineVersion:   pulumi.String("5.6"),
			InstanceType:    pulumi.String("rds.mysql.t1.small"),
			InstanceStorage: pulumi.Int(10),
			VswitchId:       defaultSwitch.ID(),
			InstanceName:    pulumi.String(name),
		})
		if err != nil {
			return err
		}
		_, err = rds.NewConnection(ctx, "foo", &rds.ConnectionArgs{
			InstanceId:       instance.ID(),
			ConnectionPrefix: pulumi.String("testabc"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

RDS connection can be imported using the id, e.g.

```sh

$ pulumi import alicloud:rds/connection:Connection example abc12345678

```

func GetConnection

func GetConnection(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ConnectionState, opts ...pulumi.ResourceOption) (*Connection, error)

GetConnection gets an existing Connection resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewConnection

func NewConnection(ctx *pulumi.Context,
	name string, args *ConnectionArgs, opts ...pulumi.ResourceOption) (*Connection, error)

NewConnection registers a new resource with the given unique name, arguments, and options.

func (Connection) ElementType added in v2.25.1

func (Connection) ElementType() reflect.Type

func (Connection) ToConnectionOutput added in v2.25.1

func (i Connection) ToConnectionOutput() ConnectionOutput

func (Connection) ToConnectionOutputWithContext added in v2.25.1

func (i Connection) ToConnectionOutputWithContext(ctx context.Context) ConnectionOutput

type ConnectionArgs

type ConnectionArgs struct {
	// Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to <instance_id> + 'tf'.
	ConnectionPrefix pulumi.StringPtrInput
	// The Id of instance that can run database.
	InstanceId pulumi.StringInput
	// Internet connection port. Valid value: [3001-3999]. Default to 3306.
	Port pulumi.StringPtrInput
}

The set of arguments for constructing a Connection resource.

func (ConnectionArgs) ElementType

func (ConnectionArgs) ElementType() reflect.Type

type ConnectionInput added in v2.25.1

type ConnectionInput interface {
	pulumi.Input

	ToConnectionOutput() ConnectionOutput
	ToConnectionOutputWithContext(ctx context.Context) ConnectionOutput
}

type ConnectionOutput added in v2.25.1

type ConnectionOutput struct {
	*pulumi.OutputState
}

func (ConnectionOutput) ElementType added in v2.25.1

func (ConnectionOutput) ElementType() reflect.Type

func (ConnectionOutput) ToConnectionOutput added in v2.25.1

func (o ConnectionOutput) ToConnectionOutput() ConnectionOutput

func (ConnectionOutput) ToConnectionOutputWithContext added in v2.25.1

func (o ConnectionOutput) ToConnectionOutputWithContext(ctx context.Context) ConnectionOutput

type ConnectionState

type ConnectionState struct {
	// Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to <instance_id> + 'tf'.
	ConnectionPrefix pulumi.StringPtrInput
	// Connection instance string.
	ConnectionString pulumi.StringPtrInput
	// The Id of instance that can run database.
	InstanceId pulumi.StringPtrInput
	// The ip address of connection string.
	IpAddress pulumi.StringPtrInput
	// Internet connection port. Valid value: [3001-3999]. Default to 3306.
	Port pulumi.StringPtrInput
}

func (ConnectionState) ElementType

func (ConnectionState) ElementType() reflect.Type

type Database

type Database struct {
	pulumi.CustomResourceState

	// Character set. The value range is limited to the following:
	// - MySQL: [ utf8, gbk, latin1, utf8mb4 ] \(`utf8mb4` only supports versions 5.5 and 5.6\).
	// - SQLServer: [ Chinese_PRC_CI_AS, Chinese_PRC_CS_AS, SQL_Latin1_General_CP1_CI_AS, SQL_Latin1_General_CP1_CS_AS, Chinese_PRC_BIN ]
	// - PostgreSQL: [ KOI8U、UTF8、WIN866、WIN874、WIN1250、WIN1251、WIN1252、WIN1253、WIN1254、WIN1255、WIN1256、WIN1257、WIN1258、EUC_CN、EUC_KR、EUC_TW、EUC_JP、EUC_JIS_2004、KOI8R、MULE_INTERNAL、LATIN1、LATIN2、LATIN3、LATIN4、LATIN5、LATIN6、LATIN7、LATIN8、LATIN9、LATIN10、ISO_8859_5、ISO_8859_6、ISO_8859_7、ISO_8859_8、SQL_ASCII ]
	CharacterSet pulumi.StringPtrOutput `pulumi:"characterSet"`
	// Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The Id of instance that can run database.
	InstanceId pulumi.StringOutput `pulumi:"instanceId"`
	// Name of the database requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter
	// and have no more than 64 characters.
	Name pulumi.StringOutput `pulumi:"name"`
}

Provides an RDS database resource. A DB database deployed in a DB instance. A DB instance can own multiple databases.

> **NOTE:** This resource does not support creating 'PPAS' database. You have to login RDS instance to create manually.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		creation := "Rds"
		if param := cfg.Get("creation"); param != "" {
			creation = param
		}
		name := "dbdatabasebasic"
		if param := cfg.Get("name"); param != "" {
			name = param
		}
		opt0 := creation
		defaultZones, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
			AvailableResourceCreation: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		defaultNetwork, err := vpc.NewNetwork(ctx, "defaultNetwork", &vpc.NetworkArgs{
			CidrBlock: pulumi.String("172.16.0.0/16"),
		})
		if err != nil {
			return err
		}
		defaultSwitch, err := vpc.NewSwitch(ctx, "defaultSwitch", &vpc.SwitchArgs{
			VpcId:            defaultNetwork.ID(),
			CidrBlock:        pulumi.String("172.16.0.0/24"),
			AvailabilityZone: pulumi.String(defaultZones.Zones[0].Id),
		})
		if err != nil {
			return err
		}
		instance, err := rds.NewInstance(ctx, "instance", &rds.InstanceArgs{
			Engine:          pulumi.String("MySQL"),
			EngineVersion:   pulumi.String("5.6"),
			InstanceType:    pulumi.String("rds.mysql.s1.small"),
			InstanceStorage: pulumi.Int(10),
			VswitchId:       defaultSwitch.ID(),
			InstanceName:    pulumi.String(name),
		})
		if err != nil {
			return err
		}
		_, err = rds.NewDatabase(ctx, "defaultDatabase", &rds.DatabaseArgs{
			InstanceId: instance.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

RDS database can be imported using the id, e.g.

```sh

$ pulumi import alicloud:rds/database:Database example "rm-12345:tf_database"

```

func GetDatabase

func GetDatabase(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DatabaseState, opts ...pulumi.ResourceOption) (*Database, error)

GetDatabase gets an existing Database resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDatabase

func NewDatabase(ctx *pulumi.Context,
	name string, args *DatabaseArgs, opts ...pulumi.ResourceOption) (*Database, error)

NewDatabase registers a new resource with the given unique name, arguments, and options.

func (Database) ElementType added in v2.25.1

func (Database) ElementType() reflect.Type

func (Database) ToDatabaseOutput added in v2.25.1

func (i Database) ToDatabaseOutput() DatabaseOutput

func (Database) ToDatabaseOutputWithContext added in v2.25.1

func (i Database) ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput

type DatabaseArgs

type DatabaseArgs struct {
	// Character set. The value range is limited to the following:
	// - MySQL: [ utf8, gbk, latin1, utf8mb4 ] \(`utf8mb4` only supports versions 5.5 and 5.6\).
	// - SQLServer: [ Chinese_PRC_CI_AS, Chinese_PRC_CS_AS, SQL_Latin1_General_CP1_CI_AS, SQL_Latin1_General_CP1_CS_AS, Chinese_PRC_BIN ]
	// - PostgreSQL: [ KOI8U、UTF8、WIN866、WIN874、WIN1250、WIN1251、WIN1252、WIN1253、WIN1254、WIN1255、WIN1256、WIN1257、WIN1258、EUC_CN、EUC_KR、EUC_TW、EUC_JP、EUC_JIS_2004、KOI8R、MULE_INTERNAL、LATIN1、LATIN2、LATIN3、LATIN4、LATIN5、LATIN6、LATIN7、LATIN8、LATIN9、LATIN10、ISO_8859_5、ISO_8859_6、ISO_8859_7、ISO_8859_8、SQL_ASCII ]
	CharacterSet pulumi.StringPtrInput
	// Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.
	Description pulumi.StringPtrInput
	// The Id of instance that can run database.
	InstanceId pulumi.StringInput
	// Name of the database requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter
	// and have no more than 64 characters.
	Name pulumi.StringPtrInput
}

The set of arguments for constructing a Database resource.

func (DatabaseArgs) ElementType

func (DatabaseArgs) ElementType() reflect.Type

type DatabaseInput added in v2.25.1

type DatabaseInput interface {
	pulumi.Input

	ToDatabaseOutput() DatabaseOutput
	ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput
}

type DatabaseOutput added in v2.25.1

type DatabaseOutput struct {
	*pulumi.OutputState
}

func (DatabaseOutput) ElementType added in v2.25.1

func (DatabaseOutput) ElementType() reflect.Type

func (DatabaseOutput) ToDatabaseOutput added in v2.25.1

func (o DatabaseOutput) ToDatabaseOutput() DatabaseOutput

func (DatabaseOutput) ToDatabaseOutputWithContext added in v2.25.1

func (o DatabaseOutput) ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput

type DatabaseState

type DatabaseState struct {
	// Character set. The value range is limited to the following:
	// - MySQL: [ utf8, gbk, latin1, utf8mb4 ] \(`utf8mb4` only supports versions 5.5 and 5.6\).
	// - SQLServer: [ Chinese_PRC_CI_AS, Chinese_PRC_CS_AS, SQL_Latin1_General_CP1_CI_AS, SQL_Latin1_General_CP1_CS_AS, Chinese_PRC_BIN ]
	// - PostgreSQL: [ KOI8U、UTF8、WIN866、WIN874、WIN1250、WIN1251、WIN1252、WIN1253、WIN1254、WIN1255、WIN1256、WIN1257、WIN1258、EUC_CN、EUC_KR、EUC_TW、EUC_JP、EUC_JIS_2004、KOI8R、MULE_INTERNAL、LATIN1、LATIN2、LATIN3、LATIN4、LATIN5、LATIN6、LATIN7、LATIN8、LATIN9、LATIN10、ISO_8859_5、ISO_8859_6、ISO_8859_7、ISO_8859_8、SQL_ASCII ]
	CharacterSet pulumi.StringPtrInput
	// Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.
	Description pulumi.StringPtrInput
	// The Id of instance that can run database.
	InstanceId pulumi.StringPtrInput
	// Name of the database requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter
	// and have no more than 64 characters.
	Name pulumi.StringPtrInput
}

func (DatabaseState) ElementType

func (DatabaseState) ElementType() reflect.Type

type GetInstanceClassesArgs

type GetInstanceClassesArgs struct {
	// DB Instance category. the value like [`Basic`, `HighAvailability`, `Finance`], [detail info](https://www.alibabacloud.com/help/doc-detail/69795.htm).
	Category *string `pulumi:"category"`
	// The DB instance class type by the user.
	DbInstanceClass *string `pulumi:"dbInstanceClass"`
	// Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL` and `PPAS`. If no value is specified, all types are returned.
	Engine *string `pulumi:"engine"`
	// Database version required by the user. Value options can refer to the latest docs [detail info](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.
	EngineVersion *string `pulumi:"engineVersion"`
	// Filter the results by charge type. Valid values: `PrePaid` and `PostPaid`. Default to `PostPaid`.
	InstanceChargeType *string `pulumi:"instanceChargeType"`
	// Whether to show multi available zone. Default false to not show multi availability zone.
	MultiZone  *bool   `pulumi:"multiZone"`
	OutputFile *string `pulumi:"outputFile"`
	SortedBy   *string `pulumi:"sortedBy"`
	// The DB instance storage space required by the user. Valid values: `cloudSsd` and `localSsd`.
	StorageType *string `pulumi:"storageType"`
	// The Zone to launch the DB instance.
	ZoneId *string `pulumi:"zoneId"`
}

A collection of arguments for invoking getInstanceClasses.

type GetInstanceClassesInstanceClass

type GetInstanceClassesInstanceClass struct {
	// DB Instance available class.
	InstanceClass string `pulumi:"instanceClass"`
	Price         string `pulumi:"price"`
	// DB Instance available storage range.
	StorageRange GetInstanceClassesInstanceClassStorageRange `pulumi:"storageRange"`
	// A list of Zone to launch the DB instance.
	ZoneIds []GetInstanceClassesInstanceClassZoneId `pulumi:"zoneIds"`
}

type GetInstanceClassesInstanceClassArgs

type GetInstanceClassesInstanceClassArgs struct {
	// DB Instance available class.
	InstanceClass pulumi.StringInput `pulumi:"instanceClass"`
	Price         pulumi.StringInput `pulumi:"price"`
	// DB Instance available storage range.
	StorageRange GetInstanceClassesInstanceClassStorageRangeInput `pulumi:"storageRange"`
	// A list of Zone to launch the DB instance.
	ZoneIds GetInstanceClassesInstanceClassZoneIdArrayInput `pulumi:"zoneIds"`
}

func (GetInstanceClassesInstanceClassArgs) ElementType

func (GetInstanceClassesInstanceClassArgs) ToGetInstanceClassesInstanceClassOutput

func (i GetInstanceClassesInstanceClassArgs) ToGetInstanceClassesInstanceClassOutput() GetInstanceClassesInstanceClassOutput

func (GetInstanceClassesInstanceClassArgs) ToGetInstanceClassesInstanceClassOutputWithContext

func (i GetInstanceClassesInstanceClassArgs) ToGetInstanceClassesInstanceClassOutputWithContext(ctx context.Context) GetInstanceClassesInstanceClassOutput

type GetInstanceClassesInstanceClassArray

type GetInstanceClassesInstanceClassArray []GetInstanceClassesInstanceClassInput

func (GetInstanceClassesInstanceClassArray) ElementType

func (GetInstanceClassesInstanceClassArray) ToGetInstanceClassesInstanceClassArrayOutput

func (i GetInstanceClassesInstanceClassArray) ToGetInstanceClassesInstanceClassArrayOutput() GetInstanceClassesInstanceClassArrayOutput

func (GetInstanceClassesInstanceClassArray) ToGetInstanceClassesInstanceClassArrayOutputWithContext

func (i GetInstanceClassesInstanceClassArray) ToGetInstanceClassesInstanceClassArrayOutputWithContext(ctx context.Context) GetInstanceClassesInstanceClassArrayOutput

type GetInstanceClassesInstanceClassArrayInput

type GetInstanceClassesInstanceClassArrayInput interface {
	pulumi.Input

	ToGetInstanceClassesInstanceClassArrayOutput() GetInstanceClassesInstanceClassArrayOutput
	ToGetInstanceClassesInstanceClassArrayOutputWithContext(context.Context) GetInstanceClassesInstanceClassArrayOutput
}

GetInstanceClassesInstanceClassArrayInput is an input type that accepts GetInstanceClassesInstanceClassArray and GetInstanceClassesInstanceClassArrayOutput values. You can construct a concrete instance of `GetInstanceClassesInstanceClassArrayInput` via:

GetInstanceClassesInstanceClassArray{ GetInstanceClassesInstanceClassArgs{...} }

type GetInstanceClassesInstanceClassArrayOutput

type GetInstanceClassesInstanceClassArrayOutput struct{ *pulumi.OutputState }

func (GetInstanceClassesInstanceClassArrayOutput) ElementType

func (GetInstanceClassesInstanceClassArrayOutput) Index

func (GetInstanceClassesInstanceClassArrayOutput) ToGetInstanceClassesInstanceClassArrayOutput

func (o GetInstanceClassesInstanceClassArrayOutput) ToGetInstanceClassesInstanceClassArrayOutput() GetInstanceClassesInstanceClassArrayOutput

func (GetInstanceClassesInstanceClassArrayOutput) ToGetInstanceClassesInstanceClassArrayOutputWithContext

func (o GetInstanceClassesInstanceClassArrayOutput) ToGetInstanceClassesInstanceClassArrayOutputWithContext(ctx context.Context) GetInstanceClassesInstanceClassArrayOutput

type GetInstanceClassesInstanceClassInput

type GetInstanceClassesInstanceClassInput interface {
	pulumi.Input

	ToGetInstanceClassesInstanceClassOutput() GetInstanceClassesInstanceClassOutput
	ToGetInstanceClassesInstanceClassOutputWithContext(context.Context) GetInstanceClassesInstanceClassOutput
}

GetInstanceClassesInstanceClassInput is an input type that accepts GetInstanceClassesInstanceClassArgs and GetInstanceClassesInstanceClassOutput values. You can construct a concrete instance of `GetInstanceClassesInstanceClassInput` via:

GetInstanceClassesInstanceClassArgs{...}

type GetInstanceClassesInstanceClassOutput

type GetInstanceClassesInstanceClassOutput struct{ *pulumi.OutputState }

func (GetInstanceClassesInstanceClassOutput) ElementType

func (GetInstanceClassesInstanceClassOutput) InstanceClass

DB Instance available class.

func (GetInstanceClassesInstanceClassOutput) Price

func (GetInstanceClassesInstanceClassOutput) StorageRange

DB Instance available storage range.

func (GetInstanceClassesInstanceClassOutput) ToGetInstanceClassesInstanceClassOutput

func (o GetInstanceClassesInstanceClassOutput) ToGetInstanceClassesInstanceClassOutput() GetInstanceClassesInstanceClassOutput

func (GetInstanceClassesInstanceClassOutput) ToGetInstanceClassesInstanceClassOutputWithContext

func (o GetInstanceClassesInstanceClassOutput) ToGetInstanceClassesInstanceClassOutputWithContext(ctx context.Context) GetInstanceClassesInstanceClassOutput

func (GetInstanceClassesInstanceClassOutput) ZoneIds

A list of Zone to launch the DB instance.

type GetInstanceClassesInstanceClassStorageRange

type GetInstanceClassesInstanceClassStorageRange struct {
	// DB Instance available storage max value.
	Max string `pulumi:"max"`
	// DB Instance available storage min value.
	Min string `pulumi:"min"`
	// DB Instance available storage increase step.
	Step string `pulumi:"step"`
}

type GetInstanceClassesInstanceClassStorageRangeArgs

type GetInstanceClassesInstanceClassStorageRangeArgs struct {
	// DB Instance available storage max value.
	Max pulumi.StringInput `pulumi:"max"`
	// DB Instance available storage min value.
	Min pulumi.StringInput `pulumi:"min"`
	// DB Instance available storage increase step.
	Step pulumi.StringInput `pulumi:"step"`
}

func (GetInstanceClassesInstanceClassStorageRangeArgs) ElementType

func (GetInstanceClassesInstanceClassStorageRangeArgs) ToGetInstanceClassesInstanceClassStorageRangeOutput

func (i GetInstanceClassesInstanceClassStorageRangeArgs) ToGetInstanceClassesInstanceClassStorageRangeOutput() GetInstanceClassesInstanceClassStorageRangeOutput

func (GetInstanceClassesInstanceClassStorageRangeArgs) ToGetInstanceClassesInstanceClassStorageRangeOutputWithContext

func (i GetInstanceClassesInstanceClassStorageRangeArgs) ToGetInstanceClassesInstanceClassStorageRangeOutputWithContext(ctx context.Context) GetInstanceClassesInstanceClassStorageRangeOutput

type GetInstanceClassesInstanceClassStorageRangeInput

type GetInstanceClassesInstanceClassStorageRangeInput interface {
	pulumi.Input

	ToGetInstanceClassesInstanceClassStorageRangeOutput() GetInstanceClassesInstanceClassStorageRangeOutput
	ToGetInstanceClassesInstanceClassStorageRangeOutputWithContext(context.Context) GetInstanceClassesInstanceClassStorageRangeOutput
}

GetInstanceClassesInstanceClassStorageRangeInput is an input type that accepts GetInstanceClassesInstanceClassStorageRangeArgs and GetInstanceClassesInstanceClassStorageRangeOutput values. You can construct a concrete instance of `GetInstanceClassesInstanceClassStorageRangeInput` via:

GetInstanceClassesInstanceClassStorageRangeArgs{...}

type GetInstanceClassesInstanceClassStorageRangeOutput

type GetInstanceClassesInstanceClassStorageRangeOutput struct{ *pulumi.OutputState }

func (GetInstanceClassesInstanceClassStorageRangeOutput) ElementType

func (GetInstanceClassesInstanceClassStorageRangeOutput) Max

DB Instance available storage max value.

func (GetInstanceClassesInstanceClassStorageRangeOutput) Min

DB Instance available storage min value.

func (GetInstanceClassesInstanceClassStorageRangeOutput) Step

DB Instance available storage increase step.

func (GetInstanceClassesInstanceClassStorageRangeOutput) ToGetInstanceClassesInstanceClassStorageRangeOutput

func (o GetInstanceClassesInstanceClassStorageRangeOutput) ToGetInstanceClassesInstanceClassStorageRangeOutput() GetInstanceClassesInstanceClassStorageRangeOutput

func (GetInstanceClassesInstanceClassStorageRangeOutput) ToGetInstanceClassesInstanceClassStorageRangeOutputWithContext

func (o GetInstanceClassesInstanceClassStorageRangeOutput) ToGetInstanceClassesInstanceClassStorageRangeOutputWithContext(ctx context.Context) GetInstanceClassesInstanceClassStorageRangeOutput

type GetInstanceClassesInstanceClassZoneId

type GetInstanceClassesInstanceClassZoneId struct {
	// The Zone to launch the DB instance
	Id string `pulumi:"id"`
	// A list of sub zone ids which in the id - e.g If `id` is `cn-beijing-MAZ5(a,b)`, `subZoneIds` will be `["cn-beijing-a", "cn-beijing-b"]`.
	SubZoneIds []string `pulumi:"subZoneIds"`
}

type GetInstanceClassesInstanceClassZoneIdArgs

type GetInstanceClassesInstanceClassZoneIdArgs struct {
	// The Zone to launch the DB instance
	Id pulumi.StringInput `pulumi:"id"`
	// A list of sub zone ids which in the id - e.g If `id` is `cn-beijing-MAZ5(a,b)`, `subZoneIds` will be `["cn-beijing-a", "cn-beijing-b"]`.
	SubZoneIds pulumi.StringArrayInput `pulumi:"subZoneIds"`
}

func (GetInstanceClassesInstanceClassZoneIdArgs) ElementType

func (GetInstanceClassesInstanceClassZoneIdArgs) ToGetInstanceClassesInstanceClassZoneIdOutput

func (i GetInstanceClassesInstanceClassZoneIdArgs) ToGetInstanceClassesInstanceClassZoneIdOutput() GetInstanceClassesInstanceClassZoneIdOutput

func (GetInstanceClassesInstanceClassZoneIdArgs) ToGetInstanceClassesInstanceClassZoneIdOutputWithContext

func (i GetInstanceClassesInstanceClassZoneIdArgs) ToGetInstanceClassesInstanceClassZoneIdOutputWithContext(ctx context.Context) GetInstanceClassesInstanceClassZoneIdOutput

type GetInstanceClassesInstanceClassZoneIdArray

type GetInstanceClassesInstanceClassZoneIdArray []GetInstanceClassesInstanceClassZoneIdInput

func (GetInstanceClassesInstanceClassZoneIdArray) ElementType

func (GetInstanceClassesInstanceClassZoneIdArray) ToGetInstanceClassesInstanceClassZoneIdArrayOutput

func (i GetInstanceClassesInstanceClassZoneIdArray) ToGetInstanceClassesInstanceClassZoneIdArrayOutput() GetInstanceClassesInstanceClassZoneIdArrayOutput

func (GetInstanceClassesInstanceClassZoneIdArray) ToGetInstanceClassesInstanceClassZoneIdArrayOutputWithContext

func (i GetInstanceClassesInstanceClassZoneIdArray) ToGetInstanceClassesInstanceClassZoneIdArrayOutputWithContext(ctx context.Context) GetInstanceClassesInstanceClassZoneIdArrayOutput

type GetInstanceClassesInstanceClassZoneIdArrayInput

type GetInstanceClassesInstanceClassZoneIdArrayInput interface {
	pulumi.Input

	ToGetInstanceClassesInstanceClassZoneIdArrayOutput() GetInstanceClassesInstanceClassZoneIdArrayOutput
	ToGetInstanceClassesInstanceClassZoneIdArrayOutputWithContext(context.Context) GetInstanceClassesInstanceClassZoneIdArrayOutput
}

GetInstanceClassesInstanceClassZoneIdArrayInput is an input type that accepts GetInstanceClassesInstanceClassZoneIdArray and GetInstanceClassesInstanceClassZoneIdArrayOutput values. You can construct a concrete instance of `GetInstanceClassesInstanceClassZoneIdArrayInput` via:

GetInstanceClassesInstanceClassZoneIdArray{ GetInstanceClassesInstanceClassZoneIdArgs{...} }

type GetInstanceClassesInstanceClassZoneIdArrayOutput

type GetInstanceClassesInstanceClassZoneIdArrayOutput struct{ *pulumi.OutputState }

func (GetInstanceClassesInstanceClassZoneIdArrayOutput) ElementType

func (GetInstanceClassesInstanceClassZoneIdArrayOutput) Index

func (GetInstanceClassesInstanceClassZoneIdArrayOutput) ToGetInstanceClassesInstanceClassZoneIdArrayOutput

func (o GetInstanceClassesInstanceClassZoneIdArrayOutput) ToGetInstanceClassesInstanceClassZoneIdArrayOutput() GetInstanceClassesInstanceClassZoneIdArrayOutput

func (GetInstanceClassesInstanceClassZoneIdArrayOutput) ToGetInstanceClassesInstanceClassZoneIdArrayOutputWithContext

func (o GetInstanceClassesInstanceClassZoneIdArrayOutput) ToGetInstanceClassesInstanceClassZoneIdArrayOutputWithContext(ctx context.Context) GetInstanceClassesInstanceClassZoneIdArrayOutput

type GetInstanceClassesInstanceClassZoneIdInput

type GetInstanceClassesInstanceClassZoneIdInput interface {
	pulumi.Input

	ToGetInstanceClassesInstanceClassZoneIdOutput() GetInstanceClassesInstanceClassZoneIdOutput
	ToGetInstanceClassesInstanceClassZoneIdOutputWithContext(context.Context) GetInstanceClassesInstanceClassZoneIdOutput
}

GetInstanceClassesInstanceClassZoneIdInput is an input type that accepts GetInstanceClassesInstanceClassZoneIdArgs and GetInstanceClassesInstanceClassZoneIdOutput values. You can construct a concrete instance of `GetInstanceClassesInstanceClassZoneIdInput` via:

GetInstanceClassesInstanceClassZoneIdArgs{...}

type GetInstanceClassesInstanceClassZoneIdOutput

type GetInstanceClassesInstanceClassZoneIdOutput struct{ *pulumi.OutputState }

func (GetInstanceClassesInstanceClassZoneIdOutput) ElementType

func (GetInstanceClassesInstanceClassZoneIdOutput) Id

The Zone to launch the DB instance

func (GetInstanceClassesInstanceClassZoneIdOutput) SubZoneIds

A list of sub zone ids which in the id - e.g If `id` is `cn-beijing-MAZ5(a,b)`, `subZoneIds` will be `["cn-beijing-a", "cn-beijing-b"]`.

func (GetInstanceClassesInstanceClassZoneIdOutput) ToGetInstanceClassesInstanceClassZoneIdOutput

func (o GetInstanceClassesInstanceClassZoneIdOutput) ToGetInstanceClassesInstanceClassZoneIdOutput() GetInstanceClassesInstanceClassZoneIdOutput

func (GetInstanceClassesInstanceClassZoneIdOutput) ToGetInstanceClassesInstanceClassZoneIdOutputWithContext

func (o GetInstanceClassesInstanceClassZoneIdOutput) ToGetInstanceClassesInstanceClassZoneIdOutputWithContext(ctx context.Context) GetInstanceClassesInstanceClassZoneIdOutput

type GetInstanceClassesResult

type GetInstanceClassesResult struct {
	Category        *string `pulumi:"category"`
	DbInstanceClass *string `pulumi:"dbInstanceClass"`
	Engine          *string `pulumi:"engine"`
	EngineVersion   *string `pulumi:"engineVersion"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Available in 1.60.0+) A list of Rds instance class codes.
	Ids                []string `pulumi:"ids"`
	InstanceChargeType *string  `pulumi:"instanceChargeType"`
	// A list of Rds available resource. Each element contains the following attributes:
	InstanceClasses []GetInstanceClassesInstanceClass `pulumi:"instanceClasses"`
	MultiZone       *bool                             `pulumi:"multiZone"`
	OutputFile      *string                           `pulumi:"outputFile"`
	SortedBy        *string                           `pulumi:"sortedBy"`
	StorageType     *string                           `pulumi:"storageType"`
	ZoneId          *string                           `pulumi:"zoneId"`
}

A collection of values returned by getInstanceClasses.

func GetInstanceClasses

func GetInstanceClasses(ctx *pulumi.Context, args *GetInstanceClassesArgs, opts ...pulumi.InvokeOption) (*GetInstanceClassesResult, error)

This data source provides the RDS instance classes resource available info of Alibaba Cloud.

> **NOTE:** Available in v1.46.0+

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "MySQL"
		opt1 := "5.6"
		opt2 := "PostPaid"
		opt3 := "./classes.txt"
		resources, err := rds.GetInstanceClasses(ctx, &rds.GetInstanceClassesArgs{
			Engine:             &opt0,
			EngineVersion:      &opt1,
			InstanceChargeType: &opt2,
			OutputFile:         &opt3,
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("firstDbInstanceClass", resources.InstanceClasses[0].InstanceClass)
		return nil
	})
}

```

type GetInstanceEnginesArgs

type GetInstanceEnginesArgs struct {
	// Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL` and `PPAS`. If no value is specified, all types are returned.
	Engine *string `pulumi:"engine"`
	// Database version required by the user. Value options can refer to the latest docs [detail info](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.
	EngineVersion *string `pulumi:"engineVersion"`
	// Filter the results by charge type. Valid values: `PrePaid` and `PostPaid`. Default to `PostPaid`.
	InstanceChargeType *string `pulumi:"instanceChargeType"`
	// Whether to show multi available zone. Default false to not show multi availability zone.
	MultiZone  *bool   `pulumi:"multiZone"`
	OutputFile *string `pulumi:"outputFile"`
	// The Zone to launch the DB instance.
	ZoneId *string `pulumi:"zoneId"`
}

A collection of arguments for invoking getInstanceEngines.

type GetInstanceEnginesInstanceEngine

type GetInstanceEnginesInstanceEngine struct {
	// DB Instance category.
	Category string `pulumi:"category"`
	// Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL` and `PPAS`. If no value is specified, all types are returned.
	Engine string `pulumi:"engine"`
	// Database version required by the user. Value options can refer to the latest docs [detail info](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.
	EngineVersion string `pulumi:"engineVersion"`
	// A list of Zone to launch the DB instance.
	ZoneIds []GetInstanceEnginesInstanceEngineZoneId `pulumi:"zoneIds"`
}

type GetInstanceEnginesInstanceEngineArgs

type GetInstanceEnginesInstanceEngineArgs struct {
	// DB Instance category.
	Category pulumi.StringInput `pulumi:"category"`
	// Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL` and `PPAS`. If no value is specified, all types are returned.
	Engine pulumi.StringInput `pulumi:"engine"`
	// Database version required by the user. Value options can refer to the latest docs [detail info](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.
	EngineVersion pulumi.StringInput `pulumi:"engineVersion"`
	// A list of Zone to launch the DB instance.
	ZoneIds GetInstanceEnginesInstanceEngineZoneIdArrayInput `pulumi:"zoneIds"`
}

func (GetInstanceEnginesInstanceEngineArgs) ElementType

func (GetInstanceEnginesInstanceEngineArgs) ToGetInstanceEnginesInstanceEngineOutput

func (i GetInstanceEnginesInstanceEngineArgs) ToGetInstanceEnginesInstanceEngineOutput() GetInstanceEnginesInstanceEngineOutput

func (GetInstanceEnginesInstanceEngineArgs) ToGetInstanceEnginesInstanceEngineOutputWithContext

func (i GetInstanceEnginesInstanceEngineArgs) ToGetInstanceEnginesInstanceEngineOutputWithContext(ctx context.Context) GetInstanceEnginesInstanceEngineOutput

type GetInstanceEnginesInstanceEngineArray

type GetInstanceEnginesInstanceEngineArray []GetInstanceEnginesInstanceEngineInput

func (GetInstanceEnginesInstanceEngineArray) ElementType

func (GetInstanceEnginesInstanceEngineArray) ToGetInstanceEnginesInstanceEngineArrayOutput

func (i GetInstanceEnginesInstanceEngineArray) ToGetInstanceEnginesInstanceEngineArrayOutput() GetInstanceEnginesInstanceEngineArrayOutput

func (GetInstanceEnginesInstanceEngineArray) ToGetInstanceEnginesInstanceEngineArrayOutputWithContext

func (i GetInstanceEnginesInstanceEngineArray) ToGetInstanceEnginesInstanceEngineArrayOutputWithContext(ctx context.Context) GetInstanceEnginesInstanceEngineArrayOutput

type GetInstanceEnginesInstanceEngineArrayInput

type GetInstanceEnginesInstanceEngineArrayInput interface {
	pulumi.Input

	ToGetInstanceEnginesInstanceEngineArrayOutput() GetInstanceEnginesInstanceEngineArrayOutput
	ToGetInstanceEnginesInstanceEngineArrayOutputWithContext(context.Context) GetInstanceEnginesInstanceEngineArrayOutput
}

GetInstanceEnginesInstanceEngineArrayInput is an input type that accepts GetInstanceEnginesInstanceEngineArray and GetInstanceEnginesInstanceEngineArrayOutput values. You can construct a concrete instance of `GetInstanceEnginesInstanceEngineArrayInput` via:

GetInstanceEnginesInstanceEngineArray{ GetInstanceEnginesInstanceEngineArgs{...} }

type GetInstanceEnginesInstanceEngineArrayOutput

type GetInstanceEnginesInstanceEngineArrayOutput struct{ *pulumi.OutputState }

func (GetInstanceEnginesInstanceEngineArrayOutput) ElementType

func (GetInstanceEnginesInstanceEngineArrayOutput) Index

func (GetInstanceEnginesInstanceEngineArrayOutput) ToGetInstanceEnginesInstanceEngineArrayOutput

func (o GetInstanceEnginesInstanceEngineArrayOutput) ToGetInstanceEnginesInstanceEngineArrayOutput() GetInstanceEnginesInstanceEngineArrayOutput

func (GetInstanceEnginesInstanceEngineArrayOutput) ToGetInstanceEnginesInstanceEngineArrayOutputWithContext

func (o GetInstanceEnginesInstanceEngineArrayOutput) ToGetInstanceEnginesInstanceEngineArrayOutputWithContext(ctx context.Context) GetInstanceEnginesInstanceEngineArrayOutput

type GetInstanceEnginesInstanceEngineInput

type GetInstanceEnginesInstanceEngineInput interface {
	pulumi.Input

	ToGetInstanceEnginesInstanceEngineOutput() GetInstanceEnginesInstanceEngineOutput
	ToGetInstanceEnginesInstanceEngineOutputWithContext(context.Context) GetInstanceEnginesInstanceEngineOutput
}

GetInstanceEnginesInstanceEngineInput is an input type that accepts GetInstanceEnginesInstanceEngineArgs and GetInstanceEnginesInstanceEngineOutput values. You can construct a concrete instance of `GetInstanceEnginesInstanceEngineInput` via:

GetInstanceEnginesInstanceEngineArgs{...}

type GetInstanceEnginesInstanceEngineOutput

type GetInstanceEnginesInstanceEngineOutput struct{ *pulumi.OutputState }

func (GetInstanceEnginesInstanceEngineOutput) Category

DB Instance category.

func (GetInstanceEnginesInstanceEngineOutput) ElementType

func (GetInstanceEnginesInstanceEngineOutput) Engine

Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL` and `PPAS`. If no value is specified, all types are returned.

func (GetInstanceEnginesInstanceEngineOutput) EngineVersion

Database version required by the user. Value options can refer to the latest docs [detail info](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.

func (GetInstanceEnginesInstanceEngineOutput) ToGetInstanceEnginesInstanceEngineOutput

func (o GetInstanceEnginesInstanceEngineOutput) ToGetInstanceEnginesInstanceEngineOutput() GetInstanceEnginesInstanceEngineOutput

func (GetInstanceEnginesInstanceEngineOutput) ToGetInstanceEnginesInstanceEngineOutputWithContext

func (o GetInstanceEnginesInstanceEngineOutput) ToGetInstanceEnginesInstanceEngineOutputWithContext(ctx context.Context) GetInstanceEnginesInstanceEngineOutput

func (GetInstanceEnginesInstanceEngineOutput) ZoneIds

A list of Zone to launch the DB instance.

type GetInstanceEnginesInstanceEngineZoneId

type GetInstanceEnginesInstanceEngineZoneId struct {
	// The Zone to launch the DB instance
	Id string `pulumi:"id"`
	// A list of sub zone ids which in the id - e.g If `id` is `cn-beijing-MAZ5(a,b)`, `subZoneIds` will be `["cn-beijing-a", "cn-beijing-b"]`.
	SubZoneIds []string `pulumi:"subZoneIds"`
}

type GetInstanceEnginesInstanceEngineZoneIdArgs

type GetInstanceEnginesInstanceEngineZoneIdArgs struct {
	// The Zone to launch the DB instance
	Id pulumi.StringInput `pulumi:"id"`
	// A list of sub zone ids which in the id - e.g If `id` is `cn-beijing-MAZ5(a,b)`, `subZoneIds` will be `["cn-beijing-a", "cn-beijing-b"]`.
	SubZoneIds pulumi.StringArrayInput `pulumi:"subZoneIds"`
}

func (GetInstanceEnginesInstanceEngineZoneIdArgs) ElementType

func (GetInstanceEnginesInstanceEngineZoneIdArgs) ToGetInstanceEnginesInstanceEngineZoneIdOutput

func (i GetInstanceEnginesInstanceEngineZoneIdArgs) ToGetInstanceEnginesInstanceEngineZoneIdOutput() GetInstanceEnginesInstanceEngineZoneIdOutput

func (GetInstanceEnginesInstanceEngineZoneIdArgs) ToGetInstanceEnginesInstanceEngineZoneIdOutputWithContext

func (i GetInstanceEnginesInstanceEngineZoneIdArgs) ToGetInstanceEnginesInstanceEngineZoneIdOutputWithContext(ctx context.Context) GetInstanceEnginesInstanceEngineZoneIdOutput

type GetInstanceEnginesInstanceEngineZoneIdArray

type GetInstanceEnginesInstanceEngineZoneIdArray []GetInstanceEnginesInstanceEngineZoneIdInput

func (GetInstanceEnginesInstanceEngineZoneIdArray) ElementType

func (GetInstanceEnginesInstanceEngineZoneIdArray) ToGetInstanceEnginesInstanceEngineZoneIdArrayOutput

func (i GetInstanceEnginesInstanceEngineZoneIdArray) ToGetInstanceEnginesInstanceEngineZoneIdArrayOutput() GetInstanceEnginesInstanceEngineZoneIdArrayOutput

func (GetInstanceEnginesInstanceEngineZoneIdArray) ToGetInstanceEnginesInstanceEngineZoneIdArrayOutputWithContext

func (i GetInstanceEnginesInstanceEngineZoneIdArray) ToGetInstanceEnginesInstanceEngineZoneIdArrayOutputWithContext(ctx context.Context) GetInstanceEnginesInstanceEngineZoneIdArrayOutput

type GetInstanceEnginesInstanceEngineZoneIdArrayInput

type GetInstanceEnginesInstanceEngineZoneIdArrayInput interface {
	pulumi.Input

	ToGetInstanceEnginesInstanceEngineZoneIdArrayOutput() GetInstanceEnginesInstanceEngineZoneIdArrayOutput
	ToGetInstanceEnginesInstanceEngineZoneIdArrayOutputWithContext(context.Context) GetInstanceEnginesInstanceEngineZoneIdArrayOutput
}

GetInstanceEnginesInstanceEngineZoneIdArrayInput is an input type that accepts GetInstanceEnginesInstanceEngineZoneIdArray and GetInstanceEnginesInstanceEngineZoneIdArrayOutput values. You can construct a concrete instance of `GetInstanceEnginesInstanceEngineZoneIdArrayInput` via:

GetInstanceEnginesInstanceEngineZoneIdArray{ GetInstanceEnginesInstanceEngineZoneIdArgs{...} }

type GetInstanceEnginesInstanceEngineZoneIdArrayOutput

type GetInstanceEnginesInstanceEngineZoneIdArrayOutput struct{ *pulumi.OutputState }

func (GetInstanceEnginesInstanceEngineZoneIdArrayOutput) ElementType

func (GetInstanceEnginesInstanceEngineZoneIdArrayOutput) Index

func (GetInstanceEnginesInstanceEngineZoneIdArrayOutput) ToGetInstanceEnginesInstanceEngineZoneIdArrayOutput

func (o GetInstanceEnginesInstanceEngineZoneIdArrayOutput) ToGetInstanceEnginesInstanceEngineZoneIdArrayOutput() GetInstanceEnginesInstanceEngineZoneIdArrayOutput

func (GetInstanceEnginesInstanceEngineZoneIdArrayOutput) ToGetInstanceEnginesInstanceEngineZoneIdArrayOutputWithContext

func (o GetInstanceEnginesInstanceEngineZoneIdArrayOutput) ToGetInstanceEnginesInstanceEngineZoneIdArrayOutputWithContext(ctx context.Context) GetInstanceEnginesInstanceEngineZoneIdArrayOutput

type GetInstanceEnginesInstanceEngineZoneIdInput

type GetInstanceEnginesInstanceEngineZoneIdInput interface {
	pulumi.Input

	ToGetInstanceEnginesInstanceEngineZoneIdOutput() GetInstanceEnginesInstanceEngineZoneIdOutput
	ToGetInstanceEnginesInstanceEngineZoneIdOutputWithContext(context.Context) GetInstanceEnginesInstanceEngineZoneIdOutput
}

GetInstanceEnginesInstanceEngineZoneIdInput is an input type that accepts GetInstanceEnginesInstanceEngineZoneIdArgs and GetInstanceEnginesInstanceEngineZoneIdOutput values. You can construct a concrete instance of `GetInstanceEnginesInstanceEngineZoneIdInput` via:

GetInstanceEnginesInstanceEngineZoneIdArgs{...}

type GetInstanceEnginesInstanceEngineZoneIdOutput

type GetInstanceEnginesInstanceEngineZoneIdOutput struct{ *pulumi.OutputState }

func (GetInstanceEnginesInstanceEngineZoneIdOutput) ElementType

func (GetInstanceEnginesInstanceEngineZoneIdOutput) Id

The Zone to launch the DB instance

func (GetInstanceEnginesInstanceEngineZoneIdOutput) SubZoneIds

A list of sub zone ids which in the id - e.g If `id` is `cn-beijing-MAZ5(a,b)`, `subZoneIds` will be `["cn-beijing-a", "cn-beijing-b"]`.

func (GetInstanceEnginesInstanceEngineZoneIdOutput) ToGetInstanceEnginesInstanceEngineZoneIdOutput

func (o GetInstanceEnginesInstanceEngineZoneIdOutput) ToGetInstanceEnginesInstanceEngineZoneIdOutput() GetInstanceEnginesInstanceEngineZoneIdOutput

func (GetInstanceEnginesInstanceEngineZoneIdOutput) ToGetInstanceEnginesInstanceEngineZoneIdOutputWithContext

func (o GetInstanceEnginesInstanceEngineZoneIdOutput) ToGetInstanceEnginesInstanceEngineZoneIdOutputWithContext(ctx context.Context) GetInstanceEnginesInstanceEngineZoneIdOutput

type GetInstanceEnginesResult

type GetInstanceEnginesResult struct {
	// Database type.
	Engine *string `pulumi:"engine"`
	// DB Instance version.
	EngineVersion *string `pulumi:"engineVersion"`
	// The provider-assigned unique ID for this managed resource.
	Id                 string  `pulumi:"id"`
	InstanceChargeType *string `pulumi:"instanceChargeType"`
	// A list of Rds available resource. Each element contains the following attributes:
	InstanceEngines []GetInstanceEnginesInstanceEngine `pulumi:"instanceEngines"`
	MultiZone       *bool                              `pulumi:"multiZone"`
	OutputFile      *string                            `pulumi:"outputFile"`
	ZoneId          *string                            `pulumi:"zoneId"`
}

A collection of values returned by getInstanceEngines.

func GetInstanceEngines

func GetInstanceEngines(ctx *pulumi.Context, args *GetInstanceEnginesArgs, opts ...pulumi.InvokeOption) (*GetInstanceEnginesResult, error)

This data source provides the RDS instance engines resource available info of Alibaba Cloud.

> **NOTE:** Available in v1.46.0+

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "MySQL"
		opt1 := "5.6"
		opt2 := "PostPaid"
		opt3 := "./engines.txt"
		resources, err := rds.GetInstanceEngines(ctx, &rds.GetInstanceEnginesArgs{
			Engine:             &opt0,
			EngineVersion:      &opt1,
			InstanceChargeType: &opt2,
			OutputFile:         &opt3,
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("firstDbCategory", resources.InstanceEngines[0].Category)
		return nil
	})
}

```

type GetInstancesArgs

type GetInstancesArgs struct {
	// `Standard` for standard access mode and `Safe` for high security access mode.
	ConnectionMode *string `pulumi:"connectionMode"`
	// `Primary` for primary instance, `Readonly` for read-only instance, `Guard` for disaster recovery instance, and `Temp` for temporary instance.
	DbType *string `pulumi:"dbType"`
	// Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL` and `PPAS`. If no value is specified, all types are returned.
	Engine *string `pulumi:"engine"`
	// A list of RDS instance IDs.
	Ids []string `pulumi:"ids"`
	// A regex string to filter results by instance name.
	NameRegex  *string `pulumi:"nameRegex"`
	OutputFile *string `pulumi:"outputFile"`
	// Status of the instance.
	Status *string `pulumi:"status"`
	// A map of tags assigned to the DB instances.
	// Note: Before 1.60.0, the value's format is a `json` string which including `TagKey` and `TagValue`. `TagKey` cannot be null, and `TagValue` can be empty. Format example `"{\"key1\":\"value1\"}"`
	Tags map[string]interface{} `pulumi:"tags"`
	// Used to retrieve instances belong to specified VPC.
	VpcId *string `pulumi:"vpcId"`
	// Used to retrieve instances belong to specified `vswitch` resources.
	VswitchId *string `pulumi:"vswitchId"`
}

A collection of arguments for invoking getInstances.

type GetInstancesInstance

type GetInstancesInstance struct {
	// Availability zone.
	AvailabilityZone string `pulumi:"availabilityZone"`
	// Billing method. Value options: `Postpaid` for Pay-As-You-Go and `Prepaid` for subscription.
	ChargeType string `pulumi:"chargeType"`
	// `Standard` for standard access mode and `Safe` for high security access mode.
	ConnectionMode string `pulumi:"connectionMode"`
	// (Available in 1.70.3+) RDS database connection string.
	ConnectionString string `pulumi:"connectionString"`
	// Creation time of the instance.
	CreateTime string `pulumi:"createTime"`
	// (Available in 1.70.3+) The storage type of the instance.
	DbInstanceStorageType string `pulumi:"dbInstanceStorageType"`
	// `Primary` for primary instance, `Readonly` for read-only instance, `Guard` for disaster recovery instance, and `Temp` for temporary instance.
	DbType string `pulumi:"dbType"`
	// Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL` and `PPAS`. If no value is specified, all types are returned.
	Engine string `pulumi:"engine"`
	// Database version.
	EngineVersion string `pulumi:"engineVersion"`
	// Expiration time. Pay-As-You-Go instances never expire.
	ExpireTime string `pulumi:"expireTime"`
	// If a disaster recovery instance is attached to the current instance, the ID of the disaster recovery instance applies.
	GuardInstanceId string `pulumi:"guardInstanceId"`
	// The ID of the RDS instance.
	Id string `pulumi:"id"`
	// (Available in 1.70.3+) User-defined DB instance storage space.
	InstanceStorage int `pulumi:"instanceStorage"`
	// Sizing of the RDS instance.
	InstanceType string `pulumi:"instanceType"`
	// ID of the primary instance. If this parameter is not returned, the current instance is a primary instance.
	MasterInstanceId string `pulumi:"masterInstanceId"`
	// (Available in 1.101.0+) The master zone of the instance.
	MasterZone string `pulumi:"masterZone"`
	// The name of the RDS instance.
	Name string `pulumi:"name"`
	// `Internet` for public network or `Intranet` for private network.
	NetType string `pulumi:"netType"`
	// (Available in 1.70.3+) RDS database connection port.
	Port string `pulumi:"port"`
	// A list of IDs of read-only instances attached to the primary instance.
	ReadonlyInstanceIds []string `pulumi:"readonlyInstanceIds"`
	// Region ID the instance belongs to.
	RegionId string `pulumi:"regionId"`
	// Status of the instance.
	Status string `pulumi:"status"`
	// If a temporary instance is attached to the current instance, the ID of the temporary instance applies.
	TempInstanceId string `pulumi:"tempInstanceId"`
	// Used to retrieve instances belong to specified VPC.
	VpcId string `pulumi:"vpcId"`
	// Used to retrieve instances belong to specified `vswitch` resources.
	VswitchId string `pulumi:"vswitchId"`
	// (Available in 1.101.0+) The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.
	ZoneIdSlaveA string `pulumi:"zoneIdSlaveA"`
	// (Available in 1.101.0+) The region ID of the log instance if you create a log instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.
	ZoneIdSlaveB string `pulumi:"zoneIdSlaveB"`
}

type GetInstancesInstanceArgs

type GetInstancesInstanceArgs struct {
	// Availability zone.
	AvailabilityZone pulumi.StringInput `pulumi:"availabilityZone"`
	// Billing method. Value options: `Postpaid` for Pay-As-You-Go and `Prepaid` for subscription.
	ChargeType pulumi.StringInput `pulumi:"chargeType"`
	// `Standard` for standard access mode and `Safe` for high security access mode.
	ConnectionMode pulumi.StringInput `pulumi:"connectionMode"`
	// (Available in 1.70.3+) RDS database connection string.
	ConnectionString pulumi.StringInput `pulumi:"connectionString"`
	// Creation time of the instance.
	CreateTime pulumi.StringInput `pulumi:"createTime"`
	// (Available in 1.70.3+) The storage type of the instance.
	DbInstanceStorageType pulumi.StringInput `pulumi:"dbInstanceStorageType"`
	// `Primary` for primary instance, `Readonly` for read-only instance, `Guard` for disaster recovery instance, and `Temp` for temporary instance.
	DbType pulumi.StringInput `pulumi:"dbType"`
	// Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL` and `PPAS`. If no value is specified, all types are returned.
	Engine pulumi.StringInput `pulumi:"engine"`
	// Database version.
	EngineVersion pulumi.StringInput `pulumi:"engineVersion"`
	// Expiration time. Pay-As-You-Go instances never expire.
	ExpireTime pulumi.StringInput `pulumi:"expireTime"`
	// If a disaster recovery instance is attached to the current instance, the ID of the disaster recovery instance applies.
	GuardInstanceId pulumi.StringInput `pulumi:"guardInstanceId"`
	// The ID of the RDS instance.
	Id pulumi.StringInput `pulumi:"id"`
	// (Available in 1.70.3+) User-defined DB instance storage space.
	InstanceStorage pulumi.IntInput `pulumi:"instanceStorage"`
	// Sizing of the RDS instance.
	InstanceType pulumi.StringInput `pulumi:"instanceType"`
	// ID of the primary instance. If this parameter is not returned, the current instance is a primary instance.
	MasterInstanceId pulumi.StringInput `pulumi:"masterInstanceId"`
	// (Available in 1.101.0+) The master zone of the instance.
	MasterZone pulumi.StringInput `pulumi:"masterZone"`
	// The name of the RDS instance.
	Name pulumi.StringInput `pulumi:"name"`
	// `Internet` for public network or `Intranet` for private network.
	NetType pulumi.StringInput `pulumi:"netType"`
	// (Available in 1.70.3+) RDS database connection port.
	Port pulumi.StringInput `pulumi:"port"`
	// A list of IDs of read-only instances attached to the primary instance.
	ReadonlyInstanceIds pulumi.StringArrayInput `pulumi:"readonlyInstanceIds"`
	// Region ID the instance belongs to.
	RegionId pulumi.StringInput `pulumi:"regionId"`
	// Status of the instance.
	Status pulumi.StringInput `pulumi:"status"`
	// If a temporary instance is attached to the current instance, the ID of the temporary instance applies.
	TempInstanceId pulumi.StringInput `pulumi:"tempInstanceId"`
	// Used to retrieve instances belong to specified VPC.
	VpcId pulumi.StringInput `pulumi:"vpcId"`
	// Used to retrieve instances belong to specified `vswitch` resources.
	VswitchId pulumi.StringInput `pulumi:"vswitchId"`
	// (Available in 1.101.0+) The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.
	ZoneIdSlaveA pulumi.StringInput `pulumi:"zoneIdSlaveA"`
	// (Available in 1.101.0+) The region ID of the log instance if you create a log instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.
	ZoneIdSlaveB pulumi.StringInput `pulumi:"zoneIdSlaveB"`
}

func (GetInstancesInstanceArgs) ElementType

func (GetInstancesInstanceArgs) ElementType() reflect.Type

func (GetInstancesInstanceArgs) ToGetInstancesInstanceOutput

func (i GetInstancesInstanceArgs) ToGetInstancesInstanceOutput() GetInstancesInstanceOutput

func (GetInstancesInstanceArgs) ToGetInstancesInstanceOutputWithContext

func (i GetInstancesInstanceArgs) ToGetInstancesInstanceOutputWithContext(ctx context.Context) GetInstancesInstanceOutput

type GetInstancesInstanceArray

type GetInstancesInstanceArray []GetInstancesInstanceInput

func (GetInstancesInstanceArray) ElementType

func (GetInstancesInstanceArray) ElementType() reflect.Type

func (GetInstancesInstanceArray) ToGetInstancesInstanceArrayOutput

func (i GetInstancesInstanceArray) ToGetInstancesInstanceArrayOutput() GetInstancesInstanceArrayOutput

func (GetInstancesInstanceArray) ToGetInstancesInstanceArrayOutputWithContext

func (i GetInstancesInstanceArray) ToGetInstancesInstanceArrayOutputWithContext(ctx context.Context) GetInstancesInstanceArrayOutput

type GetInstancesInstanceArrayInput

type GetInstancesInstanceArrayInput interface {
	pulumi.Input

	ToGetInstancesInstanceArrayOutput() GetInstancesInstanceArrayOutput
	ToGetInstancesInstanceArrayOutputWithContext(context.Context) GetInstancesInstanceArrayOutput
}

GetInstancesInstanceArrayInput is an input type that accepts GetInstancesInstanceArray and GetInstancesInstanceArrayOutput values. You can construct a concrete instance of `GetInstancesInstanceArrayInput` via:

GetInstancesInstanceArray{ GetInstancesInstanceArgs{...} }

type GetInstancesInstanceArrayOutput

type GetInstancesInstanceArrayOutput struct{ *pulumi.OutputState }

func (GetInstancesInstanceArrayOutput) ElementType

func (GetInstancesInstanceArrayOutput) Index

func (GetInstancesInstanceArrayOutput) ToGetInstancesInstanceArrayOutput

func (o GetInstancesInstanceArrayOutput) ToGetInstancesInstanceArrayOutput() GetInstancesInstanceArrayOutput

func (GetInstancesInstanceArrayOutput) ToGetInstancesInstanceArrayOutputWithContext

func (o GetInstancesInstanceArrayOutput) ToGetInstancesInstanceArrayOutputWithContext(ctx context.Context) GetInstancesInstanceArrayOutput

type GetInstancesInstanceInput

type GetInstancesInstanceInput interface {
	pulumi.Input

	ToGetInstancesInstanceOutput() GetInstancesInstanceOutput
	ToGetInstancesInstanceOutputWithContext(context.Context) GetInstancesInstanceOutput
}

GetInstancesInstanceInput is an input type that accepts GetInstancesInstanceArgs and GetInstancesInstanceOutput values. You can construct a concrete instance of `GetInstancesInstanceInput` via:

GetInstancesInstanceArgs{...}

type GetInstancesInstanceOutput

type GetInstancesInstanceOutput struct{ *pulumi.OutputState }

func (GetInstancesInstanceOutput) AvailabilityZone

func (o GetInstancesInstanceOutput) AvailabilityZone() pulumi.StringOutput

Availability zone.

func (GetInstancesInstanceOutput) ChargeType

Billing method. Value options: `Postpaid` for Pay-As-You-Go and `Prepaid` for subscription.

func (GetInstancesInstanceOutput) ConnectionMode

func (o GetInstancesInstanceOutput) ConnectionMode() pulumi.StringOutput

`Standard` for standard access mode and `Safe` for high security access mode.

func (GetInstancesInstanceOutput) ConnectionString

func (o GetInstancesInstanceOutput) ConnectionString() pulumi.StringOutput

(Available in 1.70.3+) RDS database connection string.

func (GetInstancesInstanceOutput) CreateTime

Creation time of the instance.

func (GetInstancesInstanceOutput) DbInstanceStorageType

func (o GetInstancesInstanceOutput) DbInstanceStorageType() pulumi.StringOutput

(Available in 1.70.3+) The storage type of the instance.

func (GetInstancesInstanceOutput) DbType

`Primary` for primary instance, `Readonly` for read-only instance, `Guard` for disaster recovery instance, and `Temp` for temporary instance.

func (GetInstancesInstanceOutput) ElementType

func (GetInstancesInstanceOutput) ElementType() reflect.Type

func (GetInstancesInstanceOutput) Engine

Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL` and `PPAS`. If no value is specified, all types are returned.

func (GetInstancesInstanceOutput) EngineVersion

Database version.

func (GetInstancesInstanceOutput) ExpireTime

Expiration time. Pay-As-You-Go instances never expire.

func (GetInstancesInstanceOutput) GuardInstanceId

func (o GetInstancesInstanceOutput) GuardInstanceId() pulumi.StringOutput

If a disaster recovery instance is attached to the current instance, the ID of the disaster recovery instance applies.

func (GetInstancesInstanceOutput) Id

The ID of the RDS instance.

func (GetInstancesInstanceOutput) InstanceStorage

func (o GetInstancesInstanceOutput) InstanceStorage() pulumi.IntOutput

(Available in 1.70.3+) User-defined DB instance storage space.

func (GetInstancesInstanceOutput) InstanceType

Sizing of the RDS instance.

func (GetInstancesInstanceOutput) MasterInstanceId

func (o GetInstancesInstanceOutput) MasterInstanceId() pulumi.StringOutput

ID of the primary instance. If this parameter is not returned, the current instance is a primary instance.

func (GetInstancesInstanceOutput) MasterZone added in v2.22.0

(Available in 1.101.0+) The master zone of the instance.

func (GetInstancesInstanceOutput) Name

The name of the RDS instance.

func (GetInstancesInstanceOutput) NetType

`Internet` for public network or `Intranet` for private network.

func (GetInstancesInstanceOutput) Port

(Available in 1.70.3+) RDS database connection port.

func (GetInstancesInstanceOutput) ReadonlyInstanceIds

func (o GetInstancesInstanceOutput) ReadonlyInstanceIds() pulumi.StringArrayOutput

A list of IDs of read-only instances attached to the primary instance.

func (GetInstancesInstanceOutput) RegionId

Region ID the instance belongs to.

func (GetInstancesInstanceOutput) Status

Status of the instance.

func (GetInstancesInstanceOutput) TempInstanceId

func (o GetInstancesInstanceOutput) TempInstanceId() pulumi.StringOutput

If a temporary instance is attached to the current instance, the ID of the temporary instance applies.

func (GetInstancesInstanceOutput) ToGetInstancesInstanceOutput

func (o GetInstancesInstanceOutput) ToGetInstancesInstanceOutput() GetInstancesInstanceOutput

func (GetInstancesInstanceOutput) ToGetInstancesInstanceOutputWithContext

func (o GetInstancesInstanceOutput) ToGetInstancesInstanceOutputWithContext(ctx context.Context) GetInstancesInstanceOutput

func (GetInstancesInstanceOutput) VpcId

Used to retrieve instances belong to specified VPC.

func (GetInstancesInstanceOutput) VswitchId

Used to retrieve instances belong to specified `vswitch` resources.

func (GetInstancesInstanceOutput) ZoneIdSlaveA added in v2.22.0

(Available in 1.101.0+) The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.

func (GetInstancesInstanceOutput) ZoneIdSlaveB added in v2.22.0

(Available in 1.101.0+) The region ID of the log instance if you create a log instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.

type GetInstancesResult

type GetInstancesResult struct {
	// `Standard` for standard access mode and `Safe` for high security access mode.
	ConnectionMode *string `pulumi:"connectionMode"`
	// `Primary` for primary instance, `Readonly` for read-only instance, `Guard` for disaster recovery instance, and `Temp` for temporary instance.
	DbType *string `pulumi:"dbType"`
	// Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL` and `PPAS`. If no value is specified, all types are returned.
	Engine *string `pulumi:"engine"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// A list of RDS instance IDs.
	Ids []string `pulumi:"ids"`
	// A list of RDS instances. Each element contains the following attributes:
	Instances []GetInstancesInstance `pulumi:"instances"`
	NameRegex *string                `pulumi:"nameRegex"`
	// A list of RDS instance names.
	Names      []string `pulumi:"names"`
	OutputFile *string  `pulumi:"outputFile"`
	// Status of the instance.
	Status *string                `pulumi:"status"`
	Tags   map[string]interface{} `pulumi:"tags"`
	// ID of the VPC the instance belongs to.
	VpcId *string `pulumi:"vpcId"`
	// ID of the VSwitch the instance belongs to.
	VswitchId *string `pulumi:"vswitchId"`
}

A collection of values returned by getInstances.

func GetInstances

func GetInstances(ctx *pulumi.Context, args *GetInstancesArgs, opts ...pulumi.InvokeOption) (*GetInstancesResult, error)

The `rds.getInstances` data source provides a collection of RDS instances available in Alibaba Cloud account. Filters support regular expression for the instance name, searches by tags, and other filters which are listed below.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "data-\\d+"
		opt1 := "Running"
		dbInstancesDs, err := rds.GetInstances(ctx, &rds.GetInstancesArgs{
			NameRegex: &opt0,
			Status:    &opt1,
			Tags: map[string]interface{}{
				"size": "tiny",
				"type": "database",
			},
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("firstDbInstanceId", dbInstancesDs.Instances[0].Id)
		return nil
	})
}

```

type GetZonesArgs

type GetZonesArgs struct {
	// Filter the results by a specific instance charge type. Valid values: `PrePaid` and `PostPaid`. Default to `PostPaid`.
	InstanceChargeType *string `pulumi:"instanceChargeType"`
	// Indicate whether the zones can be used in a multi AZ configuration. Default to `false`. Multi AZ is usually used to launch RDS instances.
	Multi      *bool   `pulumi:"multi"`
	OutputFile *string `pulumi:"outputFile"`
}

A collection of arguments for invoking getZones.

type GetZonesResult

type GetZonesResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// A list of zone IDs.
	Ids                []string `pulumi:"ids"`
	InstanceChargeType *string  `pulumi:"instanceChargeType"`
	Multi              *bool    `pulumi:"multi"`
	OutputFile         *string  `pulumi:"outputFile"`
	// A list of availability zones. Each element contains the following attributes:
	Zones []GetZonesZone `pulumi:"zones"`
}

A collection of values returned by getZones.

func GetZones

func GetZones(ctx *pulumi.Context, args *GetZonesArgs, opts ...pulumi.InvokeOption) (*GetZonesResult, error)

This data source provides availability zones for RDS that can be accessed by an Alibaba Cloud account within the region configured in the provider.

> **NOTE:** Available in v1.73.0+.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		zonesIds, err := rds.GetZones(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = rds.NewInstance(ctx, "db", &rds.InstanceArgs{
			ZoneId: rds.GetZonesZone(zonesIds.Zones[0]),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetZonesZone

type GetZonesZone struct {
	// ID of the zone.
	Id string `pulumi:"id"`
	// A list of zone ids in which the multi zone.
	MultiZoneIds []string `pulumi:"multiZoneIds"`
}

type GetZonesZoneArgs

type GetZonesZoneArgs struct {
	// ID of the zone.
	Id pulumi.StringInput `pulumi:"id"`
	// A list of zone ids in which the multi zone.
	MultiZoneIds pulumi.StringArrayInput `pulumi:"multiZoneIds"`
}

func (GetZonesZoneArgs) ElementType

func (GetZonesZoneArgs) ElementType() reflect.Type

func (GetZonesZoneArgs) ToGetZonesZoneOutput

func (i GetZonesZoneArgs) ToGetZonesZoneOutput() GetZonesZoneOutput

func (GetZonesZoneArgs) ToGetZonesZoneOutputWithContext

func (i GetZonesZoneArgs) ToGetZonesZoneOutputWithContext(ctx context.Context) GetZonesZoneOutput

type GetZonesZoneArray

type GetZonesZoneArray []GetZonesZoneInput

func (GetZonesZoneArray) ElementType

func (GetZonesZoneArray) ElementType() reflect.Type

func (GetZonesZoneArray) ToGetZonesZoneArrayOutput

func (i GetZonesZoneArray) ToGetZonesZoneArrayOutput() GetZonesZoneArrayOutput

func (GetZonesZoneArray) ToGetZonesZoneArrayOutputWithContext

func (i GetZonesZoneArray) ToGetZonesZoneArrayOutputWithContext(ctx context.Context) GetZonesZoneArrayOutput

type GetZonesZoneArrayInput

type GetZonesZoneArrayInput interface {
	pulumi.Input

	ToGetZonesZoneArrayOutput() GetZonesZoneArrayOutput
	ToGetZonesZoneArrayOutputWithContext(context.Context) GetZonesZoneArrayOutput
}

GetZonesZoneArrayInput is an input type that accepts GetZonesZoneArray and GetZonesZoneArrayOutput values. You can construct a concrete instance of `GetZonesZoneArrayInput` via:

GetZonesZoneArray{ GetZonesZoneArgs{...} }

type GetZonesZoneArrayOutput

type GetZonesZoneArrayOutput struct{ *pulumi.OutputState }

func (GetZonesZoneArrayOutput) ElementType

func (GetZonesZoneArrayOutput) ElementType() reflect.Type

func (GetZonesZoneArrayOutput) Index

func (GetZonesZoneArrayOutput) ToGetZonesZoneArrayOutput

func (o GetZonesZoneArrayOutput) ToGetZonesZoneArrayOutput() GetZonesZoneArrayOutput

func (GetZonesZoneArrayOutput) ToGetZonesZoneArrayOutputWithContext

func (o GetZonesZoneArrayOutput) ToGetZonesZoneArrayOutputWithContext(ctx context.Context) GetZonesZoneArrayOutput

type GetZonesZoneInput

type GetZonesZoneInput interface {
	pulumi.Input

	ToGetZonesZoneOutput() GetZonesZoneOutput
	ToGetZonesZoneOutputWithContext(context.Context) GetZonesZoneOutput
}

GetZonesZoneInput is an input type that accepts GetZonesZoneArgs and GetZonesZoneOutput values. You can construct a concrete instance of `GetZonesZoneInput` via:

GetZonesZoneArgs{...}

type GetZonesZoneOutput

type GetZonesZoneOutput struct{ *pulumi.OutputState }

func (GetZonesZoneOutput) ElementType

func (GetZonesZoneOutput) ElementType() reflect.Type

func (GetZonesZoneOutput) Id

ID of the zone.

func (GetZonesZoneOutput) MultiZoneIds

func (o GetZonesZoneOutput) MultiZoneIds() pulumi.StringArrayOutput

A list of zone ids in which the multi zone.

func (GetZonesZoneOutput) ToGetZonesZoneOutput

func (o GetZonesZoneOutput) ToGetZonesZoneOutput() GetZonesZoneOutput

func (GetZonesZoneOutput) ToGetZonesZoneOutputWithContext

func (o GetZonesZoneOutput) ToGetZonesZoneOutputWithContext(ctx context.Context) GetZonesZoneOutput

type Instance

type Instance struct {
	pulumi.CustomResourceState

	// Whether to renewal a DB instance automatically or not. It is valid when instanceChargeType is `PrePaid`. Default to `false`.
	AutoRenew pulumi.BoolPtrOutput `pulumi:"autoRenew"`
	// Auto-renewal period of an instance, in the unit of the month. It is valid when instanceChargeType is `PrePaid`. Valid value:[1~12], Default to 1.
	AutoRenewPeriod pulumi.IntPtrOutput `pulumi:"autoRenewPeriod"`
	// The upgrade method to use. Valid values:
	// - Auto: Instances are automatically upgraded to a higher minor version.
	// - Manual: Instances are forcibly upgraded to a higher minor version when the current version is unpublished.
	AutoUpgradeMinorVersion pulumi.StringOutput `pulumi:"autoUpgradeMinorVersion"`
	// RDS database connection string.
	ConnectionString pulumi.StringOutput `pulumi:"connectionString"`
	// The storage type of the instance. Valid values:
	// - local_ssd: specifies to use local SSDs. This value is recommended.
	// - cloud_ssd: specifies to use standard SSDs.
	// - cloud_essd: specifies to use enhanced SSDs (ESSDs).
	// - cloud_essd2: specifies to use enhanced SSDs (ESSDs).
	// - cloud_essd3: specifies to use enhanced SSDs (ESSDs).
	DbInstanceStorageType pulumi.StringOutput `pulumi:"dbInstanceStorageType"`
	// Database type. Value options: MySQL, SQLServer, PostgreSQL, and PPAS.
	Engine pulumi.StringOutput `pulumi:"engine"`
	// Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.
	EngineVersion pulumi.StringOutput `pulumi:"engineVersion"`
	// Set it to true to make some parameter efficient when modifying them. Default to false.
	ForceRestart pulumi.BoolPtrOutput `pulumi:"forceRestart"`
	// Valid values are `Prepaid`, `Postpaid`, Default to `Postpaid`. Currently, the resource only supports PostPaid to PrePaid.
	InstanceChargeType pulumi.StringPtrOutput `pulumi:"instanceChargeType"`
	// The name of DB instance. It a string of 2 to 256 characters.
	InstanceName pulumi.StringPtrOutput `pulumi:"instanceName"`
	// User-defined DB instance storage space. Value range:
	// - [5, 2000] for MySQL/PostgreSQL/PPAS HA dual node edition;
	// - [20,1000] for MySQL 5.7 basic single node edition;
	// - [10, 2000] for SQL Server 2008R2;
	// - [20,2000] for SQL Server 2012 basic single node edition
	//   Increase progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	//   Note: There is extra 5 GB storage for SQL Server Instance and it is not in specified `instanceStorage`.
	InstanceStorage pulumi.IntOutput `pulumi:"instanceStorage"`
	// DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	InstanceType pulumi.StringOutput `pulumi:"instanceType"`
	// Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)
	MaintainTime pulumi.StringOutput `pulumi:"maintainTime"`
	// The monitoring frequency in seconds. Valid values are 5, 60, 300. Defaults to 300.
	MonitoringPeriod pulumi.IntOutput `pulumi:"monitoringPeriod"`
	// Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm) .
	Parameters InstanceParameterArrayOutput `pulumi:"parameters"`
	// The duration that you will buy DB instance (in month). It is valid when instanceChargeType is `PrePaid`. Valid values: [1~9], 12, 24, 36. Default to 1.
	Period pulumi.IntPtrOutput `pulumi:"period"`
	// RDS database connection port.
	Port pulumi.StringOutput `pulumi:"port"`
	// The ID of resource group which the DB instance belongs.
	ResourceGroupId pulumi.StringOutput `pulumi:"resourceGroupId"`
	// It has been deprecated from 1.69.0 and use `securityGroupIds` instead.
	//
	// Deprecated: Attribute `security_group_id` has been deprecated from 1.69.0 and use `security_group_ids` instead.
	SecurityGroupId pulumi.StringOutput `pulumi:"securityGroupId"`
	// , Available in 1.69.0+) The list IDs to join ECS Security Group. At most supports three security groups.
	SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"`
	// Valid values are `normal`, `safety`, Default to `normal`. support `safety` switch to high security access mode
	SecurityIpMode pulumi.StringPtrOutput `pulumi:"securityIpMode"`
	// List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).
	SecurityIps pulumi.StringArrayOutput `pulumi:"securityIps"`
	// The sql collector keep time of the instance. Valid values are `30`, `180`, `365`, `1095`, `1825`, Default to `30`.
	SqlCollectorConfigValue pulumi.IntPtrOutput `pulumi:"sqlCollectorConfigValue"`
	// The sql collector status of the instance. Valid values are `Enabled`, `Disabled`, Default to `Disabled`.
	SqlCollectorStatus pulumi.StringOutput `pulumi:"sqlCollectorStatus"`
	// Actions performed on SSL functions, Valid values: `Open`: turn on SSL encryption; `Close`: turn off SSL encryption; `Update`: update SSL certificate. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26254.htm).
	SslAction pulumi.StringOutput `pulumi:"sslAction"`
	// Status of the SSL feature. `Yes`: SSL is turned on; `No`: SSL is turned off.
	SslStatus pulumi.StringOutput `pulumi:"sslStatus"`
	// A mapping of tags to assign to the resource.
	// - Key: It can be up to 64 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It cannot be a null string.
	// - Value: It can be up to 128 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It can be a null string.
	Tags pulumi.MapOutput `pulumi:"tags"`
	// The TDE(Transparent Data Encryption) status. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26256.htm).
	TdeStatus pulumi.StringPtrOutput `pulumi:"tdeStatus"`
	// The virtual switch ID to launch DB instances in one VPC. If there are multiple vswitches, separate them with commas.
	VswitchId pulumi.StringPtrOutput `pulumi:"vswitchId"`
	// The Zone to launch the DB instance. From version 1.8.1, it supports multiple zone.
	// If it is a multi-zone and `vswitchId` is specified, the vswitch must in the one of them.
	// The multiple zone ID can be retrieved by setting `multi` to "true" in the data source `getZones`.
	ZoneId pulumi.StringOutput `pulumi:"zoneId"`
	// The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.
	ZoneIdSlaveA pulumi.StringPtrOutput `pulumi:"zoneIdSlaveA"`
	// The region ID of the log instance if you create a log instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.
	ZoneIdSlaveB pulumi.StringPtrOutput `pulumi:"zoneIdSlaveB"`
}

Provides an RDS instance resource. A DB instance is an isolated database environment in the cloud. A DB instance can contain multiple user-created databases.

For information about RDS and how to use it, see [What is ApsaraDB for RDS](https://www.alibabacloud.com/help/en/doc-detail/26092.htm).

## Example Usage ### Create a RDS MySQL instance

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		name := "tf-testaccdbinstance"
		if param := cfg.Get("name"); param != "" {
			name = param
		}
		creation := "Rds"
		if param := cfg.Get("creation"); param != "" {
			creation = param
		}
		opt0 := creation
		exampleZones, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
			AvailableResourceCreation: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		exampleNetwork, err := vpc.NewNetwork(ctx, "exampleNetwork", &vpc.NetworkArgs{
			CidrBlock: pulumi.String("172.16.0.0/16"),
		})
		if err != nil {
			return err
		}
		exampleSwitch, err := vpc.NewSwitch(ctx, "exampleSwitch", &vpc.SwitchArgs{
			VpcId:            exampleNetwork.ID(),
			CidrBlock:        pulumi.String("172.16.0.0/24"),
			AvailabilityZone: pulumi.String(exampleZones.Zones[0].Id),
		})
		if err != nil {
			return err
		}
		_, err = rds.NewInstance(ctx, "exampleInstance", &rds.InstanceArgs{
			Engine:             pulumi.String("MySQL"),
			EngineVersion:      pulumi.String("5.6"),
			InstanceType:       pulumi.String("rds.mysql.s2.large"),
			InstanceStorage:    pulumi.Int(30),
			InstanceChargeType: pulumi.String("Postpaid"),
			InstanceName:       pulumi.String(name),
			VswitchId:          exampleSwitch.ID(),
			MonitoringPeriod:   pulumi.Int(60),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

RDS instance can be imported using the id, e.g.

```sh

$ pulumi import alicloud:rds/instance:Instance example rm-abc12345678

```

func GetInstance

func GetInstance(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *InstanceState, opts ...pulumi.ResourceOption) (*Instance, error)

GetInstance gets an existing Instance resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewInstance

func NewInstance(ctx *pulumi.Context,
	name string, args *InstanceArgs, opts ...pulumi.ResourceOption) (*Instance, error)

NewInstance registers a new resource with the given unique name, arguments, and options.

func (Instance) ElementType added in v2.25.1

func (Instance) ElementType() reflect.Type

func (Instance) ToInstanceOutput added in v2.25.1

func (i Instance) ToInstanceOutput() InstanceOutput

func (Instance) ToInstanceOutputWithContext added in v2.25.1

func (i Instance) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput

type InstanceArgs

type InstanceArgs struct {
	// Whether to renewal a DB instance automatically or not. It is valid when instanceChargeType is `PrePaid`. Default to `false`.
	AutoRenew pulumi.BoolPtrInput
	// Auto-renewal period of an instance, in the unit of the month. It is valid when instanceChargeType is `PrePaid`. Valid value:[1~12], Default to 1.
	AutoRenewPeriod pulumi.IntPtrInput
	// The upgrade method to use. Valid values:
	// - Auto: Instances are automatically upgraded to a higher minor version.
	// - Manual: Instances are forcibly upgraded to a higher minor version when the current version is unpublished.
	AutoUpgradeMinorVersion pulumi.StringPtrInput
	// The storage type of the instance. Valid values:
	// - local_ssd: specifies to use local SSDs. This value is recommended.
	// - cloud_ssd: specifies to use standard SSDs.
	// - cloud_essd: specifies to use enhanced SSDs (ESSDs).
	// - cloud_essd2: specifies to use enhanced SSDs (ESSDs).
	// - cloud_essd3: specifies to use enhanced SSDs (ESSDs).
	DbInstanceStorageType pulumi.StringPtrInput
	// Database type. Value options: MySQL, SQLServer, PostgreSQL, and PPAS.
	Engine pulumi.StringInput
	// Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.
	EngineVersion pulumi.StringInput
	// Set it to true to make some parameter efficient when modifying them. Default to false.
	ForceRestart pulumi.BoolPtrInput
	// Valid values are `Prepaid`, `Postpaid`, Default to `Postpaid`. Currently, the resource only supports PostPaid to PrePaid.
	InstanceChargeType pulumi.StringPtrInput
	// The name of DB instance. It a string of 2 to 256 characters.
	InstanceName pulumi.StringPtrInput
	// User-defined DB instance storage space. Value range:
	// - [5, 2000] for MySQL/PostgreSQL/PPAS HA dual node edition;
	// - [20,1000] for MySQL 5.7 basic single node edition;
	// - [10, 2000] for SQL Server 2008R2;
	// - [20,2000] for SQL Server 2012 basic single node edition
	//   Increase progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	//   Note: There is extra 5 GB storage for SQL Server Instance and it is not in specified `instanceStorage`.
	InstanceStorage pulumi.IntInput
	// DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	InstanceType pulumi.StringInput
	// Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)
	MaintainTime pulumi.StringPtrInput
	// The monitoring frequency in seconds. Valid values are 5, 60, 300. Defaults to 300.
	MonitoringPeriod pulumi.IntPtrInput
	// Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm) .
	Parameters InstanceParameterArrayInput
	// The duration that you will buy DB instance (in month). It is valid when instanceChargeType is `PrePaid`. Valid values: [1~9], 12, 24, 36. Default to 1.
	Period pulumi.IntPtrInput
	// The ID of resource group which the DB instance belongs.
	ResourceGroupId pulumi.StringPtrInput
	// It has been deprecated from 1.69.0 and use `securityGroupIds` instead.
	//
	// Deprecated: Attribute `security_group_id` has been deprecated from 1.69.0 and use `security_group_ids` instead.
	SecurityGroupId pulumi.StringPtrInput
	// , Available in 1.69.0+) The list IDs to join ECS Security Group. At most supports three security groups.
	SecurityGroupIds pulumi.StringArrayInput
	// Valid values are `normal`, `safety`, Default to `normal`. support `safety` switch to high security access mode
	SecurityIpMode pulumi.StringPtrInput
	// List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).
	SecurityIps pulumi.StringArrayInput
	// The sql collector keep time of the instance. Valid values are `30`, `180`, `365`, `1095`, `1825`, Default to `30`.
	SqlCollectorConfigValue pulumi.IntPtrInput
	// The sql collector status of the instance. Valid values are `Enabled`, `Disabled`, Default to `Disabled`.
	SqlCollectorStatus pulumi.StringPtrInput
	// Actions performed on SSL functions, Valid values: `Open`: turn on SSL encryption; `Close`: turn off SSL encryption; `Update`: update SSL certificate. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26254.htm).
	SslAction pulumi.StringPtrInput
	// A mapping of tags to assign to the resource.
	// - Key: It can be up to 64 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It cannot be a null string.
	// - Value: It can be up to 128 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It can be a null string.
	Tags pulumi.MapInput
	// The TDE(Transparent Data Encryption) status. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26256.htm).
	TdeStatus pulumi.StringPtrInput
	// The virtual switch ID to launch DB instances in one VPC. If there are multiple vswitches, separate them with commas.
	VswitchId pulumi.StringPtrInput
	// The Zone to launch the DB instance. From version 1.8.1, it supports multiple zone.
	// If it is a multi-zone and `vswitchId` is specified, the vswitch must in the one of them.
	// The multiple zone ID can be retrieved by setting `multi` to "true" in the data source `getZones`.
	ZoneId pulumi.StringPtrInput
	// The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.
	ZoneIdSlaveA pulumi.StringPtrInput
	// The region ID of the log instance if you create a log instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.
	ZoneIdSlaveB pulumi.StringPtrInput
}

The set of arguments for constructing a Instance resource.

func (InstanceArgs) ElementType

func (InstanceArgs) ElementType() reflect.Type

type InstanceInput added in v2.25.1

type InstanceInput interface {
	pulumi.Input

	ToInstanceOutput() InstanceOutput
	ToInstanceOutputWithContext(ctx context.Context) InstanceOutput
}

type InstanceOutput added in v2.25.1

type InstanceOutput struct {
	*pulumi.OutputState
}

func (InstanceOutput) ElementType added in v2.25.1

func (InstanceOutput) ElementType() reflect.Type

func (InstanceOutput) ToInstanceOutput added in v2.25.1

func (o InstanceOutput) ToInstanceOutput() InstanceOutput

func (InstanceOutput) ToInstanceOutputWithContext added in v2.25.1

func (o InstanceOutput) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput

type InstanceParameter

type InstanceParameter struct {
	Name  string `pulumi:"name"`
	Value string `pulumi:"value"`
}

type InstanceParameterArgs

type InstanceParameterArgs struct {
	Name  pulumi.StringInput `pulumi:"name"`
	Value pulumi.StringInput `pulumi:"value"`
}

func (InstanceParameterArgs) ElementType

func (InstanceParameterArgs) ElementType() reflect.Type

func (InstanceParameterArgs) ToInstanceParameterOutput

func (i InstanceParameterArgs) ToInstanceParameterOutput() InstanceParameterOutput

func (InstanceParameterArgs) ToInstanceParameterOutputWithContext

func (i InstanceParameterArgs) ToInstanceParameterOutputWithContext(ctx context.Context) InstanceParameterOutput

type InstanceParameterArray

type InstanceParameterArray []InstanceParameterInput

func (InstanceParameterArray) ElementType

func (InstanceParameterArray) ElementType() reflect.Type

func (InstanceParameterArray) ToInstanceParameterArrayOutput

func (i InstanceParameterArray) ToInstanceParameterArrayOutput() InstanceParameterArrayOutput

func (InstanceParameterArray) ToInstanceParameterArrayOutputWithContext

func (i InstanceParameterArray) ToInstanceParameterArrayOutputWithContext(ctx context.Context) InstanceParameterArrayOutput

type InstanceParameterArrayInput

type InstanceParameterArrayInput interface {
	pulumi.Input

	ToInstanceParameterArrayOutput() InstanceParameterArrayOutput
	ToInstanceParameterArrayOutputWithContext(context.Context) InstanceParameterArrayOutput
}

InstanceParameterArrayInput is an input type that accepts InstanceParameterArray and InstanceParameterArrayOutput values. You can construct a concrete instance of `InstanceParameterArrayInput` via:

InstanceParameterArray{ InstanceParameterArgs{...} }

type InstanceParameterArrayOutput

type InstanceParameterArrayOutput struct{ *pulumi.OutputState }

func (InstanceParameterArrayOutput) ElementType

func (InstanceParameterArrayOutput) Index

func (InstanceParameterArrayOutput) ToInstanceParameterArrayOutput

func (o InstanceParameterArrayOutput) ToInstanceParameterArrayOutput() InstanceParameterArrayOutput

func (InstanceParameterArrayOutput) ToInstanceParameterArrayOutputWithContext

func (o InstanceParameterArrayOutput) ToInstanceParameterArrayOutputWithContext(ctx context.Context) InstanceParameterArrayOutput

type InstanceParameterInput

type InstanceParameterInput interface {
	pulumi.Input

	ToInstanceParameterOutput() InstanceParameterOutput
	ToInstanceParameterOutputWithContext(context.Context) InstanceParameterOutput
}

InstanceParameterInput is an input type that accepts InstanceParameterArgs and InstanceParameterOutput values. You can construct a concrete instance of `InstanceParameterInput` via:

InstanceParameterArgs{...}

type InstanceParameterOutput

type InstanceParameterOutput struct{ *pulumi.OutputState }

func (InstanceParameterOutput) ElementType

func (InstanceParameterOutput) ElementType() reflect.Type

func (InstanceParameterOutput) Name

func (InstanceParameterOutput) ToInstanceParameterOutput

func (o InstanceParameterOutput) ToInstanceParameterOutput() InstanceParameterOutput

func (InstanceParameterOutput) ToInstanceParameterOutputWithContext

func (o InstanceParameterOutput) ToInstanceParameterOutputWithContext(ctx context.Context) InstanceParameterOutput

func (InstanceParameterOutput) Value

type InstanceState

type InstanceState struct {
	// Whether to renewal a DB instance automatically or not. It is valid when instanceChargeType is `PrePaid`. Default to `false`.
	AutoRenew pulumi.BoolPtrInput
	// Auto-renewal period of an instance, in the unit of the month. It is valid when instanceChargeType is `PrePaid`. Valid value:[1~12], Default to 1.
	AutoRenewPeriod pulumi.IntPtrInput
	// The upgrade method to use. Valid values:
	// - Auto: Instances are automatically upgraded to a higher minor version.
	// - Manual: Instances are forcibly upgraded to a higher minor version when the current version is unpublished.
	AutoUpgradeMinorVersion pulumi.StringPtrInput
	// RDS database connection string.
	ConnectionString pulumi.StringPtrInput
	// The storage type of the instance. Valid values:
	// - local_ssd: specifies to use local SSDs. This value is recommended.
	// - cloud_ssd: specifies to use standard SSDs.
	// - cloud_essd: specifies to use enhanced SSDs (ESSDs).
	// - cloud_essd2: specifies to use enhanced SSDs (ESSDs).
	// - cloud_essd3: specifies to use enhanced SSDs (ESSDs).
	DbInstanceStorageType pulumi.StringPtrInput
	// Database type. Value options: MySQL, SQLServer, PostgreSQL, and PPAS.
	Engine pulumi.StringPtrInput
	// Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.
	EngineVersion pulumi.StringPtrInput
	// Set it to true to make some parameter efficient when modifying them. Default to false.
	ForceRestart pulumi.BoolPtrInput
	// Valid values are `Prepaid`, `Postpaid`, Default to `Postpaid`. Currently, the resource only supports PostPaid to PrePaid.
	InstanceChargeType pulumi.StringPtrInput
	// The name of DB instance. It a string of 2 to 256 characters.
	InstanceName pulumi.StringPtrInput
	// User-defined DB instance storage space. Value range:
	// - [5, 2000] for MySQL/PostgreSQL/PPAS HA dual node edition;
	// - [20,1000] for MySQL 5.7 basic single node edition;
	// - [10, 2000] for SQL Server 2008R2;
	// - [20,2000] for SQL Server 2012 basic single node edition
	//   Increase progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	//   Note: There is extra 5 GB storage for SQL Server Instance and it is not in specified `instanceStorage`.
	InstanceStorage pulumi.IntPtrInput
	// DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	InstanceType pulumi.StringPtrInput
	// Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)
	MaintainTime pulumi.StringPtrInput
	// The monitoring frequency in seconds. Valid values are 5, 60, 300. Defaults to 300.
	MonitoringPeriod pulumi.IntPtrInput
	// Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm) .
	Parameters InstanceParameterArrayInput
	// The duration that you will buy DB instance (in month). It is valid when instanceChargeType is `PrePaid`. Valid values: [1~9], 12, 24, 36. Default to 1.
	Period pulumi.IntPtrInput
	// RDS database connection port.
	Port pulumi.StringPtrInput
	// The ID of resource group which the DB instance belongs.
	ResourceGroupId pulumi.StringPtrInput
	// It has been deprecated from 1.69.0 and use `securityGroupIds` instead.
	//
	// Deprecated: Attribute `security_group_id` has been deprecated from 1.69.0 and use `security_group_ids` instead.
	SecurityGroupId pulumi.StringPtrInput
	// , Available in 1.69.0+) The list IDs to join ECS Security Group. At most supports three security groups.
	SecurityGroupIds pulumi.StringArrayInput
	// Valid values are `normal`, `safety`, Default to `normal`. support `safety` switch to high security access mode
	SecurityIpMode pulumi.StringPtrInput
	// List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).
	SecurityIps pulumi.StringArrayInput
	// The sql collector keep time of the instance. Valid values are `30`, `180`, `365`, `1095`, `1825`, Default to `30`.
	SqlCollectorConfigValue pulumi.IntPtrInput
	// The sql collector status of the instance. Valid values are `Enabled`, `Disabled`, Default to `Disabled`.
	SqlCollectorStatus pulumi.StringPtrInput
	// Actions performed on SSL functions, Valid values: `Open`: turn on SSL encryption; `Close`: turn off SSL encryption; `Update`: update SSL certificate. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26254.htm).
	SslAction pulumi.StringPtrInput
	// Status of the SSL feature. `Yes`: SSL is turned on; `No`: SSL is turned off.
	SslStatus pulumi.StringPtrInput
	// A mapping of tags to assign to the resource.
	// - Key: It can be up to 64 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It cannot be a null string.
	// - Value: It can be up to 128 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It can be a null string.
	Tags pulumi.MapInput
	// The TDE(Transparent Data Encryption) status. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26256.htm).
	TdeStatus pulumi.StringPtrInput
	// The virtual switch ID to launch DB instances in one VPC. If there are multiple vswitches, separate them with commas.
	VswitchId pulumi.StringPtrInput
	// The Zone to launch the DB instance. From version 1.8.1, it supports multiple zone.
	// If it is a multi-zone and `vswitchId` is specified, the vswitch must in the one of them.
	// The multiple zone ID can be retrieved by setting `multi` to "true" in the data source `getZones`.
	ZoneId pulumi.StringPtrInput
	// The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.
	ZoneIdSlaveA pulumi.StringPtrInput
	// The region ID of the log instance if you create a log instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.
	ZoneIdSlaveB pulumi.StringPtrInput
}

func (InstanceState) ElementType

func (InstanceState) ElementType() reflect.Type

type ReadOnlyInstance

type ReadOnlyInstance struct {
	pulumi.CustomResourceState

	// RDS database connection string.
	ConnectionString pulumi.StringOutput `pulumi:"connectionString"`
	// Database type.
	Engine pulumi.StringOutput `pulumi:"engine"`
	// Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.
	EngineVersion pulumi.StringOutput `pulumi:"engineVersion"`
	// The name of DB instance. It a string of 2 to 256 characters.
	InstanceName pulumi.StringOutput `pulumi:"instanceName"`
	// User-defined DB instance storage space. Value range: [5, 2000] for MySQL/SQL Server HA dual node edition. Increase progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	InstanceStorage pulumi.IntOutput `pulumi:"instanceStorage"`
	// DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	InstanceType pulumi.StringOutput `pulumi:"instanceType"`
	// ID of the master instance.
	MasterDbInstanceId pulumi.StringOutput `pulumi:"masterDbInstanceId"`
	// Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm).
	Parameters ReadOnlyInstanceParameterArrayOutput `pulumi:"parameters"`
	// RDS database connection port.
	Port pulumi.StringOutput `pulumi:"port"`
	// The ID of resource group which the DB read-only instance belongs.
	ResourceGroupId pulumi.StringOutput `pulumi:"resourceGroupId"`
	// A mapping of tags to assign to the resource.
	// - Key: It can be up to 64 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It cannot be a null string.
	// - Value: It can be up to 128 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It can be a null string.
	Tags pulumi.MapOutput `pulumi:"tags"`
	// The virtual switch ID to launch DB instances in one VPC.
	VswitchId pulumi.StringPtrOutput `pulumi:"vswitchId"`
	// The Zone to launch the DB instance.
	ZoneId pulumi.StringOutput `pulumi:"zoneId"`
}

Provides an RDS readonly instance resource.

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		creation := "Rds"
		if param := cfg.Get("creation"); param != "" {
			creation = param
		}
		name := "dbInstancevpc"
		if param := cfg.Get("name"); param != "" {
			name = param
		}
		opt0 := creation
		defaultZones, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
			AvailableResourceCreation: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		defaultNetwork, err := vpc.NewNetwork(ctx, "defaultNetwork", &vpc.NetworkArgs{
			CidrBlock: pulumi.String("172.16.0.0/16"),
		})
		if err != nil {
			return err
		}
		defaultSwitch, err := vpc.NewSwitch(ctx, "defaultSwitch", &vpc.SwitchArgs{
			VpcId:            defaultNetwork.ID(),
			CidrBlock:        pulumi.String("172.16.0.0/24"),
			AvailabilityZone: pulumi.String(defaultZones.Zones[0].Id),
		})
		if err != nil {
			return err
		}
		defaultInstance, err := rds.NewInstance(ctx, "defaultInstance", &rds.InstanceArgs{
			Engine:             pulumi.String("MySQL"),
			EngineVersion:      pulumi.String("5.6"),
			InstanceType:       pulumi.String("rds.mysql.t1.small"),
			InstanceStorage:    pulumi.Int(20),
			InstanceChargeType: pulumi.String("Postpaid"),
			InstanceName:       pulumi.String(name),
			VswitchId:          defaultSwitch.ID(),
			SecurityIps: pulumi.StringArray{
				pulumi.String("10.168.1.12"),
				pulumi.String("100.69.7.112"),
			},
		})
		if err != nil {
			return err
		}
		_, err = rds.NewReadOnlyInstance(ctx, "defaultReadOnlyInstance", &rds.ReadOnlyInstanceArgs{
			MasterDbInstanceId: defaultInstance.ID(),
			ZoneId:             defaultInstance.ZoneId,
			EngineVersion:      defaultInstance.EngineVersion,
			InstanceType:       defaultInstance.InstanceType,
			InstanceStorage:    pulumi.Int(30),
			InstanceName:       pulumi.String(fmt.Sprintf("%v%v", name, "ro")),
			VswitchId:          defaultSwitch.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

RDS readonly instance can be imported using the id, e.g.

```sh

$ pulumi import alicloud:rds/readOnlyInstance:ReadOnlyInstance example rm-abc12345678

```

func GetReadOnlyInstance

func GetReadOnlyInstance(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ReadOnlyInstanceState, opts ...pulumi.ResourceOption) (*ReadOnlyInstance, error)

GetReadOnlyInstance gets an existing ReadOnlyInstance resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewReadOnlyInstance

func NewReadOnlyInstance(ctx *pulumi.Context,
	name string, args *ReadOnlyInstanceArgs, opts ...pulumi.ResourceOption) (*ReadOnlyInstance, error)

NewReadOnlyInstance registers a new resource with the given unique name, arguments, and options.

func (ReadOnlyInstance) ElementType added in v2.25.1

func (ReadOnlyInstance) ElementType() reflect.Type

func (ReadOnlyInstance) ToReadOnlyInstanceOutput added in v2.25.1

func (i ReadOnlyInstance) ToReadOnlyInstanceOutput() ReadOnlyInstanceOutput

func (ReadOnlyInstance) ToReadOnlyInstanceOutputWithContext added in v2.25.1

func (i ReadOnlyInstance) ToReadOnlyInstanceOutputWithContext(ctx context.Context) ReadOnlyInstanceOutput

type ReadOnlyInstanceArgs

type ReadOnlyInstanceArgs struct {
	// Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.
	EngineVersion pulumi.StringInput
	// The name of DB instance. It a string of 2 to 256 characters.
	InstanceName pulumi.StringPtrInput
	// User-defined DB instance storage space. Value range: [5, 2000] for MySQL/SQL Server HA dual node edition. Increase progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	InstanceStorage pulumi.IntInput
	// DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	InstanceType pulumi.StringInput
	// ID of the master instance.
	MasterDbInstanceId pulumi.StringInput
	// Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm).
	Parameters ReadOnlyInstanceParameterArrayInput
	// The ID of resource group which the DB read-only instance belongs.
	ResourceGroupId pulumi.StringPtrInput
	// A mapping of tags to assign to the resource.
	// - Key: It can be up to 64 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It cannot be a null string.
	// - Value: It can be up to 128 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It can be a null string.
	Tags pulumi.MapInput
	// The virtual switch ID to launch DB instances in one VPC.
	VswitchId pulumi.StringPtrInput
	// The Zone to launch the DB instance.
	ZoneId pulumi.StringPtrInput
}

The set of arguments for constructing a ReadOnlyInstance resource.

func (ReadOnlyInstanceArgs) ElementType

func (ReadOnlyInstanceArgs) ElementType() reflect.Type

type ReadOnlyInstanceInput added in v2.25.1

type ReadOnlyInstanceInput interface {
	pulumi.Input

	ToReadOnlyInstanceOutput() ReadOnlyInstanceOutput
	ToReadOnlyInstanceOutputWithContext(ctx context.Context) ReadOnlyInstanceOutput
}

type ReadOnlyInstanceOutput added in v2.25.1

type ReadOnlyInstanceOutput struct {
	*pulumi.OutputState
}

func (ReadOnlyInstanceOutput) ElementType added in v2.25.1

func (ReadOnlyInstanceOutput) ElementType() reflect.Type

func (ReadOnlyInstanceOutput) ToReadOnlyInstanceOutput added in v2.25.1

func (o ReadOnlyInstanceOutput) ToReadOnlyInstanceOutput() ReadOnlyInstanceOutput

func (ReadOnlyInstanceOutput) ToReadOnlyInstanceOutputWithContext added in v2.25.1

func (o ReadOnlyInstanceOutput) ToReadOnlyInstanceOutputWithContext(ctx context.Context) ReadOnlyInstanceOutput

type ReadOnlyInstanceParameter

type ReadOnlyInstanceParameter struct {
	Name  string `pulumi:"name"`
	Value string `pulumi:"value"`
}

type ReadOnlyInstanceParameterArgs

type ReadOnlyInstanceParameterArgs struct {
	Name  pulumi.StringInput `pulumi:"name"`
	Value pulumi.StringInput `pulumi:"value"`
}

func (ReadOnlyInstanceParameterArgs) ElementType

func (ReadOnlyInstanceParameterArgs) ToReadOnlyInstanceParameterOutput

func (i ReadOnlyInstanceParameterArgs) ToReadOnlyInstanceParameterOutput() ReadOnlyInstanceParameterOutput

func (ReadOnlyInstanceParameterArgs) ToReadOnlyInstanceParameterOutputWithContext

func (i ReadOnlyInstanceParameterArgs) ToReadOnlyInstanceParameterOutputWithContext(ctx context.Context) ReadOnlyInstanceParameterOutput

type ReadOnlyInstanceParameterArray

type ReadOnlyInstanceParameterArray []ReadOnlyInstanceParameterInput

func (ReadOnlyInstanceParameterArray) ElementType

func (ReadOnlyInstanceParameterArray) ToReadOnlyInstanceParameterArrayOutput

func (i ReadOnlyInstanceParameterArray) ToReadOnlyInstanceParameterArrayOutput() ReadOnlyInstanceParameterArrayOutput

func (ReadOnlyInstanceParameterArray) ToReadOnlyInstanceParameterArrayOutputWithContext

func (i ReadOnlyInstanceParameterArray) ToReadOnlyInstanceParameterArrayOutputWithContext(ctx context.Context) ReadOnlyInstanceParameterArrayOutput

type ReadOnlyInstanceParameterArrayInput

type ReadOnlyInstanceParameterArrayInput interface {
	pulumi.Input

	ToReadOnlyInstanceParameterArrayOutput() ReadOnlyInstanceParameterArrayOutput
	ToReadOnlyInstanceParameterArrayOutputWithContext(context.Context) ReadOnlyInstanceParameterArrayOutput
}

ReadOnlyInstanceParameterArrayInput is an input type that accepts ReadOnlyInstanceParameterArray and ReadOnlyInstanceParameterArrayOutput values. You can construct a concrete instance of `ReadOnlyInstanceParameterArrayInput` via:

ReadOnlyInstanceParameterArray{ ReadOnlyInstanceParameterArgs{...} }

type ReadOnlyInstanceParameterArrayOutput

type ReadOnlyInstanceParameterArrayOutput struct{ *pulumi.OutputState }

func (ReadOnlyInstanceParameterArrayOutput) ElementType

func (ReadOnlyInstanceParameterArrayOutput) Index

func (ReadOnlyInstanceParameterArrayOutput) ToReadOnlyInstanceParameterArrayOutput

func (o ReadOnlyInstanceParameterArrayOutput) ToReadOnlyInstanceParameterArrayOutput() ReadOnlyInstanceParameterArrayOutput

func (ReadOnlyInstanceParameterArrayOutput) ToReadOnlyInstanceParameterArrayOutputWithContext

func (o ReadOnlyInstanceParameterArrayOutput) ToReadOnlyInstanceParameterArrayOutputWithContext(ctx context.Context) ReadOnlyInstanceParameterArrayOutput

type ReadOnlyInstanceParameterInput

type ReadOnlyInstanceParameterInput interface {
	pulumi.Input

	ToReadOnlyInstanceParameterOutput() ReadOnlyInstanceParameterOutput
	ToReadOnlyInstanceParameterOutputWithContext(context.Context) ReadOnlyInstanceParameterOutput
}

ReadOnlyInstanceParameterInput is an input type that accepts ReadOnlyInstanceParameterArgs and ReadOnlyInstanceParameterOutput values. You can construct a concrete instance of `ReadOnlyInstanceParameterInput` via:

ReadOnlyInstanceParameterArgs{...}

type ReadOnlyInstanceParameterOutput

type ReadOnlyInstanceParameterOutput struct{ *pulumi.OutputState }

func (ReadOnlyInstanceParameterOutput) ElementType

func (ReadOnlyInstanceParameterOutput) Name

func (ReadOnlyInstanceParameterOutput) ToReadOnlyInstanceParameterOutput

func (o ReadOnlyInstanceParameterOutput) ToReadOnlyInstanceParameterOutput() ReadOnlyInstanceParameterOutput

func (ReadOnlyInstanceParameterOutput) ToReadOnlyInstanceParameterOutputWithContext

func (o ReadOnlyInstanceParameterOutput) ToReadOnlyInstanceParameterOutputWithContext(ctx context.Context) ReadOnlyInstanceParameterOutput

func (ReadOnlyInstanceParameterOutput) Value

type ReadOnlyInstanceState

type ReadOnlyInstanceState struct {
	// RDS database connection string.
	ConnectionString pulumi.StringPtrInput
	// Database type.
	Engine pulumi.StringPtrInput
	// Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.
	EngineVersion pulumi.StringPtrInput
	// The name of DB instance. It a string of 2 to 256 characters.
	InstanceName pulumi.StringPtrInput
	// User-defined DB instance storage space. Value range: [5, 2000] for MySQL/SQL Server HA dual node edition. Increase progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	InstanceStorage pulumi.IntPtrInput
	// DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).
	InstanceType pulumi.StringPtrInput
	// ID of the master instance.
	MasterDbInstanceId pulumi.StringPtrInput
	// Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm).
	Parameters ReadOnlyInstanceParameterArrayInput
	// RDS database connection port.
	Port pulumi.StringPtrInput
	// The ID of resource group which the DB read-only instance belongs.
	ResourceGroupId pulumi.StringPtrInput
	// A mapping of tags to assign to the resource.
	// - Key: It can be up to 64 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It cannot be a null string.
	// - Value: It can be up to 128 characters in length. It cannot begin with "aliyun", "acs:", "http://", or "https://". It can be a null string.
	Tags pulumi.MapInput
	// The virtual switch ID to launch DB instances in one VPC.
	VswitchId pulumi.StringPtrInput
	// The Zone to launch the DB instance.
	ZoneId pulumi.StringPtrInput
}

func (ReadOnlyInstanceState) ElementType

func (ReadOnlyInstanceState) ElementType() reflect.Type

type ReadWriteSplittingConnection

type ReadWriteSplittingConnection struct {
	pulumi.CustomResourceState

	// Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to <instance_id> + 'rw'.
	ConnectionPrefix pulumi.StringPtrOutput `pulumi:"connectionPrefix"`
	// Connection instance string.
	ConnectionString pulumi.StringOutput `pulumi:"connectionString"`
	// Read weight distribution mode. Values are as follows: `Standard` indicates automatic weight distribution based on types, `Custom` indicates custom weight distribution.
	DistributionType pulumi.StringOutput `pulumi:"distributionType"`
	// The Id of instance that can run database.
	InstanceId pulumi.StringOutput `pulumi:"instanceId"`
	// Delay threshold, in seconds. The value range is 0 to 7200. Default to 30. Read requests are not routed to the read-only instances with a delay greater than the threshold.
	MaxDelayTime pulumi.IntOutput `pulumi:"maxDelayTime"`
	// Intranet connection port. Valid value: [3001-3999]. Default to 3306.
	Port pulumi.IntOutput `pulumi:"port"`
	// Read weight distribution. Read weights increase at a step of 100 up to 10,000. Enter weights in the following format: {"Instanceid":"Weight","Instanceid":"Weight"}. This parameter must be set when distributionType is set to Custom.
	Weight pulumi.MapOutput `pulumi:"weight"`
}

Provides an RDS read write splitting connection resource to allocate an Intranet connection string for RDS instance.

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/rds"
"github.com/pulumi/pulumi-alicloud/sdk/v2/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		creation := "Rds"
		if param := cfg.Get("creation"); param != "" {
			creation = param
		}
		name := "dbInstancevpc"
		if param := cfg.Get("name"); param != "" {
			name = param
		}
		opt0 := creation
		defaultZones, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
			AvailableResourceCreation: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		defaultNetwork, err := vpc.NewNetwork(ctx, "defaultNetwork", &vpc.NetworkArgs{
			CidrBlock: pulumi.String("172.16.0.0/16"),
		})
		if err != nil {
			return err
		}
		defaultSwitch, err := vpc.NewSwitch(ctx, "defaultSwitch", &vpc.SwitchArgs{
			VpcId:            defaultNetwork.ID(),
			CidrBlock:        pulumi.String("172.16.0.0/24"),
			AvailabilityZone: pulumi.String(defaultZones.Zones[0].Id),
		})
		if err != nil {
			return err
		}
		defaultInstance, err := rds.NewInstance(ctx, "defaultInstance", &rds.InstanceArgs{
			Engine:             pulumi.String("MySQL"),
			EngineVersion:      pulumi.String("5.6"),
			InstanceType:       pulumi.String("rds.mysql.t1.small"),
			InstanceStorage:    pulumi.Int(20),
			InstanceChargeType: pulumi.String("Postpaid"),
			InstanceName:       pulumi.String(name),
			VswitchId:          defaultSwitch.ID(),
			SecurityIps: pulumi.StringArray{
				pulumi.String("10.168.1.12"),
				pulumi.String("100.69.7.112"),
			},
		})
		if err != nil {
			return err
		}
		defaultReadOnlyInstance, err := rds.NewReadOnlyInstance(ctx, "defaultReadOnlyInstance", &rds.ReadOnlyInstanceArgs{
			MasterDbInstanceId: defaultInstance.ID(),
			ZoneId:             defaultInstance.ZoneId,
			EngineVersion:      defaultInstance.EngineVersion,
			InstanceType:       defaultInstance.InstanceType,
			InstanceStorage:    pulumi.Int(30),
			InstanceName:       pulumi.String(fmt.Sprintf("%v%v", name, "ro")),
			VswitchId:          defaultSwitch.ID(),
		})
		if err != nil {
			return err
		}
		_, err = rds.NewReadWriteSplittingConnection(ctx, "defaultReadWriteSplittingConnection", &rds.ReadWriteSplittingConnectionArgs{
			InstanceId:       defaultInstance.ID(),
			ConnectionPrefix: pulumi.String("t-con-123"),
			DistributionType: pulumi.String("Standard"),
		}, pulumi.DependsOn([]pulumi.Resource{
			defaultReadOnlyInstance,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

> **NOTE:** Resource `rds.ReadWriteSplittingConnection` should be created after `rds.ReadOnlyInstance`, so the `dependsOn` statement is necessary.

## Import

RDS read write splitting connection can be imported using the id, e.g.

```sh

$ pulumi import alicloud:rds/readWriteSplittingConnection:ReadWriteSplittingConnection example abc12345678

```

func GetReadWriteSplittingConnection

func GetReadWriteSplittingConnection(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ReadWriteSplittingConnectionState, opts ...pulumi.ResourceOption) (*ReadWriteSplittingConnection, error)

GetReadWriteSplittingConnection gets an existing ReadWriteSplittingConnection resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewReadWriteSplittingConnection

func NewReadWriteSplittingConnection(ctx *pulumi.Context,
	name string, args *ReadWriteSplittingConnectionArgs, opts ...pulumi.ResourceOption) (*ReadWriteSplittingConnection, error)

NewReadWriteSplittingConnection registers a new resource with the given unique name, arguments, and options.

func (ReadWriteSplittingConnection) ElementType added in v2.25.1

func (ReadWriteSplittingConnection) ToReadWriteSplittingConnectionOutput added in v2.25.1

func (i ReadWriteSplittingConnection) ToReadWriteSplittingConnectionOutput() ReadWriteSplittingConnectionOutput

func (ReadWriteSplittingConnection) ToReadWriteSplittingConnectionOutputWithContext added in v2.25.1

func (i ReadWriteSplittingConnection) ToReadWriteSplittingConnectionOutputWithContext(ctx context.Context) ReadWriteSplittingConnectionOutput

type ReadWriteSplittingConnectionArgs

type ReadWriteSplittingConnectionArgs struct {
	// Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to <instance_id> + 'rw'.
	ConnectionPrefix pulumi.StringPtrInput
	// Read weight distribution mode. Values are as follows: `Standard` indicates automatic weight distribution based on types, `Custom` indicates custom weight distribution.
	DistributionType pulumi.StringInput
	// The Id of instance that can run database.
	InstanceId pulumi.StringInput
	// Delay threshold, in seconds. The value range is 0 to 7200. Default to 30. Read requests are not routed to the read-only instances with a delay greater than the threshold.
	MaxDelayTime pulumi.IntPtrInput
	// Intranet connection port. Valid value: [3001-3999]. Default to 3306.
	Port pulumi.IntPtrInput
	// Read weight distribution. Read weights increase at a step of 100 up to 10,000. Enter weights in the following format: {"Instanceid":"Weight","Instanceid":"Weight"}. This parameter must be set when distributionType is set to Custom.
	Weight pulumi.MapInput
}

The set of arguments for constructing a ReadWriteSplittingConnection resource.

func (ReadWriteSplittingConnectionArgs) ElementType

type ReadWriteSplittingConnectionInput added in v2.25.1

type ReadWriteSplittingConnectionInput interface {
	pulumi.Input

	ToReadWriteSplittingConnectionOutput() ReadWriteSplittingConnectionOutput
	ToReadWriteSplittingConnectionOutputWithContext(ctx context.Context) ReadWriteSplittingConnectionOutput
}

type ReadWriteSplittingConnectionOutput added in v2.25.1

type ReadWriteSplittingConnectionOutput struct {
	*pulumi.OutputState
}

func (ReadWriteSplittingConnectionOutput) ElementType added in v2.25.1

func (ReadWriteSplittingConnectionOutput) ToReadWriteSplittingConnectionOutput added in v2.25.1

func (o ReadWriteSplittingConnectionOutput) ToReadWriteSplittingConnectionOutput() ReadWriteSplittingConnectionOutput

func (ReadWriteSplittingConnectionOutput) ToReadWriteSplittingConnectionOutputWithContext added in v2.25.1

func (o ReadWriteSplittingConnectionOutput) ToReadWriteSplittingConnectionOutputWithContext(ctx context.Context) ReadWriteSplittingConnectionOutput

type ReadWriteSplittingConnectionState

type ReadWriteSplittingConnectionState struct {
	// Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to <instance_id> + 'rw'.
	ConnectionPrefix pulumi.StringPtrInput
	// Connection instance string.
	ConnectionString pulumi.StringPtrInput
	// Read weight distribution mode. Values are as follows: `Standard` indicates automatic weight distribution based on types, `Custom` indicates custom weight distribution.
	DistributionType pulumi.StringPtrInput
	// The Id of instance that can run database.
	InstanceId pulumi.StringPtrInput
	// Delay threshold, in seconds. The value range is 0 to 7200. Default to 30. Read requests are not routed to the read-only instances with a delay greater than the threshold.
	MaxDelayTime pulumi.IntPtrInput
	// Intranet connection port. Valid value: [3001-3999]. Default to 3306.
	Port pulumi.IntPtrInput
	// Read weight distribution. Read weights increase at a step of 100 up to 10,000. Enter weights in the following format: {"Instanceid":"Weight","Instanceid":"Weight"}. This parameter must be set when distributionType is set to Custom.
	Weight pulumi.MapInput
}

func (ReadWriteSplittingConnectionState) ElementType

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL