Todos os produtos
Search
Central de documentação

Resource Orchestration Service:ALIYUN::RDS::PrepayDBInstance

Última atualização: Sep 21, 2026

O ALIYUN::RDS::PrepayDBInstance é usado para criar instâncias do ApsaraDB RDS no modelo de assinatura.

Sintaxe

{
  "Type": "ALIYUN::RDS::PrepayDBInstance",
  "Properties": {
    "DBMappings": List,
    "CouponCode": String,
    "MasterUsername": String,
    "PeriodType": String,
    "DBInstanceNetType": String,
    "MasterUserType": String,
    "AutoRenew": Boolean,
    "PreferredBackupTime": String,
    "PrivateIpAddress": String,
    "Engine": String,
    "MultiAZ": Boolean,
    "VpcId": String,
    "ConnectionMode": String,
    "ResourceGroupId": String,
    "VSwitchId": String,
    "BackupRetentionPeriod": Number,
    "Quantity": Number,
    "CommodityCode": String,
    "ZoneId": String,
    "AutoPay": Boolean,
    "Port": Integer,
    "ConnectionStringPrefix": String,
    "SubscriptionDeletionForce": Boolean,
    "ConnectionStringType": String,
    "EngineVersion": String,
    "DBInstanceClass": String,
    "PreferredBackupPeriod": List,
    "DBInstanceStorage": Integer,
    "DBInstanceDescription": String,
    "Tags": Map,
    "Period": Number,
    "MasterUserPassword": String,
    "AllocatePublicConnection": Boolean,
    "SlaveZoneIds": List,
    "TargetDedicatedHostIdForMaster": String,
    "RoleARN": String,
    "DBInstanceStorageType": String,
    "Category": String,
    "DBParamGroupId": String,
    "EncryptionKey": String,
    "DBIsIgnoreCase": Integer,
    "SecurityGroupId": String,
    "TargetDedicatedHostIdForLog": String,
    "DBTimeZone": String,
    "DedicatedHostGroupId": String,
    "TargetDedicatedHostIdForSlave": String,
    "MaintainTime": String,
    "SQLCollectorStatus": String,
    "SSLSetting": String,
    "ArchiveBackupRetentionPeriod": Integer,
    "LogBackupRetentionPeriod": Integer,
    "EnableBackupLog": Boolean,
    "LogBackupLocalRetentionNumber": Integer,
    "ArchiveBackupKeepPolicy": String,
    "LocalLogRetentionHours": Integer,
    "HighSpaceUsageProtection": String,
    "CompressType": Integer,
    "LogBackupFrequency": String,
    "BackupPolicyMode": String,
    "ArchiveBackupKeepCount": Integer,
    "LocalLogRetentionSpace": Integer,
    "ReleasedKeepPolicy": String,
    "BackUpCategory": String,
    "ServerlessConfig": Map,
    "InstanceNetworkType": String,
    "StorageAutoScale": String,
    "StorageUpperBound": Number,
    "StorageThreshold": Number,
    "IoAccelerationEnabled": String,
    "ColdDataEnabled": Boolean,
    "BurstingEnabled": Boolean,
    "DeletionProtection": Boolean
  }
}

Propriedades

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

ResourceGroupId

String

Não

Sim

O ID do grupo de recursos.

Nenhuma.

DBMappings

List

Não

Não

Os bancos de dados que você deseja criar na instância.

Para mais informações, consulte Propriedades de DBMappings.

CouponCode

String

Não

Não

O código do cupom.

Nenhuma.

MasterUsername

String

Não

Sim

O nome da conta do banco de dados da instância.

O nome deve ser globalmente único.

Deve ter de 2 a 16 caracteres. Deve começar com uma letra e terminar com uma letra ou dígito. Pode conter letras, dígitos e sublinhados (_).

PeriodType

String

Sim

Não

A unidade de tempo da assinatura.

Valores válidos:

  • Year

  • Month (padrão)

AutoUpgradeMinorVersion

String

Não

Sim

O método de atualização da versão secundária da instância.

Valores válidos:

  • Auto: Atualiza automaticamente para a versão secundária.

  • Manual: Não atualiza automaticamente. Força uma atualização apenas quando a versão atual não é mais suportada.

DBInstanceNetType

String

Não

Não

O tipo de conexão de rede da instância.

Valores válidos:

  • Internet

  • Intranet (padrão)

MasterUserType

String

Não

Não

O tipo de conta do banco de dados.

Valores válidos:

  • Normal (padrão): conta padrão

  • Super: conta privilegiada

  • Sysadmin: conta de administrador do sistema

    Nota

    Contas de administrador do sistema suportam apenas bancos de dados SQL Server.

Port

Integer

Não

Sim

A porta da instância.

Nenhuma.

ConnectionStringPrefix

String

Não

Sim

O prefixo do endpoint.

O prefixo deve ter de 8 a 64 caracteres e pode conter letras, dígitos e hifens (-).

ConnectionStringType

String

Não

Sim

O tipo de endpoint.

Valores válidos:

  • Inner: privado

  • Public: público

PreferredBackupTime

String

Não

Sim

O horário do backup.

Especifique o horário no formato HH:mmZ-HH:mmZ.

Valores válidos: 00:00Z-01:00Z, 01:00Z-02:00Z, 02:00Z-03:00Z, 03:00Z-04:00Z, 04:00Z-05:00Z, 05:00Z-06:00Z, 06:00Z-07:00Z, 07:00Z-08:00Z, 08:00Z-09:00Z, 09:00Z-10:00Z, 10:00Z-11:00Z, 11:00Z-12:00Z, 12:00Z-13:00Z, 13:00Z-14:00Z, 14:00Z-15:00Z, 15:00Z-16:00Z, 16:00Z-17:00Z, 17:00Z-18:00Z, 18:00Z-19:00Z, 19:00Z-20:00Z, 20:00Z-21:00Z, 21:00Z-22:00Z, 22:00Z-23:00Z e 23:00Z-24:00Z.

PrivateIpAddress

String

Não

Não

O endereço IP privado correspondente ao vSwitch.

Se você não especificar esta propriedade, o sistema atribui automaticamente um endereço IP privado.

Engine

String

Sim

Não

O tipo de mecanismo de banco de dados.

Valores válidos:

  • MySQL

  • SQLServer

  • PostgreSQL

  • PPAS

  • MariaDB

MultiAZ

Boolean

Não

Não

Indica se a instância será implantada em múltiplas zonas.

Valores válidos:

  • true

  • false

VpcId

String

Não

Não

O ID da virtual private cloud (VPC).

Nenhuma.

ConnectionMode

String

Não

Não

O modo de conexão do banco de dados.

Valores válidos:

  • Standard: modo padrão

    Nota

    Instâncias que executam SQL Server 2012, SQL Server 2016 e SQL Server 2017 suportam apenas o modo padrão.

  • Safe (padrão): modo de proxy de banco de dados

Se você não especificar esta propriedade, o sistema atribui um modo de conexão por padrão.

AutoRenew

Boolean

Não

Não

Indica se a renovação automática da instância deve ser ativada.

Valores válidos:

  • true

  • false

VSwitchId

String

Não

Não

O ID do vSwitch.

Nenhuma.

BackupRetentionPeriod

Number

Não

Sim

O número de dias para reter os dados de backup.

Nenhuma.

Quantity

Number

Não

Não

O número de instâncias que você deseja criar.

Valores válidos: 1 a 99.

Valor padrão: 1.

CommodityCode

String

Sim

Não

O código da commodity.

Valores válidos:

  • rds

  • bards

  • rords

SubscriptionDeletionForce

Boolean

Não

Não

Esta propriedade tem efeito apenas em instâncias por assinatura. Se você definir esta propriedade como true para uma instância por assinatura, a instância será alterada para o modelo de pagamento conforme o uso antes de ser excluída à força. Se você definir esta propriedade como false, a instância não será excluída à força. Esta propriedade envolve taxas adicionais. Tenha cuidado ao especificar esta propriedade.

Nenhuma.

ZoneId

String

Não

Não

O ID da zona.

Nenhuma.

EngineVersion

String

Sim

Não

A versão do mecanismo de banco de dados.

Valores válidos:

  • Valores válidos quando Engine é definido como MySQL: 5.5, 5.6, 5.7 e 8.0.

  • Valores válidos quando Engine é definido como SQLServer: 2008r2, 08r2_ent_ha, 2012, 2012_ent_ha, 2012_std_ha, 2012_web, 2014_std_ha, 2016_ent_ha, 2016_std_ha, 2016_web, 2017_std_ha, 2017_ent e 2019_ent.

  • Valores válidos quando Engine é definido como PostgreSQL: 9.4, 10.0, 11.0 e 12.0.

  • Valores válidos quando Engine é definido como PPAS: 9.3 e 10.0.

  • Valor válido quando Engine é definido como MariaDB: 10.3.

