{-# LANGUAGE TemplateHaskell #-} module AWS.RDS.Types.DBInstance ( DBInstance(..) , VpcSecurityGroupMembership(..) , DBParameterGroupStatus(..) , DBSecurityGroupMembership(..) , Endpoint(..) , OptionGroupMembership(..) , PendingModifiedValue(..) , CreateDBInstanceRequest(..) , DBInstanceClass , Engine , LicenseModel(..) , FinalSnapshot(..) , CreateReadReplicaRequest(..) , RestoreDBInstanceFromDBSnapshotRequest(..) ) where import AWS.Lib.FromText (Text, UTCTime, deriveFromText) import AWS.RDS.Types.DBSubnetGroup (DBSubnetGroup) data DBInstance = DBInstance { dbInstanceIops :: Maybe Int , dbInstanceBackupRetentionPeriod :: Int , dbInstanceStatus :: Maybe Text , dbInstanceMultiAZ :: Bool , dbInstanceVpcSecurityGroups :: [VpcSecurityGroupMembership] , dbInstanceIdentifier :: Text , dbInstancePreferredBackupWindow :: Text , dbInstancePreferredMaintenanceWindow :: Text , dbInstanceOptionGroupMembership :: Maybe OptionGroupMembership , dbInstanceAvailabilityZone :: Maybe Text , dbInstanceLatestRestorableTime :: Maybe UTCTime , dbInstanceReadReplicaDBInstanceIdentifiers :: [Text] , dbInstanceEngine :: Engine , dbInstancePendingModifiedValues :: [PendingModifiedValue] , dbInstanceCharacterSetName :: Maybe Text , dbInstanceLicenseModel :: LicenseModel , dbInstanceSubnetGroup :: Maybe DBSubnetGroup , dbInstanceDBParameterGroups :: [DBParameterGroupStatus] , dbInstanceEndpoint :: Maybe Endpoint , dbInstanceEngineVersion :: Text , dbInstanceReadReplicaSourceDBInstanceIdentifier :: Maybe Text , dbInstancePubliclyAccessible :: Bool , dbInstanceSecurityGroups :: [DBSecurityGroupMembership] , dbInstanceAutoMinorVersionUpgrade :: Bool , dbInstanceDBName :: Maybe Text , dbInstanceCreateTime :: Maybe UTCTime , dbInstanceAllocatedStorage :: Int -- ^ storage size in gigabytes , dbInstanceClass :: DBInstanceClass , dbInstanceMasterUsername :: Text } deriving (Show, Eq) data VpcSecurityGroupMembership = VpcSecurityGroupMembership { vpcSecurityGroupStatus :: Text , vpcSecurityGroupId :: Text } deriving (Show, Eq) data DBParameterGroupStatus = DBParameterGroupStatus { dbParameterGroupStatusStatus :: Text , dbParameterGroupStatusName :: Text } deriving (Show, Eq) data DBSecurityGroupMembership = DBSecurityGroupMembership { dbSecurityGroupMembershipStatus :: Text , dbSecurityGroupMembershipName :: Text } deriving (Show, Eq) data Endpoint = Endpoint { endpointPort :: Int , endpointAddress :: Maybe Text } deriving (Show, Eq) data OptionGroupMembership = OptionGroupMembership { optionGroupMembershipName :: Text , optionGroupMembershipStatus :: Text } deriving (Show, Eq) data PendingModifiedValue = PendingModifiedValueAllocatedStorage Int | PendingModifiedValueBackupRetentionPeriod Int | PendingModifiedValueDBInstanceClass Text | PendingModifiedValueEngineVersion Text | PendingModifiedValueIops Int | PendingModifiedValueMasterUserPassword Text | PendingModifiedValueMultiAZ Bool | PendingModifiedValuePort Int | PendingModifiedValueDBInstanceIdentifier Text deriving (Show, Eq) data CreateDBInstanceRequest = CreateDBInstanceRequest { createDBInstanceAllocatedStorage :: Int , createDBInstanceAutoMinorVersionUpgrade :: Maybe Bool , createDBInstanceAvailabilityZone :: Maybe Text , createDBInstanceBackupRetentionPeriod :: Maybe Int , createDBInstanceCharacterSetName :: Maybe Text , createDBInstanceClass :: DBInstanceClass , createDBInstanceIdentifier :: Text , createDBInstanceDBName :: Maybe Text , createDBInstanceDBParameterGroupName :: Maybe Text , createDBInstanceDBSecurityGroups :: [Text] , createDBInstanceDBSubnetGroupName :: Maybe Text , createDBInstanceEngine :: Engine , createDBInstanceEngineVersion :: Maybe Text , createDBInstanceIops :: Maybe Int , createDBInstanceLicenseModel :: Maybe LicenseModel , createDBInstanceMasterUserPassword :: Text , createDBInstanceMasterUsername :: Text , createDBInstanceMultiAZ :: Maybe Bool , createDBInstanceOptionGroupName :: Maybe Text , createDBInstancePort :: Maybe Int , createDBInstancePreferredBackupWindow :: Maybe Text , createDBInstancePreferredMaintenanceWindow :: Maybe Text , createDBInstancePubliclyAccessible :: Maybe Bool , createDBInstanceVpcSecurityGroupIds :: [Text] } deriving (Show, Eq) -- | db.t1.micro, db.m1.small, db.m1.medium, db.m1.large, -- db.m1.xlarge, db.m2.xlarge, db.m2.2xlarge, db.m2.4xlarge type DBInstanceClass = Text -- | mysql, oracle-se1, oracle-se, oracle-ee, sqlserver-ee, -- sqlserver-se, sqlserver-ex, sqlserver-web type Engine = Text data LicenseModel = LicenseIncluded | BringYourOwnLicense | GeneralPublicLicense deriving (Read, Eq) instance Show LicenseModel where show LicenseIncluded = "license-included" show BringYourOwnLicense = "bring-your-own-license" show GeneralPublicLicense = "general-public-license" data FinalSnapshot = FinalSnapshotIdentifier Text | SkipFinalSnapshot data CreateReadReplicaRequest = CreateReadReplicaRequest { createReadReplicaAutoMinorVersionUpgrade :: Maybe Bool , createReadReplicaAvailabilityZone :: Maybe Text , createReadReplicaDBInstanceClass :: DBInstanceClass , createReadReplicaDBInstanceIdentifier :: Text , createReadReplicaIops :: Maybe Int , createReadReplicaOptionGroupName :: Maybe Text , createReadReplicaPort :: Maybe Int , createReadReplicaPubliclyAccessible :: Maybe Bool , createReadReplicaSourceDBInstanceIdentifier :: Text } deriving (Show, Eq) data RestoreDBInstanceFromDBSnapshotRequest = RestoreDBInstanceFromDBSnapshotRequest { restoreDBInstanceFromDBSnapshotRequestAutoMinorVersionUpgrade :: Maybe Bool , restoreDBInstanceFromDBSnapshotRequestAvailabilityZone :: Maybe Text , restoreDBInstanceFromDBSnapshotRequestDBInstanceClass :: Maybe DBInstanceClass , restoreDBInstanceFromDBSnapshotRequestDBInstanceIdentifier :: Text , restoreDBInstanceFromDBSnapshotRequestDBName :: Maybe Text , restoreDBInstanceFromDBSnapshotRequestDBSnapshotIdentifier :: Text , restoreDBInstanceFromDBSnapshotRequestDBSubnetGroupName :: Maybe Text , restoreDBInstanceFromDBSnapshotRequestEngine :: Maybe Engine , restoreDBInstanceFromDBSnapshotRequestIops :: Maybe Int , restoreDBInstanceFromDBSnapshotRequestLicenseModel :: Maybe LicenseModel , restoreDBInstanceFromDBSnapshotRequestMultiAZ :: Maybe Bool , restoreDBInstanceFromDBSnapshotRequestOptionGroupName :: Maybe Text , restoreDBInstanceFromDBSnapshotRequestPort :: Maybe Int , restoreDBInstanceFromDBSnapshotRequestPubliclyAccessible :: Maybe Bool } deriving (Show, Eq) deriveFromText "LicenseModel" [ "license-included", "bring-your-own-license", "general-public-license" ]