amazonka-rds-0.3.4: gen/Network/AWS/RDS/CreateDBInstance.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- Module : Network.AWS.RDS.CreateDBInstance
-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
-- License : This Source Code Form is subject to the terms of
-- the Mozilla Public License, v. 2.0.
-- A copy of the MPL can be found in the LICENSE file or
-- you can obtain it at http://mozilla.org/MPL/2.0/.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : experimental
-- Portability : non-portable (GHC extensions)
--
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- | Creates a new DB instance.
--
-- <http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html>
module Network.AWS.RDS.CreateDBInstance
(
-- * Request
CreateDBInstance
-- ** Request constructor
, createDBInstance
-- ** Request lenses
, cdbiAllocatedStorage
, cdbiAutoMinorVersionUpgrade
, cdbiAvailabilityZone
, cdbiBackupRetentionPeriod
, cdbiCharacterSetName
, cdbiDBInstanceClass
, cdbiDBInstanceIdentifier
, cdbiDBName
, cdbiDBParameterGroupName
, cdbiDBSecurityGroups
, cdbiDBSubnetGroupName
, cdbiEngine
, cdbiEngineVersion
, cdbiIops
, cdbiKmsKeyId
, cdbiLicenseModel
, cdbiMasterUserPassword
, cdbiMasterUsername
, cdbiMultiAZ
, cdbiOptionGroupName
, cdbiPort
, cdbiPreferredBackupWindow
, cdbiPreferredMaintenanceWindow
, cdbiPubliclyAccessible
, cdbiStorageEncrypted
, cdbiStorageType
, cdbiTags
, cdbiTdeCredentialArn
, cdbiTdeCredentialPassword
, cdbiVpcSecurityGroupIds
-- * Response
, CreateDBInstanceResponse
-- ** Response constructor
, createDBInstanceResponse
-- ** Response lenses
, cdbirDBInstance
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.RDS.Types
import qualified GHC.Exts
data CreateDBInstance = CreateDBInstance
{ _cdbiAllocatedStorage :: Int
, _cdbiAutoMinorVersionUpgrade :: Maybe Bool
, _cdbiAvailabilityZone :: Maybe Text
, _cdbiBackupRetentionPeriod :: Maybe Int
, _cdbiCharacterSetName :: Maybe Text
, _cdbiDBInstanceClass :: Text
, _cdbiDBInstanceIdentifier :: Text
, _cdbiDBName :: Maybe Text
, _cdbiDBParameterGroupName :: Maybe Text
, _cdbiDBSecurityGroups :: List "member" Text
, _cdbiDBSubnetGroupName :: Maybe Text
, _cdbiEngine :: Text
, _cdbiEngineVersion :: Maybe Text
, _cdbiIops :: Maybe Int
, _cdbiKmsKeyId :: Maybe Text
, _cdbiLicenseModel :: Maybe Text
, _cdbiMasterUserPassword :: Text
, _cdbiMasterUsername :: Text
, _cdbiMultiAZ :: Maybe Bool
, _cdbiOptionGroupName :: Maybe Text
, _cdbiPort :: Maybe Int
, _cdbiPreferredBackupWindow :: Maybe Text
, _cdbiPreferredMaintenanceWindow :: Maybe Text
, _cdbiPubliclyAccessible :: Maybe Bool
, _cdbiStorageEncrypted :: Maybe Bool
, _cdbiStorageType :: Maybe Text
, _cdbiTags :: List "member" Tag
, _cdbiTdeCredentialArn :: Maybe Text
, _cdbiTdeCredentialPassword :: Maybe Text
, _cdbiVpcSecurityGroupIds :: List "member" Text
} deriving (Eq, Read, Show)
-- | 'CreateDBInstance' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'cdbiAllocatedStorage' @::@ 'Int'
--
-- * 'cdbiAutoMinorVersionUpgrade' @::@ 'Maybe' 'Bool'
--
-- * 'cdbiAvailabilityZone' @::@ 'Maybe' 'Text'
--
-- * 'cdbiBackupRetentionPeriod' @::@ 'Maybe' 'Int'
--
-- * 'cdbiCharacterSetName' @::@ 'Maybe' 'Text'
--
-- * 'cdbiDBInstanceClass' @::@ 'Text'
--
-- * 'cdbiDBInstanceIdentifier' @::@ 'Text'
--
-- * 'cdbiDBName' @::@ 'Maybe' 'Text'
--
-- * 'cdbiDBParameterGroupName' @::@ 'Maybe' 'Text'
--
-- * 'cdbiDBSecurityGroups' @::@ ['Text']
--
-- * 'cdbiDBSubnetGroupName' @::@ 'Maybe' 'Text'
--
-- * 'cdbiEngine' @::@ 'Text'
--
-- * 'cdbiEngineVersion' @::@ 'Maybe' 'Text'
--
-- * 'cdbiIops' @::@ 'Maybe' 'Int'
--
-- * 'cdbiKmsKeyId' @::@ 'Maybe' 'Text'
--
-- * 'cdbiLicenseModel' @::@ 'Maybe' 'Text'
--
-- * 'cdbiMasterUserPassword' @::@ 'Text'
--
-- * 'cdbiMasterUsername' @::@ 'Text'
--
-- * 'cdbiMultiAZ' @::@ 'Maybe' 'Bool'
--
-- * 'cdbiOptionGroupName' @::@ 'Maybe' 'Text'
--
-- * 'cdbiPort' @::@ 'Maybe' 'Int'
--
-- * 'cdbiPreferredBackupWindow' @::@ 'Maybe' 'Text'
--
-- * 'cdbiPreferredMaintenanceWindow' @::@ 'Maybe' 'Text'
--
-- * 'cdbiPubliclyAccessible' @::@ 'Maybe' 'Bool'
--
-- * 'cdbiStorageEncrypted' @::@ 'Maybe' 'Bool'
--
-- * 'cdbiStorageType' @::@ 'Maybe' 'Text'
--
-- * 'cdbiTags' @::@ ['Tag']
--
-- * 'cdbiTdeCredentialArn' @::@ 'Maybe' 'Text'
--
-- * 'cdbiTdeCredentialPassword' @::@ 'Maybe' 'Text'
--
-- * 'cdbiVpcSecurityGroupIds' @::@ ['Text']
--
createDBInstance :: Text -- ^ 'cdbiDBInstanceIdentifier'
-> Int -- ^ 'cdbiAllocatedStorage'
-> Text -- ^ 'cdbiDBInstanceClass'
-> Text -- ^ 'cdbiEngine'
-> Text -- ^ 'cdbiMasterUsername'
-> Text -- ^ 'cdbiMasterUserPassword'
-> CreateDBInstance
createDBInstance p1 p2 p3 p4 p5 p6 = CreateDBInstance
{ _cdbiDBInstanceIdentifier = p1
, _cdbiAllocatedStorage = p2
, _cdbiDBInstanceClass = p3
, _cdbiEngine = p4
, _cdbiMasterUsername = p5
, _cdbiMasterUserPassword = p6
, _cdbiDBName = Nothing
, _cdbiDBSecurityGroups = mempty
, _cdbiVpcSecurityGroupIds = mempty
, _cdbiAvailabilityZone = Nothing
, _cdbiDBSubnetGroupName = Nothing
, _cdbiPreferredMaintenanceWindow = Nothing
, _cdbiDBParameterGroupName = Nothing
, _cdbiBackupRetentionPeriod = Nothing
, _cdbiPreferredBackupWindow = Nothing
, _cdbiPort = Nothing
, _cdbiMultiAZ = Nothing
, _cdbiEngineVersion = Nothing
, _cdbiAutoMinorVersionUpgrade = Nothing
, _cdbiLicenseModel = Nothing
, _cdbiIops = Nothing
, _cdbiOptionGroupName = Nothing
, _cdbiCharacterSetName = Nothing
, _cdbiPubliclyAccessible = Nothing
, _cdbiTags = mempty
, _cdbiStorageType = Nothing
, _cdbiTdeCredentialArn = Nothing
, _cdbiTdeCredentialPassword = Nothing
, _cdbiStorageEncrypted = Nothing
, _cdbiKmsKeyId = Nothing
}
-- | The amount of storage (in gigabytes) to be initially allocated for the
-- database instance.
--
-- Type: Integer
--
-- MySQL
--
-- Constraints: Must be an integer from 5 to 3072.
--
-- PostgreSQL
--
-- Constraints: Must be an integer from 5 to 3072.
--
-- Oracle
--
-- Constraints: Must be an integer from 10 to 3072.
--
-- SQL Server
--
-- Constraints: Must be an integer from 200 to 1024 (Standard Edition and
-- Enterprise Edition) or from 20 to 1024 (Express Edition and Web Edition)
cdbiAllocatedStorage :: Lens' CreateDBInstance Int
cdbiAllocatedStorage =
lens _cdbiAllocatedStorage (\s a -> s { _cdbiAllocatedStorage = a })
-- | Indicates that minor engine upgrades will be applied automatically to the DB
-- instance during the maintenance window.
--
-- Default: 'true'
cdbiAutoMinorVersionUpgrade :: Lens' CreateDBInstance (Maybe Bool)
cdbiAutoMinorVersionUpgrade =
lens _cdbiAutoMinorVersionUpgrade
(\s a -> s { _cdbiAutoMinorVersionUpgrade = a })
-- | The EC2 Availability Zone that the database instance will be created in. For
-- information on regions and Availability Zones, see <http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html Regions and AvailabilityZones>.
--
-- Default: A random, system-chosen Availability Zone in the endpoint's
-- region.
--
-- Example: 'us-east-1d'
--
-- Constraint: The AvailabilityZone parameter cannot be specified if the
-- MultiAZ parameter is set to 'true'. The specified Availability Zone must be in
-- the same region as the current endpoint.
cdbiAvailabilityZone :: Lens' CreateDBInstance (Maybe Text)
cdbiAvailabilityZone =
lens _cdbiAvailabilityZone (\s a -> s { _cdbiAvailabilityZone = a })
-- | The number of days for which automated backups are retained. Setting this
-- parameter to a positive number enables backups. Setting this parameter to 0
-- disables automated backups.
--
-- Default: 1
--
-- Constraints:
--
-- Must be a value from 0 to 35 Cannot be set to 0 if the DB instance is a
-- source to Read Replicas
cdbiBackupRetentionPeriod :: Lens' CreateDBInstance (Maybe Int)
cdbiBackupRetentionPeriod =
lens _cdbiBackupRetentionPeriod
(\s a -> s { _cdbiBackupRetentionPeriod = a })
-- | For supported engines, indicates that the DB instance should be associated
-- with the specified CharacterSet.
cdbiCharacterSetName :: Lens' CreateDBInstance (Maybe Text)
cdbiCharacterSetName =
lens _cdbiCharacterSetName (\s a -> s { _cdbiCharacterSetName = a })
-- | The compute and memory capacity of the DB instance.
--
-- Valid Values: 'db.t1.micro | db.m1.small | db.m1.medium | db.m1.large |db.m1.xlarge | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge | db.m3.medium |db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.r3.large | db.r3.xlarge |db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small |db.t2.medium'
cdbiDBInstanceClass :: Lens' CreateDBInstance Text
cdbiDBInstanceClass =
lens _cdbiDBInstanceClass (\s a -> s { _cdbiDBInstanceClass = a })
-- | The DB instance identifier. This parameter is stored as a lowercase string.
--
-- Constraints:
--
-- Must contain from 1 to 63 alphanumeric characters or hyphens (1 to 15 for
-- SQL Server). First character must be a letter. Cannot end with a hyphen or
-- contain two consecutive hyphens. Example: 'mydbinstance'
cdbiDBInstanceIdentifier :: Lens' CreateDBInstance Text
cdbiDBInstanceIdentifier =
lens _cdbiDBInstanceIdentifier
(\s a -> s { _cdbiDBInstanceIdentifier = a })
-- | The meaning of this parameter differs according to the database engine you
-- use.
--
-- Type: String
--
-- MySQL
--
-- The name of the database to create when the DB instance is created. If this
-- parameter is not specified, no database is created in the DB instance.
--
-- Constraints:
--
-- Must contain 1 to 64 alphanumeric characters Cannot be a word reserved by
-- the specified database engine PostgreSQL
--
-- The name of the database to create when the DB instance is created. If this
-- parameter is not specified, no database is created in the DB instance.
--
-- Constraints:
--
-- Must contain 1 to 63 alphanumeric characters Must begin with a letter or an
-- underscore. Subsequent characters can be letters, underscores, or digits
-- (0-9). Cannot be a word reserved by the specified database engine Oracle
--
-- The Oracle System ID (SID) of the created DB instance.
--
-- Default: 'ORCL'
--
-- Constraints:
--
-- Cannot be longer than 8 characters SQL Server
--
-- Not applicable. Must be null.
cdbiDBName :: Lens' CreateDBInstance (Maybe Text)
cdbiDBName = lens _cdbiDBName (\s a -> s { _cdbiDBName = a })
-- | The name of the DB parameter group to associate with this DB instance. If
-- this argument is omitted, the default DBParameterGroup for the specified
-- engine will be used.
--
-- Constraints:
--
-- Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens
--
cdbiDBParameterGroupName :: Lens' CreateDBInstance (Maybe Text)
cdbiDBParameterGroupName =
lens _cdbiDBParameterGroupName
(\s a -> s { _cdbiDBParameterGroupName = a })
-- | A list of DB security groups to associate with this DB instance.
--
-- Default: The default DB security group for the database engine.
cdbiDBSecurityGroups :: Lens' CreateDBInstance [Text]
cdbiDBSecurityGroups =
lens _cdbiDBSecurityGroups (\s a -> s { _cdbiDBSecurityGroups = a })
. _List
-- | A DB subnet group to associate with this DB instance.
--
-- If there is no DB subnet group, then it is a non-VPC DB instance.
cdbiDBSubnetGroupName :: Lens' CreateDBInstance (Maybe Text)
cdbiDBSubnetGroupName =
lens _cdbiDBSubnetGroupName (\s a -> s { _cdbiDBSubnetGroupName = a })
-- | The name of the database engine to be used for this instance.
--
-- Valid Values: 'MySQL' | 'oracle-se1' | 'oracle-se' | 'oracle-ee' | 'sqlserver-ee' | 'sqlserver-se' | 'sqlserver-ex' | 'sqlserver-web' | 'postgres'
--
-- Not every database engine is available for every AWS region.
cdbiEngine :: Lens' CreateDBInstance Text
cdbiEngine = lens _cdbiEngine (\s a -> s { _cdbiEngine = a })
-- | The version number of the database engine to use.
--
-- The following are the database engines and major and minor versions that
-- are available with Amazon RDS. Not every database engine is available for
-- every AWS region.
--
-- MySQL
--
-- Version 5.1 (Only available in the following regions: ap-northeast-1,
-- ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): '5.1.73a | 5.1.73b' Version 5.5 (Only available in the following regions:
-- ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1,
-- us-west-1, us-west-2): ' 5.5.40 | 5.5.40a' Version 5.5 (Available in all
-- regions): ' 5.5.40b | 5.5.41' Version 5.6 (Available in all regions): '5.6.19a | 5.6.19b | 5.6.21 | 5.6.21b | 5.6.22' MySQL
--
-- Version 5.1 (Only available in the following regions: ap-northeast-1,
-- ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): '5.1.73a | 5.1.73b' Version 5.5 (Only available in the following regions:
-- ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1,
-- us-west-1, us-west-2): ' 5.5.40 | 5.5.40a' Version 5.5 (Available in all
-- regions): ' 5.5.40b | 5.5.41' Version 5.6 (Available in all regions): '5.6.19a | 5.6.19b | 5.6.21 | 5.6.21b | 5.6.22' MySQL
--
-- Version 5.1 (Only available in the following regions: ap-northeast-1,
-- ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): '5.1.73a | 5.1.73b' Version 5.5 (Only available in the following regions:
-- ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1,
-- us-west-1, us-west-2): ' 5.5.40 | 5.5.40a' Version 5.5 (Available in all
-- regions): ' 5.5.40b | 5.5.41' Version 5.6 (Available in all regions): '5.6.19a | 5.6.19b | 5.6.21 | 5.6.21b | 5.6.22' MySQL
--
-- Version 5.1 (Only available in the following regions: ap-northeast-1,
-- ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): '5.1.73a | 5.1.73b' Version 5.5 (Only available in the following regions:
-- ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1,
-- us-west-1, us-west-2): ' 5.5.40 | 5.5.40a' Version 5.5 (Available in all
-- regions): ' 5.5.40b | 5.5.41' Version 5.6 (Available in all regions): '5.6.19a | 5.6.19b | 5.6.21 | 5.6.21b | 5.6.22' Oracle Database Enterprise
-- Edition (oracle-ee)
--
-- Version 11.2 (Only available in the following regions: ap-northeast-1,
-- ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): '11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7' Version
-- 11.2 (Available in all regions): ' 11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 |11.2.0.4.v3' Oracle Database Enterprise Edition (oracle-ee)
--
-- Version 11.2 (Only available in the following regions: ap-northeast-1,
-- ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): '11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7' Version
-- 11.2 (Available in all regions): ' 11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 |11.2.0.4.v3' Oracle Database Standard Edition (oracle-se)
--
-- Version 11.2 (Only available in the following regions: us-west-1): '11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7' Version
-- 11.2 (Only available in the following regions: eu-central-1, us-west-1): '11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 | 11.2.0.4.v3' Oracle Database
-- Standard Edition (oracle-se)
--
-- Version 11.2 (Only available in the following regions: us-west-1): '11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7' Version
-- 11.2 (Only available in the following regions: eu-central-1, us-west-1): '11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 | 11.2.0.4.v3' Oracle Database
-- Standard Edition One (oracle-se1)
--
-- Version 11.2 (Only available in the following regions: us-west-1): '11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7' Version
-- 11.2 (Only available in the following regions: eu-central-1, us-west-1): '11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 | 11.2.0.4.v3' Oracle Database
-- Standard Edition One (oracle-se1)
--
-- Version 11.2 (Only available in the following regions: us-west-1): '11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7' Version
-- 11.2 (Only available in the following regions: eu-central-1, us-west-1): '11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 | 11.2.0.4.v3' PostgreSQL
--
-- Version 9.3 (Only available in the following regions: ap-northeast-1,
-- ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): '9.3.1 | 9.3.2' Version 9.3 (Available in all regions): ' 9.3.3 | 9.3.5' PostgreSQL
--
--
-- Version 9.3 (Only available in the following regions: ap-northeast-1,
-- ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): '9.3.1 | 9.3.2' Version 9.3 (Available in all regions): ' 9.3.3 | 9.3.5' Microsoft SQL Server Enterprise Edition (sqlserver-ee)
--
--
-- Version 10.50 (Only available in the following regions: eu-central-1,
-- us-west-1): ' 10.50.2789.0.v1' Version 11.00 (Only available in the following
-- regions: eu-central-1, us-west-1): ' 11.00.2100.60.v1' Microsoft SQL Server
-- Enterprise Edition (sqlserver-ee)
--
-- Version 10.50 (Only available in the following regions: eu-central-1,
-- us-west-1): ' 10.50.2789.0.v1' Version 11.00 (Only available in the following
-- regions: eu-central-1, us-west-1): ' 11.00.2100.60.v1' Microsoft SQL Server
-- Express Edition (sqlserver-ex)
--
-- Version 10.50 (Available in all regions): ' 10.50.2789.0.v1' Version 11.00
-- (Available in all regions): ' 11.00.2100.60.v1' Microsoft SQL Server Express
-- Edition (sqlserver-ex)
--
-- Version 10.50 (Available in all regions): ' 10.50.2789.0.v1' Version 11.00
-- (Available in all regions): ' 11.00.2100.60.v1' Microsoft SQL Server
-- Standard Edition (sqlserver-se)
--
-- Version 10.50 (Available in all regions): ' 10.50.2789.0.v1' Version 11.00
-- (Available in all regions): ' 11.00.2100.60.v1' Microsoft SQL Server
-- Standard Edition (sqlserver-se)
--
-- Version 10.50 (Available in all regions): ' 10.50.2789.0.v1' Version 11.00
-- (Available in all regions): ' 11.00.2100.60.v1' Microsoft SQL Server Web
-- Edition (sqlserver-web)
--
-- Version 10.50 (Available in all regions): ' 10.50.2789.0.v1' Version 11.00
-- (Available in all regions): ' 11.00.2100.60.v1' Microsoft SQL Server Web
-- Edition (sqlserver-web)
--
-- Version 10.50 (Available in all regions): ' 10.50.2789.0.v1' Version 11.00
-- (Available in all regions): ' 11.00.2100.60.v1'
cdbiEngineVersion :: Lens' CreateDBInstance (Maybe Text)
cdbiEngineVersion =
lens _cdbiEngineVersion (\s a -> s { _cdbiEngineVersion = a })
-- | The amount of Provisioned IOPS (input/output operations per second) to be
-- initially allocated for the DB instance.
--
-- Constraints: To use PIOPS, this value must be an integer greater than 1000.
cdbiIops :: Lens' CreateDBInstance (Maybe Int)
cdbiIops = lens _cdbiIops (\s a -> s { _cdbiIops = a })
-- | The KMS key identifier for an encrypted DB instance.
--
-- The KMS key identifier is the Amazon Resoure Name (ARN) for the KMS
-- encryption key. If you are creating a DB instance with the same AWS account
-- that owns the KMS encryption key used to encrypt the new DB instance, then
-- you can use the KMS key alias instead of the ARN for the KM encryption key.
--
-- If the 'StorageEncrypted' parameter is true, and you do not specify a value
-- for the 'KmsKeyId' parameter, then Amazon RDS will use your default encryption
-- key. AWS KMS creates the default encryption key for your AWS account. Your
-- AWS account has a different default encryption key for each AWS region.
cdbiKmsKeyId :: Lens' CreateDBInstance (Maybe Text)
cdbiKmsKeyId = lens _cdbiKmsKeyId (\s a -> s { _cdbiKmsKeyId = a })
-- | License model information for this DB instance.
--
-- Valid values: 'license-included' | 'bring-your-own-license' | 'general-public-license'
cdbiLicenseModel :: Lens' CreateDBInstance (Maybe Text)
cdbiLicenseModel = lens _cdbiLicenseModel (\s a -> s { _cdbiLicenseModel = a })
-- | The password for the master database user. Can be any printable ASCII
-- character except "/", """, or "@".
--
-- Type: String
--
-- MySQL
--
-- Constraints: Must contain from 8 to 41 characters.
--
-- Oracle
--
-- Constraints: Must contain from 8 to 30 characters.
--
-- SQL Server
--
-- Constraints: Must contain from 8 to 128 characters.
--
-- PostgreSQL
--
-- Constraints: Must contain from 8 to 128 characters.
cdbiMasterUserPassword :: Lens' CreateDBInstance Text
cdbiMasterUserPassword =
lens _cdbiMasterUserPassword (\s a -> s { _cdbiMasterUserPassword = a })
-- | The name of master user for the client DB instance.
--
-- MySQL
--
-- Constraints:
--
-- Must be 1 to 16 alphanumeric characters. First character must be a letter. Cannot be a reserved word for the chosen database engine.
-- Type: String
--
-- Oracle
--
-- Constraints:
--
-- Must be 1 to 30 alphanumeric characters. First character must be a letter. Cannot be a reserved word for the chosen database engine.
-- SQL Server
--
-- Constraints:
--
-- Must be 1 to 128 alphanumeric characters. First character must be a letter.
-- Cannot be a reserved word for the chosen database engine. PostgreSQL
--
-- Constraints:
--
-- Must be 1 to 63 alphanumeric characters. First character must be a letter. Cannot be a reserved word for the chosen database engine.
--
cdbiMasterUsername :: Lens' CreateDBInstance Text
cdbiMasterUsername =
lens _cdbiMasterUsername (\s a -> s { _cdbiMasterUsername = a })
-- | Specifies if the DB instance is a Multi-AZ deployment. You cannot set the
-- AvailabilityZone parameter if the MultiAZ parameter is set to true.
cdbiMultiAZ :: Lens' CreateDBInstance (Maybe Bool)
cdbiMultiAZ = lens _cdbiMultiAZ (\s a -> s { _cdbiMultiAZ = a })
-- | Indicates that the DB instance should be associated with the specified
-- option group.
--
-- Permanent options, such as the TDE option for Oracle Advanced Security TDE,
-- cannot be removed from an option group, and that option group cannot be
-- removed from a DB instance once it is associated with a DB instance
cdbiOptionGroupName :: Lens' CreateDBInstance (Maybe Text)
cdbiOptionGroupName =
lens _cdbiOptionGroupName (\s a -> s { _cdbiOptionGroupName = a })
-- | The port number on which the database accepts connections.
--
-- MySQL
--
-- Default: '3306'
--
-- Valid Values: '1150-65535'
--
-- Type: Integer
--
-- PostgreSQL
--
-- Default: '5432'
--
-- Valid Values: '1150-65535'
--
-- Type: Integer
--
-- Oracle
--
-- Default: '1521'
--
-- Valid Values: '1150-65535'
--
-- SQL Server
--
-- Default: '1433'
--
-- Valid Values: '1150-65535' except for '1434', '3389', '47001', '49152', and '49152'
-- through '49156'.
cdbiPort :: Lens' CreateDBInstance (Maybe Int)
cdbiPort = lens _cdbiPort (\s a -> s { _cdbiPort = a })
-- | The daily time range during which automated backups are created if automated
-- backups are enabled, using the 'BackupRetentionPeriod' parameter. For more
-- information, see <http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.BackingUpAndRestoringAmazonRDSInstances.html DB Instance Backups>.
--
-- Default: A 30-minute window selected at random from an 8-hour block of time
-- per region. See the Amazon RDS User Guide for the time blocks for each region
-- from which the default backup windows are assigned.
--
-- Constraints: Must be in the format 'hh24:mi-hh24:mi'. Times should be
-- Universal Time Coordinated (UTC). Must not conflict with the preferred
-- maintenance window. Must be at least 30 minutes.
cdbiPreferredBackupWindow :: Lens' CreateDBInstance (Maybe Text)
cdbiPreferredBackupWindow =
lens _cdbiPreferredBackupWindow
(\s a -> s { _cdbiPreferredBackupWindow = a })
-- | The weekly time range (in UTC) during which system maintenance can occur.
-- For more information, see <http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBMaintenance.html DB Instance Maintenance>.
--
-- Format: 'ddd:hh24:mi-ddd:hh24:mi'
--
-- Default: A 30-minute window selected at random from an 8-hour block of time
-- per region, occurring on a random day of the week. To see the time blocks
-- available, see <http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html Adjusting the Preferred Maintenance Window> in the Amazon RDS
-- User Guide.
--
-- Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun
--
-- Constraints: Minimum 30-minute window.
cdbiPreferredMaintenanceWindow :: Lens' CreateDBInstance (Maybe Text)
cdbiPreferredMaintenanceWindow =
lens _cdbiPreferredMaintenanceWindow
(\s a -> s { _cdbiPreferredMaintenanceWindow = a })
-- | Specifies the accessibility options for the DB instance. A value of true
-- specifies an Internet-facing instance with a publicly resolvable DNS name,
-- which resolves to a public IP address. A value of false specifies an internal
-- instance with a DNS name that resolves to a private IP address.
--
-- Default: The default behavior varies depending on whether a VPC has been
-- requested or not. The following list shows the default behavior in each case.
--
-- Default VPC: true VPC: false If no DB subnet group has been specified
-- as part of the request and the PubliclyAccessible value has not been set, the
-- DB instance will be publicly accessible. If a specific DB subnet group has
-- been specified as part of the request and the PubliclyAccessible value has
-- not been set, the DB instance will be private.
cdbiPubliclyAccessible :: Lens' CreateDBInstance (Maybe Bool)
cdbiPubliclyAccessible =
lens _cdbiPubliclyAccessible (\s a -> s { _cdbiPubliclyAccessible = a })
-- | Specifies whether the DB instance is encrypted.
--
-- Default: false
cdbiStorageEncrypted :: Lens' CreateDBInstance (Maybe Bool)
cdbiStorageEncrypted =
lens _cdbiStorageEncrypted (\s a -> s { _cdbiStorageEncrypted = a })
-- | Specifies the storage type to be associated with the DB instance.
--
-- Valid values: 'standard | gp2 | io1'
--
-- If you specify 'io1', you must also include a value for the 'Iops' parameter.
--
-- Default: 'io1' if the 'Iops' parameter is specified; otherwise 'standard'
cdbiStorageType :: Lens' CreateDBInstance (Maybe Text)
cdbiStorageType = lens _cdbiStorageType (\s a -> s { _cdbiStorageType = a })
cdbiTags :: Lens' CreateDBInstance [Tag]
cdbiTags = lens _cdbiTags (\s a -> s { _cdbiTags = a }) . _List
-- | The ARN from the Key Store with which to associate the instance for TDE
-- encryption.
cdbiTdeCredentialArn :: Lens' CreateDBInstance (Maybe Text)
cdbiTdeCredentialArn =
lens _cdbiTdeCredentialArn (\s a -> s { _cdbiTdeCredentialArn = a })
-- | The password for the given ARN from the Key Store in order to access the
-- device.
cdbiTdeCredentialPassword :: Lens' CreateDBInstance (Maybe Text)
cdbiTdeCredentialPassword =
lens _cdbiTdeCredentialPassword
(\s a -> s { _cdbiTdeCredentialPassword = a })
-- | A list of EC2 VPC security groups to associate with this DB instance.
--
-- Default: The default EC2 VPC security group for the DB subnet group's VPC.
cdbiVpcSecurityGroupIds :: Lens' CreateDBInstance [Text]
cdbiVpcSecurityGroupIds =
lens _cdbiVpcSecurityGroupIds (\s a -> s { _cdbiVpcSecurityGroupIds = a })
. _List
newtype CreateDBInstanceResponse = CreateDBInstanceResponse
{ _cdbirDBInstance :: Maybe DBInstance
} deriving (Eq, Read, Show)
-- | 'CreateDBInstanceResponse' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'cdbirDBInstance' @::@ 'Maybe' 'DBInstance'
--
createDBInstanceResponse :: CreateDBInstanceResponse
createDBInstanceResponse = CreateDBInstanceResponse
{ _cdbirDBInstance = Nothing
}
cdbirDBInstance :: Lens' CreateDBInstanceResponse (Maybe DBInstance)
cdbirDBInstance = lens _cdbirDBInstance (\s a -> s { _cdbirDBInstance = a })
instance ToPath CreateDBInstance where
toPath = const "/"
instance ToQuery CreateDBInstance where
toQuery CreateDBInstance{..} = mconcat
[ "AllocatedStorage" =? _cdbiAllocatedStorage
, "AutoMinorVersionUpgrade" =? _cdbiAutoMinorVersionUpgrade
, "AvailabilityZone" =? _cdbiAvailabilityZone
, "BackupRetentionPeriod" =? _cdbiBackupRetentionPeriod
, "CharacterSetName" =? _cdbiCharacterSetName
, "DBInstanceClass" =? _cdbiDBInstanceClass
, "DBInstanceIdentifier" =? _cdbiDBInstanceIdentifier
, "DBName" =? _cdbiDBName
, "DBParameterGroupName" =? _cdbiDBParameterGroupName
, "DBSecurityGroups" =? _cdbiDBSecurityGroups
, "DBSubnetGroupName" =? _cdbiDBSubnetGroupName
, "Engine" =? _cdbiEngine
, "EngineVersion" =? _cdbiEngineVersion
, "Iops" =? _cdbiIops
, "KmsKeyId" =? _cdbiKmsKeyId
, "LicenseModel" =? _cdbiLicenseModel
, "MasterUserPassword" =? _cdbiMasterUserPassword
, "MasterUsername" =? _cdbiMasterUsername
, "MultiAZ" =? _cdbiMultiAZ
, "OptionGroupName" =? _cdbiOptionGroupName
, "Port" =? _cdbiPort
, "PreferredBackupWindow" =? _cdbiPreferredBackupWindow
, "PreferredMaintenanceWindow" =? _cdbiPreferredMaintenanceWindow
, "PubliclyAccessible" =? _cdbiPubliclyAccessible
, "StorageEncrypted" =? _cdbiStorageEncrypted
, "StorageType" =? _cdbiStorageType
, "Tags" =? _cdbiTags
, "TdeCredentialArn" =? _cdbiTdeCredentialArn
, "TdeCredentialPassword" =? _cdbiTdeCredentialPassword
, "VpcSecurityGroupIds" =? _cdbiVpcSecurityGroupIds
]
instance ToHeaders CreateDBInstance
instance AWSRequest CreateDBInstance where
type Sv CreateDBInstance = RDS
type Rs CreateDBInstance = CreateDBInstanceResponse
request = post "CreateDBInstance"
response = xmlResponse
instance FromXML CreateDBInstanceResponse where
parseXML = withElement "CreateDBInstanceResult" $ \x -> CreateDBInstanceResponse
<$> x .@? "DBInstance"