DBInstanceClass

String

Sim

Sim

O tipo da instância.

Exemplos: rds.mys2.large, rds.mss1.large e rds.pg.s1.small.

PreferredBackupPeriod

List

Não

Sim

O dia da semana para realizar o backup dos dados.

Valores válidos:

  • Monday

  • Tuesday

  • Wednesday

  • Thursday

  • Friday

  • Saturday

  • Sunday

DBInstanceStorage

Integer

Sim

Sim

A capacidade de armazenamento da instância.

Valores válidos:

  • Valores válidos quando Engine é definido como MySQL: 5 a 1000.

  • Valores válidos quando Engine é definido como SQLServer: 10 a 1000.

  • Valores válidos quando Engine é definido como PostgreSQL ou PPAS: 5 a 2000.

Unidade: GB.

Nota

O valor de DBInstanceStorage deve ser em incrementos de 5 GB.

DBInstanceDescription

String

Não

Sim

A descrição da instância.

A descrição deve ter de 2 a 256 caracteres. Deve começar com uma letra e não pode começar com http:// ou https://. Pode conter letras, dígitos, sublinhados (_) e hifens (-).

Tags

Map

Não

Sim

As tags.

Nenhuma.

Period

Number

Sim

Não

A duração da assinatura.

Valores válidos:

  • Valores válidos quando PeriodType é definido como Month: 1 a 9.

  • Valores válidos quando PeriodType é definido como Year: 1 a 3.

MasterUserPassword

String

Não

Sim

A senha da conta do banco de dados da instância.

A senha deve ter de 8 a 32 caracteres. Deve conter pelo menos três dos seguintes tipos de caracteres: letras maiúsculas, letras minúsculas, dígitos e caracteres especiais. Os seguintes caracteres especiais são suportados: ! @ # $ & ; % ^ * ( ) _ + - =.

AllocatePublicConnection

Boolean

Não

Não

Indica se um endpoint público deve ser solicitado para a instância.

Valores válidos:

  • true

  • false

AutoPay

Boolean

Não

Não

Indica se o pagamento automático deve ser ativado.

Valores válidos:

  • true (padrão)

  • false

SlaveZoneIds

List

Não

Não

Os IDs das zonas secundárias para instâncias High-availability Edition ou Enterprise Edition.

Especifique até duas zonas secundárias. Por exemplo, defina esta propriedade como ["zone-b"] ou ["zone-b", "zone-c"].

Especifique um vSwitch para cada zona primária ou secundária. Por exemplo, se definir ZoneId como "zone-a" e SlaveZoneIds como ["zone-c", "zone-b"], defina VSwitchId como "vsw-zone-a,vsw-zone-c,vsw-zone-b".

Para que o sistema selecione automaticamente uma zona secundária, defina SlaveZoneIds como ["Auto"] ou ["Auto", "Auto"]. Nesse caso, se especificar um ID de vSwitch para a zona primária, o sistema criará automaticamente um vSwitch nas zonas secundárias.

TargetDedicatedHostIdForMaster

String

Não

Não

O ID do host da instância primária que você deseja criar em um cluster dedicado.

Nenhuma.

RoleARN

String

Não

Não

O Alibaba Cloud Resource Name (ARN) da função. Use essa função para acessar o Key Management Service (KMS) a partir do ApsaraDB RDS.

Nenhuma.

DBInstanceStorageType

String

Não

Sim

O tipo de armazenamento da instância.

Valores válidos:

  • local_ssd (recomendado): SSD local

  • cloud_ssd: SSD padrão

  • cloud_essd: Enterprise SSD (ESSD)

Category

String

Não

Sim

A edição da instância.

Valores válidos:

  • Basic: Basic Edition.

  • HighAvailability: High-availability Edition

  • AlwaysOn: Cluster Edition

  • Finance: Enterprise Edition

DBParamGroupId

String

Não

Não

O ID do modelo de parâmetros.

Nenhuma.

EncryptionKey

String

Não

Não

O ID da chave usada para criptografia de disco na região da instância.

Obtenha o ID da chave no console do KMS ou crie uma nova chave.

DBIsIgnoreCase

Integer

Não

Não

Indica se os nomes das tabelas não diferenciam maiúsculas de minúsculas.

Valores válidos:

  • 1 (padrão): Os nomes das tabelas não diferenciam maiúsculas de minúsculas.

  • 0: Os nomes das tabelas diferenciam maiúsculas de minúsculas.

SecurityGroupId

String

Não

Sim

O ID do grupo de segurança.

Associe a instância a até três grupos de segurança. Separe os IDs dos grupos de segurança com vírgulas (,). Para desassociar a instância de todos os grupos de segurança, deixe esta propriedade vazia.

TargetDedicatedHostIdForLog

String

Não

Não

O ID do host da instância de logger que você deseja criar em um cluster dedicado.

Nenhuma.

DBTimeZone

String

Não

Não

O fuso horário UTC.

Valores válidos: -12:59 a +13:00.

Por padrão, se esta propriedade não for especificada, o sistema usa o fuso horário padrão da região da instância.

Se criar uma instância com SSDs locais anexados, você poderá nomear o fuso horário.

DedicatedHostGroupId

String

Não

Não

O ID do cluster dedicado no qual a instância será criada.

Nenhuma.

TargetDedicatedHostIdForSlave

String

Não

Não

O ID do host da instância secundária que você deseja criar em um cluster dedicado.

Nenhuma.

MaintainTime

String

Não

Não

A janela de manutenção da instância.

Especifique a janela de manutenção no formato HH:mmZ-HH:mmZ.

SQLCollectorStatus

String

Não

Sim

Indica se o SQL Explorer and Audit deve ser ativado.

Valores válidos:

  • Enable

  • Disabled

SSLSetting

String

Não

Não

As configurações de conexão SSL da instância.

Valores válidos:

  • Disabled (padrão): desativa as configurações de conexão SSL da instância.

  • EnabledForPublicConnection: ativa as configurações de conexão SSL da instância. Certificados SSL são usados para proteger endpoints públicos.

    Nota

    Se definir esta propriedade como EnabledForPublicConnection, defina AllocatePublicConnection como true.

  • EnabledForInnerConnection: ativa as configurações de conexão SSL da instância. Certificados SSL são usados para proteger endpoints privados.

ArchiveBackupRetentionPeriod

Integer

Não

Sim

O número de dias para reter os backups arquivados.

Nenhuma.

LogBackupRetentionPeriod

Integer

Não

Sim

O número de dias para reter os backups de log.

Nenhuma.

EnableBackupLog

Boolean

Não

Sim

Indica se o backup de log deve ser ativado.

Valores válidos:

  • true

  • false

LogBackupLocalRetentionNumber

Integer

Não

Sim

O número de logs binários locais para reter.

Nenhuma.

ArchiveBackupKeepPolicy

String

Não

Sim

O ciclo de retenção dos backups arquivados.

Valores válidos:

  • ByMonth

  • ByWeek

  • KeepAll

ArchiveBackupKeepCount determina o número de backups que podem ser retidos dentro do ciclo. O valor padrão é 0.

Nota

Esta propriedade tem efeito quando BackupPolicyMode é definido como DataBackupPolicy.

LocalLogRetentionHours

Integer

Não

Sim

O número de horas para reter os backups de log locais.

Nenhuma.

HighSpaceUsageProtection

String

Não

Sim

Indica se os logs binários devem ser excluídos à força caso o uso de capacidade da instância exceda 80% ou a capacidade restante seja inferior a 5 GB.

Valores válidos:

  • Disable

  • Enable

CompressType

Integer

Não

Sim

O método de compactação dos dados de backup.

Valores válidos:

  • 0: não compacta os dados de backup.

  • 1: usa zlib para compactar os dados de backup.

  • 2: usa zlib para compactar os dados de backup em paralelo.

  • 4: usa QuickLZ para compactar os dados de backup. Use os dados de backup compactados para restaurar bancos de dados e tabelas.

  • 8: usa QuickLZ para compactar os dados de backup. Não é possível usar os dados de backup compactados para restaurar bancos de dados e tabelas. Este valor está disponível apenas quando a instância executa MySQL 8.0.

LogBackupFrequency

String

Não

Sim

A frequência de backup dos logs.

Esta propriedade está disponível quando Engine é definido como SQLServer.

Defina o valor como LogInterval. Um valor de LogInterval especifica que o sistema faz backup dos logs a cada 30 minutos.

Nota

O valor padrão de LogBackupFrequency é o mesmo que o valor de PreferredBackupPeriod.

BackupPolicyMode

String

Não

Sim

O tipo de backup.

Valores válidos:

  • DataBackupPolicy

  • LogBackupPolicy

ArchiveBackupKeepCount

Integer

Não

Sim

O número de backups arquivados para reter.

Nenhuma.

LocalLogRetentionSpace

Integer

Não

Sim

O uso máximo de capacidade dos logs locais na instância.

Nenhuma.

ReleasedKeepPolicy

String

Não

Sim

A política de retenção dos backups arquivados caso a instância seja excluída.

Valores válidos:

  • None: não retém backups arquivados.

  • Lastest: retém apenas o backup arquivado mais recente.

  • All: retém todos os backups arquivados.

BackUpCategory

String

Não

Sim

A edição da instância de backup.

Valores válidos:

  • Basic: Basic Edition.

  • HighAvailability: High-availability Edition

  • AlwaysOn: Cluster Edition

  • Finance: Enterprise Edition

ServerlessConfig

Map

Não

Não

As configurações da instância serverless.

Para mais informações, consulte Propriedades de ServerlessConfig.

InstanceNetworkType

String

Não

Não

O tipo de rede da instância.

Valores válidos:

  • VPC

  • Classic

Nota

Para instâncias que executam MySQL e usam discos em nuvem, defina esta propriedade como VPC.

Para instâncias que executam PostgreSQL ou MariaDB, defina esta propriedade como VPC.

Para instâncias que executam SQL Server Basic ou SQL Server Web, defina esta propriedade como VPC ou Classic. Para outros tipos de instâncias, defina esta propriedade como VPC.

StorageAutoScale

String

Não

Não

Indica se a expansão automática de armazenamento deve ser ativada.

Esta propriedade é suportada apenas quando Engine é definido como MySQL ou PostgreSQL. Valores válidos:

  • Enable

  • Disable (padrão)

Nota

Também é possível chamar a operação ModifyDasInstanceConfig para ajustar as configurações de expansão automática de armazenamento de uma instância após a sua criação. Para mais informações, consulte Configure automatic storage expansion for an ApsaraDB RDS for MySQL instance.

StorageUpperBound

Number

Não

Não

A capacidade máxima de armazenamento permitida para a expansão automática.

A expansão automática de armazenamento não faz com que a capacidade de armazenamento da instância exceda o valor desta propriedade. Unidade: GB.

Nota

O valor deve ser maior ou igual a 0.

Especifique esta propriedade quando StorageAutoScale for definido como Enable.

StorageThreshold

Number

Não

Não

O limiar para acionamento da expansão automática de armazenamento. Unidade: %.

Valores válidos:

  • 10

  • 20

  • 30

  • 40

  • 50

Nota

Especifique esta propriedade quando StorageAutoScale for definido como Enable.

IoAccelerationEnabled

String

Não

Não

Indica se a aceleração de I/O deve ser ativada.

Valores válidos:

  • 1: ativa a aceleração de I/O.

  • 0: não ativa a aceleração de I/O.

ColdDataEnabled

Boolean

Não

Não

Esta propriedade é reservada.

Nenhuma.

BurstingEnabled

Boolean

Não

Não

Indica se o burst de I/O deve ser ativado.

Valores válidos:

  • true

  • false

DeletionProtection

Boolean

Não

Sim

Indica se o recurso de proteção contra exclusão deve ser ativado.

Valores válidos:

  • true

  • false

Sintaxe de ServerlessConfig

"ServerlessConfig": {
    "SwitchForce": Boolean,
    "MaxCapacity": Number,
    "MinCapacity": Number,
    "AutoPause": Boolean
  }

Propriedades de ServerlessConfig

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

SwitchForce

Boolean

Não

Não

Indica se o dimensionamento forçado da instância serverless deve ser ativado.

Valores válidos:

  • true

  • false (padrão)

Nota
  • Se definir esta propriedade como true, ocorrerá uma desconexão transitória de aproximadamente 1 minuto durante o processo de dimensionamento forçado da instância. Especifique esta propriedade com base nos requisitos do seu negócio.

  • Na maioria dos casos, o dimensionamento para RDS Capacity Units (RCUs) de uma instância entra em vigor imediatamente. Em alguns casos, como na execução de grandes transações, o dimensionamento não entra em vigor imediatamente. Nesse caso, ative o recurso de dimensionamento forçado para dimensionar os RCUs da instância à força.

MaxCapacity

Number

Sim

Não

O valor máximo para o dimensionamento de RCU da instância.

Valores válidos: 0,5 a 8.

Nota

O valor desta propriedade deve ser maior ou igual ao valor de MinCapacity.

MinCapacity

Number

Sim

Não

O valor mínimo para o dimensionamento de RCU da instância.

Valores válidos: 0,5 a 8.

Nota

O valor desta propriedade deve ser menor ou igual ao valor de MaxCapacity.

AutoPause

Boolean

Não

Não

Indica se o recurso de inicialização e suspensão automática da instância serverless deve ser ativado.

Valores válidos:

  • true

  • false (padrão)

Nota

Após ativar o recurso, a instância será suspensa se não houver conexão dentro de 10 minutos e será retomada quando uma conexão for estabelecida.

Sintaxe de DBMappings

"DBMappings": [
  {
    "DBDescription": String,
    "CharacterSetName": String,
    "DBName": String
  }
]

Propriedades de DBMappings

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

DBDescription

String

Não

Não

A descrição do banco de dados.

A descrição deve ter de 2 a 256 caracteres. Deve começar com uma letra e não pode começar com http:// ou https://. Pode conter letras, dígitos, sublinhados (_) e hifens (-).

CharacterSetName

String

Sim

Não

O conjunto de caracteres.

Valores válidos:

  • Valores válidos quando Engine é definido como MySQL ou MariaDB:

    • utf8

    • gbk

    • latin1

    • utf8mb4

  • Valores válidos quando Engine é definido como SQLServer:

    • Chinese_PRC_CI_AS

    • Chinese_PRC_CS_AS

    • SQL_Latin1_General_CP1_CI_AS

    • SQL_Latin1_General_CP1_CS_AS

    • Chinese_PRC_BIN

  • Valores válidos quando Engine é definido como 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

DBName

String

Sim

Não

O nome do banco de dados.

O nome deve ser globalmente único.

Pode ter até 64 caracteres e pode conter letras minúsculas, dígitos e sublinhados (_). Deve começar com uma letra minúscula.

Valores de retorno

Fn::GetAtt

  • InnerPort: a porta privada da instância.

  • OrderId: o ID do pedido.

  • PublicConnectionString: o endpoint público da instância.

  • InnerIPAddress: o endereço IP privado da instância.

  • DBInstanceId: o ID da instância.

  • PublicIPAddress: o endereço IP público da instância.

  • PublicPort: a porta pública da instância.

  • InnerConnectionString: o endpoint privado da instância.

Exemplos

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
 AllocatePublicConnection:
  AllowedValues:
  - 'True'
  - 'true'
  - 'False'
  - 'false'
  Description: If true, allocate public connection automate.
  Type: Boolean
 ArchiveBackupKeepCount:
  Description: "The number of archived backups that can be retained. Default value:\
   \ 1. Valid values: \nThe value of this parameter ranges from 1 to 31 when the\
   \ ArchiveBackupKeepPolicy \n parameter is set to ByMonth. \nThe value of this\
   \ parameter ranges from 1 to 7 when the ArchiveBackupKeepPolicy \n parameter\
   \ is set to ByWeek. \nNote You do not need to specify this parameter when the\
   \ ArchiveBackupKeepPolicy \nparameter is set to KeepAll."
  MaxValue: 31
  MinValue: 1
  Type: Number
 ArchiveBackupKeepPolicy:
  AllowedValues:
  - ByMonth
  - ByWeek
  - KeepAll
  Description: "The period for which to retain archived backups. The number of archived\
   \ backups that can \n be retained within the specified period is determined\
   \ by the ArchiveBackupKeepCount parameter. \n Default value: 0. Valid values:\
   \ \nByMonth \n ByWeek \n KeepAll"
  Type: String
 ArchiveBackupRetentionPeriod:
  Description: "The number of days for which to retain archived backups. \n The\
   \ default value 0 specifies not to enable the backup archiving function. Valid\
   \ values: 30 to 1095."
  MaxValue: 1095
  MinValue: 30
  Type: Number
 AutoPay:
  AllowedValues:
  - 'True'
  - 'true'
  - 'False'
  - 'false'
  Default: true
  Description: Automatic Payment. Default is true.
  Type: Boolean
 AutoRenew:
  AllowedValues:
  - 'True'
  - 'true'
  - 'False'
  - 'false'
  Default: false
  Description: Auto renew the prepay instance. If the period type is by year, it
   will renew by year, else it will renew by month.
  Type: Boolean
 BackUpCategory:
  AllowedValues:
  - Flash
  - Standard
  Description: "Specifies whether to enable the second-level backup function. This\
   \ function allows a backup \nto be completed within seconds. Valid values: \n\
   Flash: specifies to enable the second-level backup function. \n Standard: specifies\
   \ to disable the second-level backup function."
  Type: String
 BackupPolicyMode:
  AllowedValues:
  - DataBackupPolicy
  - LogBackupPolicy
  Description: "Backup type, \nDataBackupPolicy: data backup \nLogBackupPolicy:\
   \ log backup"
  Type: String
 BackupRetentionPeriod:
  Default: 7
  Description: 'The retention period of the data backup. Value range: 7 to 730.
   The default value is the original value. Note When the BackupPolicyMode parameter
   is set to LogBackupPolicy, this parameter is required.'
  Type: Number
 Category:
  AllowedValues:
  - Basic
  - HighAvailability
  - AlwaysOn
  - Finance
  Description: 'The edition of the instance. Valid values:

   Basic: specifies to use the Basic Edition.

   HighAvailability: specifies to use the High-availability Edition.

   AlwaysOn: specifies to use the Cluster Edition.

   Finance: specifies to use the Enterprise Edition.'
  Type: String
 CommodityCode:
  AllowedValues:
  - rds
  - bards
  - rords
  Default: rds
  Description: The CommodityCode of the order.
  Type: String
 CompressType:
  Description: "The format used to compress backups. Valid values: \n 1: The zlib\
   \ tool is used to compress backups into .tar.gz files. \n 4: The QuickLZ tool\
   \ is used to compress backups into .xb.gz files. \nThis compression format is\
   \ supported only when the instance runs MySQL 5.6 or 5.7. \nIt can be used to\
   \ restore individual databases and tables. \n 8: The QuickLZ tool is used to\
   \ compress backups into .xb.gz files. \n This compression format is supported\
   \ only when the instance runs MySQL 8.0. \nIt cannot be used to restore individual\
   \ databases or tables."
  Type: Number
 ConnectionMode:
  Description: 'Connection Mode for database instance,support ''Standard'' and ''Safe''
   mode. Default is RDS system assigns. '
  Type: String
 ConnectionStringPrefix:
  AllowedPattern: '[a-zA-Z0-9-]{8.64}'
  Description: "The prefix of the endpoint. \nOnly the prefix of the CurrentConnectionString\
   \ parameter value can be modified.\nThe prefix must be 8 to 64 characters in\
   \ length and can contain letters, digits, and hyphens (-). "
  Type: String
 ConnectionStringType:
  AllowedValues:
  - Inner
  - Public
  Default: Inner
  Description: 'The endpoint type of the instance, allow values: Inner, Public'
  Type: String
 CouponCode:
  Description: The coupon code of the order.
  Type: String
 DBInstanceClass:
  Description: Database instance type. Refer the RDS database instance type reference,
   such as 'rds.mys2.large', 'rds.mss1.large', 'rds.pg.s1.small' etc
  Type: String
 DBInstanceDescription:
  Description: Description of created database instance.
  Type: String
 DBInstanceNetType:
  AllowedValues:
  - Internet
  - Intranet
  Default: Intranet
  Description: Database instance net type, default is Intranet.Internet for public
   access, Intranet for private access.
  Type: String
 DBInstanceStorage:
  Description: Database instance storage size. mysql is [5,1000]. sql server 2008r2
   is [10,1000], sql server 2012/2012_web/2016-web is [20,1000]. PostgreSQL and
   PPAS is [5,2000]. Increased every 5 GB, Unit in GB
  Type: Number
 DBInstanceStorageType:
  Description: 'The storage type of the instance. Valid values:

   local_ssd: specifies to use local SSDs. This is the recommended storage type.

   cloud_ssd: specifies to use standard SSDs.

   cloud_essd: specifies to use enhanced SSDs.'
  Type: String
 DBIsIgnoreCase:
  Description: 'Specifies whether table names are case-sensitive. Valid values:

   1: Table names are not case-sensitive. This is the default value.

   0: Table names are case-sensitive.'
  Type: Number
 DBMappings:
  Description: Database mappings to attach to db instance.
  Type: Json
 DBParamGroupId:
  Description: The ID of the parameter template used by the instance.
  Type: String
 DBTimeZone:
  Description: 'The UTC time zone of the instance. Valid values: -12:00 to +12:00.
   The time zone must be an integer value such as +08:00. Values such as +08:30
   are not allowed.'
  Type: String
 DedicatedHostGroupId:
  Description: The ID of the host group to which the instance belongs if you create
   an instance in a host group.
  Type: String
 EnableBackupLog:
  AllowedValues:
  - 'True'
  - 'true'
  - 'False'
  - 'false'
  Description: "Specifies whether to enable the log backup function. Valid values:\
   \ \nTrue: specifies to enable the log backup function. \nFalse: specifies to\
   \ disable the log backup function. \nNote You must specify this parameter when\
   \ the BackupPolicyMode parameter is set to LogBackupPolicy."
  Type: Boolean
 EncryptionKey:
  Description: The ID of the encryption key that is used to encrypt data on SSDs
   in the region. You can view the encryption key ID in the Key Management Service
   (KMS) console. You can also create an encryption key.
  Type: String
 Engine:
  AllowedValues:
  - MySQL
  - SQLServer
  - PostgreSQL
  - PPAS
  - MariaDB
  Description: Database instance engine type. Support MySQL/SQLServer/PostgreSQL/PPAS/MariaDB
   now.
  Type: String
 EngineVersion:
  Description: 'Database instance version of the relative engine type.Support MySQL:
   5.5/5.6/5.7/8.0;

   SQLServer: 2008r2/2012/2012_ent_ha/2012_std_ha/2012_web/2016_ent_ha/2016_std_ha/2016_web/2017_std_ha/2017_ent;

   PostgreSQL: 9.4/10.0/11.0/12.0;

   PPAS: 9.3/10.0;

   MariaDB: 10.3.'
  Type: String
 HighSpaceUsageProtection:
  AllowedValues:
  - Enable
  - Disable
  Description: "Specifies whether to forcibly delete log backup files when the space\
   \ usage of the \n instance exceeds 80% or the remaining space is less than 5\
   \ GB. Valid values: \n Enable and Disable. You can retain the default value.\
   \ Note You must specify \n this parameter when the BackupPolicyMode parameter\
   \ is set to LogBackupPolicy."
  Type: String
 LocalLogRetentionHours:
  Description: "The number of hours for which to retain log backup files on the\
   \ instance. \nValid values: 0 to 168. The value 0 specifies not to retain log\
   \ backup files on the instance. \nYou can retain the default value. Note You\
   \ must specify this parameter when the BackupPolicyMode \nparameter is set to\
   \ LogBackupPolicy."
  MaxValue: 168
  MinValue: 0
  Type: Number
 LocalLogRetentionSpace:
  Description: "The maximum percentage of space that is allowed to store log backup\
   \ files on the instance. \n If the space usage for log backup files exceeds\
   \ this percentage, the system deletes earlier \n log backup files until the\
   \ space usage falls below this percentage. Valid values:0 to 50. \n You can\
   \ retain the default value. Note You must specify this parameter when the \n\
   \ BackupPolicyMode parameter is set to LogBackupPolicy."
  MaxValue: 50
  MinValue: 0
  Type: Number
 LogBackupFrequency:
  Description: "The frequency at which to back up logs. Valid values: \nThe value\
   \ LogInterval specifies to back up logs every 30 minutes. \n The default value\
   \ of this parameter is the same as the data backup frequency. \nNote The value\
   \ LogInterval is supported only when the instance runs SQL Server."
  Type: String
 LogBackupLocalRetentionNumber:
  Description: "The number of log backup files that can be retained on the instance.\
   \ \nDefault value: 60. Valid values: 6 to 100."
  MaxValue: 100
  MinValue: 6
  Type: Number
 LogBackupRetentionPeriod:
  Description: "The number of days for which to retain log backup files. Valid values:\
   \ 7 to 730. The log backup \n retention period cannot be longer than the data\
   \ backup retention period.Note If you enable the log \n backup function, you\
   \ can specify the log backup retention period. This applies only when the \n\
   \ instance runs MySQL, PostgreSQL, or PPAS."
  MaxValue: 730
  MinValue: 7
  Type: Number
 MaintainTime:
  Description: The period during which the maintenance performs. The format is HH:mmZ-HH:mmZ.
  Type: String
 MasterUserPassword:
  Description: 'The master password for the database instance. '
  MaxLength: 32
  MinLength: 8
  Type: String
 MasterUserType:
  AllowedValues:
  - Normal
  - Super
  - Sysadmin
  Default: Normal
  Description: "Privilege type of account.\n Normal: Common privilege. \n Super:\
   \ High privilege. \nSysadmin: Super privileges (SA) (only supported by SQL Server)\n\
   The default value is Normal."
  Type: String
 MasterUsername:
  Description: 'The master user name for the database instance. '
  Type: String
 MultiAZ:
  AllowedValues:
  - 'True'
  - 'true'
  - 'False'
  - 'false'
  Default: false
  Description: 'Specifies if the database instance is a multiple Availability Zone
   deployment. '
  Type: Boolean
 Period:
  Default: 1
  Description: Prepaid time period. While choose by pay by month, it could be from
   1 to 9. While choose pay by year, it could be from 1 to 3.
  MaxValue: 9
  MinValue: 1
  Type: Number
 PeriodType:
  AllowedValues:
  - Month
  - Year
  Default: Month
  Description: Charge period for created instances.
  Type: String
 Port:
  Description: The port of the database service.
  MaxValue: 65535
  MinValue: 1
  Type: Number
 PreferredBackupPeriod:
  Description: The backup period. Separate multiple values with commas (,). The
   default value is the original value. Valid values:Monday Tuesday Wednesday Thursday
   Friday Saturday Sunday Note When the BackupPolicyMode parameter is set to DataBackupPolicy,
   this parameter is required.
  Type: CommaDelimitedList
 PreferredBackupTime:
  Description: 'The time when the backup task is performed. Format: yyyy-MM-ddZ-HH:mm:ssZ.Note
   When the BackupPolicyMode parameter is set to DataBackupPolicy, this parameter
   is required.'
  Type: String
 PrivateIpAddress:
  Description: The private ip for created instance.
  Type: String
 Quantity:
  Default: 1
  Description: The number of instance to be created, default is 1, max number is
   99
  MaxValue: 99
  MinValue: 1
  Type: Number
 ReleasedKeepPolicy:
  AllowedValues:
  - Lastest
  - All
  Description: "The policy used to retain archived backups if the instance is released.\
   \ Default value: None. \n Valid values: \nLastest: Only the last archived backup\
   \ is retained. \n All: All of the archived backups are retained."
  Type: String
 ResourceGroupId:
  Description: Resource group id.
  Type: String
 RoleARN:
  Description: The Alibaba Cloud Resource Name (ARN) provided to the service account
   of the instance by your Alibaba Cloud account to connect to KMS. You can copy
   the ARN from the RAM console.
  Type: String
 SQLCollectorStatus:
  AllowedValues:
  - Enable
  - Disabled
  Description: "Specifies whether to enable or disable the SQL Explorer (SQL audit)\
   \ feature. \nValid values:Enable | Disabled."
  Type: String
 SSLSetting:
  AllowedValues:
  - Disabled
  - EnabledForPublicConnection
  - EnabledForInnerConnection
  Default: Disabled
  Description: 'Secure Sockets Layer (SSL) link setting of the instance. Valid values:

   Disabled: Disable SSL

   EnabledForPublicConnection: Public connection address will be protected by the
   SSL certificate. It requires AllocatePublicConnection is true.

   EnabledForInnerConnection: Private connection address will be protected by the
   SSL certificate.

   Default value is Disabled.'
  Type: String
 SecurityGroupId:
  Description: "The ID of the ECS security groups. \nEach RDS instance can be associated\
   \ with up to three ECS security groups. \nYou must separate them with commas\
   \ (,). \nTo delete an ECS Security group, leave this parameter empty. \n"
  Type: String
 SlaveZoneIds:
  Description: List of slave zone ids can specify slave zone ids when creating the
   high-availability or enterprise edition instance. Meanwhile, VSwitchId needs
   to pass in the corresponding vswitch id to the slave zone by order. For example,
   ZoneId = "zone-a" and SlaveZoneIds = ["zone-c", "zone-b"], then the VSwitchId
   must be "vsw-zone-a,vsw-zone-c,vsw-zone-b". Of course, you can also choose automatic
   allocation, for example, ZoneId = "zone-a" and SlaveZoneIds = ["Auto", "Auto"],
   then the VSwitchId must be "vsw-zone-a,Auto,Auto". The list contains up to 2
   slave zone ids, separated by commas.
  MaxLength: 2
  Type: Json
 Tags:
  Description: 'The tags of an instance.

   You should input the information of the tag with the format of the Key-Value,
   such as {"key1":"value1","key2":"value2", ... "key5":"value5"}.

   At most 5 tags can be specified.

   Key

   It can be up to 64 characters in length.

   Cannot begin with aliyun.

   Cannot begin with http:// or https://.

   Cannot be a null string.

   Value

   It can be up to 128 characters in length.

   Cannot begin with aliyun.

   Cannot begin with http:// or https://.

   Can be a null string.'
  Type: Json
 TargetDedicatedHostIdForLog:
  Description: The ID of the host to which the instance belongs if you create a
   log instance in a host group.
  Type: String
 TargetDedicatedHostIdForMaster:
  Description: The ID of the host to which the instance belongs if you create a
   primary instance in a host group.
  Type: String
 TargetDedicatedHostIdForSlave:
  Description: The ID of the host to which the instance belongs if you create a
   secondary instance in a host group.
  Type: String
 VSwitchId:
  Description: The vSwitch id of created instance. For VPC network, the property
   is required.
  Type: String
 VpcId:
  Description: The VPC id of created database instance. For VPC network, the property
   is required.
  Type: String
 ZoneId:
  Description: selected zone to create database instance. You cannot set the ZoneId
   parameter if the MultiAZ parameter is set to true.
  Type: String
Resources:
 PrepayDBInstance:
  Properties:
   AllocatePublicConnection:
    Ref: AllocatePublicConnection
   ArchiveBackupKeepCount:
    Ref: ArchiveBackupKeepCount
   ArchiveBackupKeepPolicy:
    Ref: ArchiveBackupKeepPolicy
   ArchiveBackupRetentionPeriod:
    Ref: ArchiveBackupRetentionPeriod
   AutoPay:
    Ref: AutoPay
   AutoRenew:
    Ref: AutoRenew
   BackUpCategory:
    Ref: BackUpCategory
   BackupPolicyMode:
    Ref: BackupPolicyMode
   BackupRetentionPeriod:
    Ref: BackupRetentionPeriod
   Category:
    Ref: Category
   CommodityCode:
    Ref: CommodityCode
   CompressType:
    Ref: CompressType
   ConnectionMode:
    Ref: ConnectionMode
   ConnectionStringPrefix:
    Ref: ConnectionStringPrefix
   ConnectionStringType:
    Ref: ConnectionStringType
   CouponCode:
    Ref: CouponCode
   DBInstanceClass:
    Ref: DBInstanceClass
   DBInstanceDescription:
    Ref: DBInstanceDescription
   DBInstanceNetType:
    Ref: DBInstanceNetType
   DBInstanceStorage:
    Ref: DBInstanceStorage
   DBInstanceStorageType:
    Ref: DBInstanceStorageType
   DBIsIgnoreCase:
    Ref: DBIsIgnoreCase
   DBMappings:
    Ref: DBMappings
   DBParamGroupId:
    Ref: DBParamGroupId
   DBTimeZone:
    Ref: DBTimeZone
   DedicatedHostGroupId:
    Ref: DedicatedHostGroupId
   EnableBackupLog:
    Ref: EnableBackupLog
   EncryptionKey:
    Ref: EncryptionKey
   Engine:
    Ref: Engine
   EngineVersion:
    Ref: EngineVersion
   HighSpaceUsageProtection:
    Ref: HighSpaceUsageProtection
   LocalLogRetentionHours:
    Ref: LocalLogRetentionHours
   LocalLogRetentionSpace:
    Ref: LocalLogRetentionSpace
   LogBackupFrequency:
    Ref: LogBackupFrequency
   LogBackupLocalRetentionNumber:
    Ref: LogBackupLocalRetentionNumber
   LogBackupRetentionPeriod:
    Ref: LogBackupRetentionPeriod
   MaintainTime:
    Ref: MaintainTime
   MasterUserPassword:
    Ref: MasterUserPassword
   MasterUserType:
    Ref: MasterUserType
   MasterUsername:
    Ref: MasterUsername
   MultiAZ:
    Ref: MultiAZ
   Period:
    Ref: Period
   PeriodType:
    Ref: PeriodType
   Port:
    Ref: Port
   PreferredBackupPeriod:
    Ref: PreferredBackupPeriod
   PreferredBackupTime:
    Ref: PreferredBackupTime
   PrivateIpAddress:
    Ref: PrivateIpAddress
   Quantity:
    Ref: Quantity
   ReleasedKeepPolicy:
    Ref: ReleasedKeepPolicy
   ResourceGroupId:
    Ref: ResourceGroupId
   RoleARN:
    Ref: RoleARN
   SQLCollectorStatus:
    Ref: SQLCollectorStatus
   SSLSetting:
    Ref: SSLSetting
   SecurityGroupId:
    Ref: SecurityGroupId
   SlaveZoneIds:
    Ref: SlaveZoneIds
   Tags:
    Ref: Tags
   TargetDedicatedHostIdForLog:
    Ref: TargetDedicatedHostIdForLog
   TargetDedicatedHostIdForMaster:
    Ref: TargetDedicatedHostIdForMaster
   TargetDedicatedHostIdForSlave:
    Ref: TargetDedicatedHostIdForSlave
   VSwitchId:
    Ref: VSwitchId
   VpcId:
    Ref: VpcId
   ZoneId:
    Ref: ZoneId
  Type: ALIYUN::RDS::PrepayDBInstance
Outputs:
 DBInstanceId:
  Description: The instance id of created database instance.
  Value:
   Fn::GetAtt:
   - PrepayDBInstance
   - DBInstanceId
 InnerConnectionString:
  Description: DB instance connection url by Intranet.
  Value:
   Fn::GetAtt:
   - PrepayDBInstance
   - InnerConnectionString
 InnerIPAddress:
  Description: IP Address for created DB instance of Intranet.
  Value:
   Fn::GetAtt:
   - PrepayDBInstance
   - InnerIPAddress
 InnerPort:
  Description: Intranet port of created DB instance.
  Value:
   Fn::GetAtt:
   - PrepayDBInstance
   - InnerPort
 OrderId:
  Description: The order id list of created instance.
  Value:
   Fn::GetAtt:
   - PrepayDBInstance
   - OrderId
 PublicConnectionString:
  Description: DB instance connection url by Internet.
  Value:
   Fn::GetAtt:
   - PrepayDBInstance
   - PublicConnectionString
 PublicIPAddress:
  Description: IP Address for created DB instance of Internet.
  Value:
   Fn::GetAtt:
   - PrepayDBInstance
   - PublicIPAddress
 PublicPort:
  Description: Internet port of created DB instance.
  Value:
   Fn::GetAtt:
   - PrepayDBInstance
   - PublicPort
{
 "ROSTemplateFormatVersion": "2015-09-01",
 "Parameters": {
  "PeriodType": {
   "Type": "String",
   "Description": "Charge period for created instances.",
   "AllowedValues": [
    "Month",
    "Year"
   ],
   "Default": "Month"
  },
  "ResourceGroupId": {
   "Type": "String",
   "Description": "Resource group id."
  },
  "ArchiveBackupRetentionPeriod": {
   "Type": "Number",
   "Description": "The number of days for which to retain archived backups. \n The default value 0 specifies not to enable the backup archiving function. Valid values: 30 to 1095.",
   "MinValue": 30,
   "MaxValue": 1095
  },
  "DBTimeZone": {
   "Type": "String",
   "Description": "The UTC time zone of the instance. Valid values: -12:00 to +12:00. The time zone must be an integer value such as +08:00. Values such as +08:30 are not allowed."
  },
  "Port": {
   "Type": "Number",
   "Description": "The port of the database service.",
   "MinValue": 1,
   "MaxValue": 65535
  },
  "ArchiveBackupKeepCount": {
   "Type": "Number",
   "Description": "The number of archived backups that can be retained. Default value: 1. Valid values: \nThe value of this parameter ranges from 1 to 31 when the ArchiveBackupKeepPolicy \n parameter is set to ByMonth. \nThe value of this parameter ranges from 1 to 7 when the ArchiveBackupKeepPolicy \n parameter is set to ByWeek. \nNote You do not need to specify this parameter when the ArchiveBackupKeepPolicy \nparameter is set to KeepAll.",
   "MinValue": 1,
   "MaxValue": 31
  },
  "LogBackupRetentionPeriod": {
   "Type": "Number",
   "Description": "The number of days for which to retain log backup files. Valid values: 7 to 730. The log backup \n retention period cannot be longer than the data backup retention period.Note If you enable the log \n backup function, you can specify the log backup retention period. This applies only when the \n instance runs MySQL, PostgreSQL, or PPAS.",
   "MinValue": 7,
   "MaxValue": 730
  },
  "DBInstanceStorage": {
   "Type": "Number",
   "Description": "Database instance storage size. mysql is [5.1000]. sql server 2008r2 is [10.1000], sql server 2012/2012_web/2016-web is [20.1000]. PostgreSQL and PPAS is [5.2000]. Increased every 5 GB, Unit in GB"
  },
  "DBMappings": {
   "Type": "Json",
   "Description": "Database mappings to attach to db instance."
  },
  "ConnectionStringPrefix": {
   "Type": "String",
   "Description": "The prefix of the endpoint. \nOnly the prefix of the CurrentConnectionString parameter value can be modified.\nThe prefix must be 8 to 64 characters in length and can contain letters, digits, and hyphens (-). ",
   "AllowedPattern": "[a-zA-Z0-9-]{8.64}"
  },
  "MultiAZ": {
   "Type": "Boolean",
   "Description": "Specifies if the database instance is a multiple Availability Zone deployment. ",
   "AllowedValues": [
    "True",
    "true",
    "False",
    "false"
   ],
   "Default": false
  },
  "Engine": {
   "Type": "String",
   "Description": "Database instance engine type. Support MySQL/SQLServer/PostgreSQL/PPAS/MariaDB now.",
   "AllowedValues": [
    "MySQL",
    "SQLServer",
    "PostgreSQL",
    "PPAS",
    "MariaDB"
   ]
  },
  "Tags": {
   "Type": "Json",
   "Description": "The tags of an instance.\nYou should input the information of the tag with the format of the Key-Value, such as {\"key1\":\"value1\",\"key2\":\"value2\", ... \"key5\":\"value5\"}.\nAt most 5 tags can be specified.\nKey\nIt can be up to 64 characters in length.\nCannot begin with aliyun.\nCannot begin with http:// or https://.\nCannot be a null string.\nValue\nIt can be up to 128 characters in length.\nCannot begin with aliyun.\nCannot begin with http:// or https://.\nCan be a null string."
  },
  "DBInstanceDescription": {
   "Type": "String",
   "Description": "Description of created database instance."
  },
  "TargetDedicatedHostIdForMaster": {
   "Type": "String",
   "Description": "The ID of the host to which the instance belongs if you create a primary instance in a host group."
  },
  "EngineVersion": {
   "Type": "String",
   "Description": "Database instance version of the relative engine type.Support MySQL: 5.5/5.6/5.7/8.0;\nSQLServer: 2008r2/2012/2012_ent_ha/2012_std_ha/2012_web/2016_ent_ha/2016_std_ha/2016_web/2017_std_ha/2017_ent;\nPostgreSQL: 9.4/10.0/11.0/12.0;\nPPAS: 9.3/10.0;\nMariaDB: 10.3."
  },
  "DBInstanceClass": {
   "Type": "String",
   "Description": "Database instance type. Refer the RDS database instance type reference, such as 'rds.mys2.large', 'rds.mss1.large', 'rds.pg.s1.small' etc"
  },
  "ArchiveBackupKeepPolicy": {
   "Type": "String",
   "Description": "The period for which to retain archived backups. The number of archived backups that can \n be retained within the specified period is determined by the ArchiveBackupKeepCount parameter. \n Default value: 0. Valid values: \nByMonth \n ByWeek \n KeepAll",
   "AllowedValues": [
    "ByMonth",
    "ByWeek",
    "KeepAll"
   ]
  },
  "VSwitchId": {
   "Type": "String",
   "Description": "The vSwitch id of created instance. For VPC network, the property is required."
  },
  "BackupPolicyMode": {
   "Type": "String",
   "Description": "Backup type, \nDataBackupPolicy: data backup \nLogBackupPolicy: log backup",
   "AllowedValues": [
    "DataBackupPolicy",
    "LogBackupPolicy"
   ]
  },
  "Period": {
   "Type": "Number",
   "Description": "Prepaid time period. While choose by pay by month, it could be from 1 to 9. While choose pay by year, it could be from 1 to 3.",
   "MinValue": 1,
   "MaxValue": 9,
   "Default": 1
  },
  "LocalLogRetentionHours": {
   "Type": "Number",
   "Description": "The number of hours for which to retain log backup files on the instance. \nValid values: 0 to 168. The value 0 specifies not to retain log backup files on the instance. \nYou can retain the default value. Note You must specify this parameter when the BackupPolicyMode \nparameter is set to LogBackupPolicy.",
   "MinValue": 0,
   "MaxValue": 168
  },
  "HighSpaceUsageProtection": {
   "Type": "String",
   "Description": "Specifies whether to forcibly delete log backup files when the space usage of the \n instance exceeds 80% or the remaining space is less than 5 GB. Valid values: \n Enable and Disable. You can retain the default value. Note You must specify \n this parameter when the BackupPolicyMode parameter is set to LogBackupPolicy.",
   "AllowedValues": [
    "Enable",
    "Disable"
   ]
  },
  "RoleARN": {
   "Type": "String",
   "Description": "The Alibaba Cloud Resource Name (ARN) provided to the service account of the instance by your Alibaba Cloud account to connect to KMS. You can copy the ARN from the RAM console."
  },
  "MasterUserPassword": {
   "Type": "String",
   "Description": "The master password for the database instance. ",
   "MinLength": 8,
   "MaxLength": 32
  },
  "VpcId": {
   "Type": "String",
   "Description": "The VPC id of created database instance. For VPC network, the property is required."
  },
  "SSLSetting": {
   "Type": "String",
   "Description": "Secure Sockets Layer (SSL) link setting of the instance. Valid values:\nDisabled: Disable SSL\nEnabledForPublicConnection: Public connection address will be protected by the SSL certificate. It requires AllocatePublicConnection is true.\nEnabledForInnerConnection: Private connection address will be protected by the SSL certificate.\nDefault value is Disabled.",
   "AllowedValues": [
    "Disabled",
    "EnabledForPublicConnection",
    "EnabledForInnerConnection"
   ],
   "Default": "Disabled"
  },
  "MasterUsername": {
   "Type": "String",
   "Description": "The master user name for the database instance. "
  },
  "ConnectionMode": {
   "Type": "String",
   "Description": "Connection Mode for database instance,support 'Standard' and 'Safe' mode. Default is RDS system assigns. "
  },
  "LocalLogRetentionSpace": {
   "Type": "Number",
   "Description": "The maximum percentage of space that is allowed to store log backup files on the instance. \n If the space usage for log backup files exceeds this percentage, the system deletes earlier \n log backup files until the space usage falls below this percentage. Valid values:0 to 50. \n You can retain the default value. Note You must specify this parameter when the \n BackupPolicyMode parameter is set to LogBackupPolicy.",
   "MinValue": 0,
   "MaxValue": 50
  },
  "Category": {
   "Type": "String",
   "Description": "The edition of the instance. Valid values:\nBasic: specifies to use the Basic Edition.\nHighAvailability: specifies to use the High-availability Edition.\nAlwaysOn: specifies to use the Cluster Edition.\nFinance: specifies to use the Enterprise Edition.",
   "AllowedValues": [
    "Basic",
    "HighAvailability",
    "AlwaysOn",
    "Finance"
   ]
  },
  "PrivateIpAddress": {
   "Type": "String",
   "Description": "The private ip for created instance."
  },
  "TargetDedicatedHostIdForSlave": {
   "Type": "String",
   "Description": "The ID of the host to which the instance belongs if you create a secondary instance in a host group."
  },
  "DBInstanceNetType": {
   "Type": "String",
   "Description": "Database instance net type, default is Intranet.Internet for public access, Intranet for private access.",
   "AllowedValues": [
    "Internet",
    "Intranet"
   ],
   "Default": "Intranet"
  },
  "ReleasedKeepPolicy": {
   "Type": "String",
   "Description": "The policy used to retain archived backups if the instance is released. Default value: None. \n Valid values: \nLastest: Only the last archived backup is retained. \n All: All of the archived backups are retained.",
   "AllowedValues": [
    "Lastest",
    "All"
   ]
  },
  "DedicatedHostGroupId": {
   "Type": "String",
   "Description": "The ID of the host group to which the instance belongs if you create an instance in a host group."
  },
  "AutoRenew": {
   "Type": "Boolean",
   "Description": "Auto renew the prepay instance. If the period type is by year, it will renew by year, else it will renew by month.",
   "AllowedValues": [
    "True",
    "true",
    "False",
    "false"
   ],
   "Default": false
  },
  "EncryptionKey": {
   "Type": "String",
   "Description": "The ID of the encryption key that is used to encrypt data on SSDs in the region. You can view the encryption key ID in the Key Management Service (KMS) console. You can also create an encryption key."
  },
  "PreferredBackupPeriod": {
   "Type": "CommaDelimitedList",
   "Description": "The backup period. Separate multiple values with commas (,). The default value is the original value. Valid values:Monday Tuesday Wednesday Thursday Friday Saturday Sunday Note When the BackupPolicyMode parameter is set to DataBackupPolicy, this parameter is required."
  },
  "LogBackupLocalRetentionNumber": {
   "Type": "Number",
   "Description": "The number of log backup files that can be retained on the instance. \nDefault value: 60. Valid values: 6 to 100.",
   "MinValue": 6,
   "MaxValue": 100
  },
  "SlaveZoneIds": {
   "Type": "Json",
   "Description": "List of slave zone ids can specify slave zone ids when creating the high-availability or enterprise edition instance. Meanwhile, VSwitchId needs to pass in the corresponding vswitch id to the slave zone by order. For example, ZoneId = \"zone-a\" and SlaveZoneIds = [\"zone-c\", \"zone-b\"], then the VSwitchId must be \"vsw-zone-a,vsw-zone-c,vsw-zone-b\". Of course, you can also choose automatic allocation, for example, ZoneId = \"zone-a\" and SlaveZoneIds = [\"Auto\", \"Auto\"], then the VSwitchId must be \"vsw-zone-a,Auto,Auto\". The list contains up to 2 slave zone ids, separated by commas.",
   "MaxLength": 2
  },
  "DBIsIgnoreCase": {
   "Type": "Number",
   "Description": "Specifies whether table names are case-sensitive. Valid values:\n1: Table names are not case-sensitive. This is the default value.\n0: Table names are case-sensitive."
  },
  "CommodityCode": {
   "Type": "String",
   "Description": "The CommodityCode of the order.",
   "AllowedValues": [
    "rds",
    "bards",
    "rords"
   ],
   "Default": "rds"
  },
  "MaintainTime": {
   "Type": "String",
   "Description": "The period during which the maintenance performs. The format is HH:mmZ-HH:mmZ."
  },
  "DBParamGroupId": {
   "Type": "String",
   "Description": "The ID of the parameter template used by the instance."
  },
  "ZoneId": {
   "Type": "String",
   "Description": "selected zone to create database instance. You cannot set the ZoneId parameter if the MultiAZ parameter is set to true."
  },
  "TargetDedicatedHostIdForLog": {
   "Type": "String",
   "Description": "The ID of the host to which the instance belongs if you create a log instance in a host group."
  },
  "AllocatePublicConnection": {
   "Type": "Boolean",
   "Description": "If true, allocate public connection automate.",
   "AllowedValues": [
    "True",
    "true",
    "False",
    "false"
   ]
  },
  "PreferredBackupTime": {
   "Type": "String",
   "Description": "The time when the backup task is performed. Format: yyyy-MM-ddZ-HH:mm:ssZ.Note When the BackupPolicyMode parameter is set to DataBackupPolicy, this parameter is required."
  },
  "SecurityGroupId": {
   "Type": "String",
   "Description": "The ID of the ECS security groups. \nEach RDS instance can be associated with up to three ECS security groups. \nYou must separate them with commas (,). \nTo delete an ECS Security group, leave this parameter empty. \n"
  },
  "Quantity": {
   "Type": "Number",
   "Description": "The number of instance to be created, default is 1, max number is 99",
   "MinValue": 1,
   "MaxValue": 99,
   "Default": 1
  },
  "AutoPay": {
   "Type": "Boolean",
   "Description": "Automatic Payment. Default is false.",
   "AllowedValues": [
    "True",
    "true",
    "False",
    "false"
   ],
   "Default": true
  },
  "DBInstanceStorageType": {
   "Type": "String",
   "Description": "The storage type of the instance. Valid values:\nlocal_ssd: specifies to use local SSDs. This is the recommended storage type.\ncloud_ssd: specifies to use standard SSDs.\ncloud_essd: specifies to use enhanced SSDs."
  },
  "BackUpCategory": {
   "Type": "String",
   "Description": "Specifies whether to enable the second-level backup function. This function allows a backup \nto be completed within seconds. Valid values: \nFlash: specifies to enable the second-level backup function. \n Standard: specifies to disable the second-level backup function.",
   "AllowedValues": [
    "Flash",
    "Standard"
   ]
  },
  "CompressType": {
   "Type": "Number",
   "Description": "The format used to compress backups. Valid values: \n 1: The zlib tool is used to compress backups into .tar.gz files. \n 4: The QuickLZ tool is used to compress backups into .xb.gz files. \nThis compression format is supported only when the instance runs MySQL 5.6 or 5.7. \nIt can be used to restore individual databases and tables. \n 8: The QuickLZ tool is used to compress backups into .xb.gz files. \n This compression format is supported only when the instance runs MySQL 8.0. \nIt cannot be used to restore individual databases or tables."
  },
  "LogBackupFrequency": {
   "Type": "String",
   "Description": "The frequency at which to back up logs. Valid values: \nThe value LogInterval specifies to back up logs every 30 minutes. \n The default value of this parameter is the same as the data backup frequency. \nNote The value LogInterval is supported only when the instance runs SQL Server."
  },
  "ConnectionStringType": {
   "Type": "String",
   "Description": "The endpoint type of the instance, allow values: Inner, Public",
   "AllowedValues": [
    "Inner",
    "Public"
   ],
   "Default": "Inner"
  },
  "CouponCode": {
   "Type": "String",
   "Description": "The coupon code of the order."
  },
  "MasterUserType": {
   "Type": "String",
   "Description": "Privilege type of account.\n Normal: Common privilege. \n Super: High privilege. \nSysadmin: Super privileges (SA) (only supported by SQL Server)\nThe default value is Normal.",
   "AllowedValues": [
    "Normal",
    "Super",
    "Sysadmin"
   ],
   "Default": "Normal"
  },
  "EnableBackupLog": {
   "Type": "Boolean",
   "Description": "Specifies whether to enable the log backup function. Valid values: \nTrue: specifies to enable the log backup function. \nFalse: specifies to disable the log backup function. \nNote You must specify this parameter when the BackupPolicyMode parameter is set to LogBackupPolicy.",
   "AllowedValues": [
    "True",
    "true",
    "False",
    "false"
   ]
  },
  "SQLCollectorStatus": {
   "Type": "String",
   "Description": "Specifies whether to enable or disable the SQL Explorer (SQL audit) feature. \nValid values:Enable | Disabled.",
   "AllowedValues": [
    "Enable",
    "Disabled"
   ]
  },
  "BackupRetentionPeriod": {
   "Type": "Number",
   "Description": "The retention period of the data backup. Value range: 7 to 730. The default value is the original value. Note When the BackupPolicyMode parameter is set to LogBackupPolicy, this parameter is required.",
   "Default": 7
  }
 },
 "Resources": {
  "PrepayDBInstance": {
   "Type": "ALIYUN::RDS::PrepayDBInstance",
   "Properties": {
    "PeriodType": {
     "Ref": "PeriodType"
    },
    "ResourceGroupId": {
     "Ref": "ResourceGroupId"
    },
    "ArchiveBackupRetentionPeriod": {
     "Ref": "ArchiveBackupRetentionPeriod"
    },
    "DBTimeZone": {
     "Ref": "DBTimeZone"
    },
    "Port": {
     "Ref": "Port"
    },
    "ArchiveBackupKeepCount": {
     "Ref": "ArchiveBackupKeepCount"
    },
    "LogBackupRetentionPeriod": {
     "Ref": "LogBackupRetentionPeriod"
    },
    "DBInstanceStorage": {
     "Ref": "DBInstanceStorage"
    },
    "DBMappings": {
     "Ref": "DBMappings"
    },
    "ConnectionStringPrefix": {
     "Ref": "ConnectionStringPrefix"
    },
    "MultiAZ": {
     "Ref": "MultiAZ"
    },
    "Engine": {
     "Ref": "Engine"
    },
    "Tags": {
     "Ref": "Tags"
    },
    "DBInstanceDescription": {
     "Ref": "DBInstanceDescription"
    },
    "TargetDedicatedHostIdForMaster": {
     "Ref": "TargetDedicatedHostIdForMaster"
    },
    "EngineVersion": {
     "Ref": "EngineVersion"
    },
    "DBInstanceClass": {
     "Ref": "DBInstanceClass"
    },
    "ArchiveBackupKeepPolicy": {
     "Ref": "ArchiveBackupKeepPolicy"
    },
    "VSwitchId": {
     "Ref": "VSwitchId"
    },
    "BackupPolicyMode": {
     "Ref": "BackupPolicyMode"
    },
    "Period": {
     "Ref": "Period"
    },
    "LocalLogRetentionHours": {
     "Ref": "LocalLogRetentionHours"
    },
    "HighSpaceUsageProtection": {
     "Ref": "HighSpaceUsageProtection"
    },
    "RoleARN": {
     "Ref": "RoleARN"
    },
    "MasterUserPassword": {
     "Ref": "MasterUserPassword"
    },
    "VpcId": {
     "Ref": "VpcId"
    },
    "SSLSetting": {
     "Ref": "SSLSetting"
    },
    "MasterUsername": {
     "Ref": "MasterUsername"
    },
    "ConnectionMode": {
     "Ref": "ConnectionMode"
    },
    "LocalLogRetentionSpace": {
     "Ref": "LocalLogRetentionSpace"
    },
    "Category": {
     "Ref": "Category"
    },
    "PrivateIpAddress": {
     "Ref": "PrivateIpAddress"
    },
    "TargetDedicatedHostIdForSlave": {
     "Ref": "TargetDedicatedHostIdForSlave"
    },
    "DBInstanceNetType": {
     "Ref": "DBInstanceNetType"
    },
    "ReleasedKeepPolicy": {
     "Ref": "ReleasedKeepPolicy"
    },
    "DedicatedHostGroupId": {
     "Ref": "DedicatedHostGroupId"
    },
    "AutoRenew": {
     "Ref": "AutoRenew"
    },
    "EncryptionKey": {
     "Ref": "EncryptionKey"
    },
    "PreferredBackupPeriod": {
     "Ref": "PreferredBackupPeriod"
    },
    "LogBackupLocalRetentionNumber": {
     "Ref": "LogBackupLocalRetentionNumber"
    },
    "SlaveZoneIds": {
     "Ref": "SlaveZoneIds"
    },
    "DBIsIgnoreCase": {
     "Ref": "DBIsIgnoreCase"
    },
    "CommodityCode": {
     "Ref": "CommodityCode"
    },
    "MaintainTime": {
     "Ref": "MaintainTime"
    },
    "DBParamGroupId": {
     "Ref": "DBParamGroupId"
    },
    "ZoneId": {
     "Ref": "ZoneId"
    },
    "TargetDedicatedHostIdForLog": {
     "Ref": "TargetDedicatedHostIdForLog"
    },
    "AllocatePublicConnection": {
     "Ref": "AllocatePublicConnection"
    },
    "PreferredBackupTime": {
     "Ref": "PreferredBackupTime"
    },
    "SecurityGroupId": {
     "Ref": "SecurityGroupId"
    },
    "Quantity": {
     "Ref": "Quantity"
    },
    "AutoPay": {
     "Ref": "AutoPay"
    },
    "DBInstanceStorageType": {
     "Ref": "DBInstanceStorageType"
    },
    "BackUpCategory": {
     "Ref": "BackUpCategory"
    },
    "CompressType": {
     "Ref": "CompressType"
    },
    "LogBackupFrequency": {
     "Ref": "LogBackupFrequency"
    },
    "ConnectionStringType": {
     "Ref": "ConnectionStringType"
    },
    "CouponCode": {
     "Ref": "CouponCode"
    },
    "MasterUserType": {
     "Ref": "MasterUserType"
    },
    "EnableBackupLog": {
     "Ref": "EnableBackupLog"
    },
    "SQLCollectorStatus": {
     "Ref": "SQLCollectorStatus"
    },
    "BackupRetentionPeriod": {
     "Ref": "BackupRetentionPeriod"
    }
   }
  }
 },
 "Outputs": {
  "InnerConnectionString": {
   "Description": "DB instance connection url by Intranet.",
   "Value": {
    "Fn::GetAtt": [
     "PrepayDBInstance",
     "InnerConnectionString"
    ]
   }
  },
  "DBInstanceId": {
   "Description": "The instance id of created database instance.",
   "Value": {
    "Fn::GetAtt": [
     "PrepayDBInstance",
     "DBInstanceId"
    ]
   }
  },
  "InnerIPAddress": {
   "Description": "IP Address for created DB instance of Intranet.",
   "Value": {
    "Fn::GetAtt": [
     "PrepayDBInstance",
     "InnerIPAddress"
    ]
   }
  },
  "PublicConnectionString": {
   "Description": "DB instance connection url by Internet.",
   "Value": {
    "Fn::GetAtt": [
     "PrepayDBInstance",
     "PublicConnectionString"
    ]
   }
  },
  "PublicIPAddress": {
   "Description": "IP Address for created DB instance of Internet.",
   "Value": {
    "Fn::GetAtt": [
     "PrepayDBInstance",
     "PublicIPAddress"
    ]
   }
  },
  "OrderId": {
   "Description": "The order id list of created instance.",
   "Value": {
    "Fn::GetAtt": [
     "PrepayDBInstance",
     "OrderId"
    ]
   }
  },
  "PublicPort": {
   "Description": "Internet port of created DB instance.",
   "Value": {
    "Fn::GetAtt": [
     "PrepayDBInstance",
     "PublicPort"
    ]
   }
  },
  "InnerPort": {
   "Description": "Intranet port of created DB instance.",
   "Value": {
    "Fn::GetAtt": [
     "PrepayDBInstance",
     "InnerPort"
    ]
   }
  }
 }
}