<gh_stars>1-10
# generated by datamodel-codegen:
#   filename:  openapi.yaml
#   timestamp: 2021-12-31T02:53:24+00:00

from __future__ import annotations

from datetime import datetime
from enum import Enum
from typing import Annotated, Any, List, Optional

from pydantic import BaseModel


class DBClusterNotFoundFault(BaseModel):
    __root__: Any


class DBClusterRoleAlreadyExistsFault(DBClusterNotFoundFault):
    pass


class InvalidDBClusterStateFault(DBClusterNotFoundFault):
    pass


class DBClusterRoleQuotaExceededFault(DBClusterNotFoundFault):
    pass


class SubscriptionNotFoundFault(DBClusterNotFoundFault):
    pass


class SourceNotFoundFault(DBClusterNotFoundFault):
    pass


class DBInstanceNotFoundFault(DBClusterNotFoundFault):
    pass


class DBSnapshotNotFoundFault(DBClusterNotFoundFault):
    pass


class ResourceNotFoundFault(DBClusterNotFoundFault):
    pass


class DBParameterGroupNotFoundFault(DBClusterNotFoundFault):
    pass


class DBParameterGroupQuotaExceededFault(DBClusterNotFoundFault):
    pass


class DBParameterGroupAlreadyExistsFault(DBClusterNotFoundFault):
    pass


class DBClusterSnapshotAlreadyExistsFault(DBClusterNotFoundFault):
    pass


class DBClusterSnapshotNotFoundFault(DBClusterNotFoundFault):
    pass


class InvalidDBClusterSnapshotStateFault(DBClusterNotFoundFault):
    pass


class SnapshotQuotaExceededFault(DBClusterNotFoundFault):
    pass


class KMSKeyNotAccessibleFault(DBClusterNotFoundFault):
    pass


class String(BaseModel):
    __root__: str


class DBClusterAlreadyExistsFault(DBClusterNotFoundFault):
    pass


class InsufficientStorageClusterCapacityFault(DBClusterNotFoundFault):
    pass


class DBClusterQuotaExceededFault(DBClusterNotFoundFault):
    pass


class StorageQuotaExceededFault(DBClusterNotFoundFault):
    pass


class DBSubnetGroupNotFoundFault(DBClusterNotFoundFault):
    pass


class InvalidVPCNetworkStateFault(DBClusterNotFoundFault):
    pass


class InvalidDBSubnetGroupStateFault(DBClusterNotFoundFault):
    pass


class InvalidSubnet(DBClusterNotFoundFault):
    pass


class InvalidDBInstanceStateFault(DBClusterNotFoundFault):
    pass


class DBClusterParameterGroupNotFoundFault(DBClusterNotFoundFault):
    pass


class DBSubnetGroupDoesNotCoverEnoughAZs(DBClusterNotFoundFault):
    pass


class DBClusterEndpointQuotaExceededFault(DBClusterNotFoundFault):
    pass


class DBClusterEndpointAlreadyExistsFault(DBClusterNotFoundFault):
    pass


class DBInstanceAlreadyExistsFault(DBClusterNotFoundFault):
    pass


class InsufficientDBInstanceCapacityFault(DBClusterNotFoundFault):
    pass


class DBSecurityGroupNotFoundFault(DBClusterNotFoundFault):
    pass


class InstanceQuotaExceededFault(DBClusterNotFoundFault):
    pass


class ProvisionedIopsNotAvailableInAZFault(DBClusterNotFoundFault):
    pass


class OptionGroupNotFoundFault(DBClusterNotFoundFault):
    pass


class StorageTypeNotSupportedFault(DBClusterNotFoundFault):
    pass


class AuthorizationNotFoundFault(DBClusterNotFoundFault):
    pass


class DomainNotFoundFault(DBClusterNotFoundFault):
    pass


class DBSubnetGroupAlreadyExistsFault(DBClusterNotFoundFault):
    pass


class DBSubnetGroupQuotaExceededFault(DBClusterNotFoundFault):
    pass


class DBSubnetQuotaExceededFault(DBClusterNotFoundFault):
    pass


class EventSubscriptionQuotaExceededFault(DBClusterNotFoundFault):
    pass


class SubscriptionAlreadyExistFault(DBClusterNotFoundFault):
    pass


class SNSInvalidTopicFault(DBClusterNotFoundFault):
    pass


class SNSNoAuthorizationFault(DBClusterNotFoundFault):
    pass


class SNSTopicArnNotFoundFault(DBClusterNotFoundFault):
    pass


class SubscriptionCategoryNotFoundFault(DBClusterNotFoundFault):
    pass


class InvalidDBClusterEndpointStateFault(DBClusterNotFoundFault):
    pass


class DBClusterEndpointNotFoundFault(DBClusterNotFoundFault):
    pass


class InvalidDBParameterGroupStateFault(DBClusterNotFoundFault):
    pass


class DBSnapshotAlreadyExistsFault(DBClusterNotFoundFault):
    pass


class InvalidDBSubnetStateFault(DBClusterNotFoundFault):
    pass


class InvalidEventSubscriptionStateFault(DBClusterNotFoundFault):
    pass


class LogTypeList(BaseModel):
    __root__: List[String]


class InvalidDBSecurityGroupStateFault(DBClusterNotFoundFault):
    pass


class DBClusterParameterGroupNameMessage(BaseModel):
    DBClusterParameterGroupName: Optional[String] = None


class SharedSnapshotQuotaExceededFault(DBClusterNotFoundFault):
    pass


class DBUpgradeDependencyFailureFault(DBClusterNotFoundFault):
    pass


class CertificateNotFoundFault(DBClusterNotFoundFault):
    pass


class DBParameterGroupNameMessage(BaseModel):
    DBParameterGroupName: Optional[String] = None


class SubnetAlreadyInUse(DBClusterNotFoundFault):
    pass


class DBClusterRoleNotFoundFault(DBClusterNotFoundFault):
    pass


class InsufficientDBClusterCapacityFault(DBClusterNotFoundFault):
    pass


class InvalidDBSnapshotStateFault(DBClusterNotFoundFault):
    pass


class InvalidRestoreFault(DBClusterNotFoundFault):
    pass


class AddRoleToDBClusterMessage(BaseModel):
    DBClusterIdentifier: String
    RoleArn: String
    FeatureName: Optional[String] = None


class AddSourceIdentifierToSubscriptionMessage(BaseModel):
    SubscriptionName: String
    SourceIdentifier: String


class ApplyMethod(Enum):
    immediate = 'immediate'
    pending_reboot = 'pending-reboot'


class ApplyPendingMaintenanceActionMessage(BaseModel):
    ResourceIdentifier: String
    ApplyAction: String
    OptInType: String


class AttributeValueList(LogTypeList):
    pass


class AvailabilityZone(BaseModel):
    """
    Specifies an Availability Zone.
    """

    Name: Optional[String] = None


class AvailabilityZoneList(BaseModel):
    __root__: List[AvailabilityZone]


class AvailabilityZones(LogTypeList):
    pass


class Boolean(BaseModel):
    __root__: bool


class BooleanOptional(Boolean):
    pass


class CharacterSet(BaseModel):
    """
    Specifies a character set.
    """

    CharacterSetName: Optional[String] = None
    CharacterSetDescription: Optional[String] = None


class CloudwatchLogsExportConfiguration(BaseModel):
    """
    <p>The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance or DB cluster.</p> <p>The <code>EnableLogTypes</code> and <code>DisableLogTypes</code> arrays determine which logs will be exported (or not exported) to CloudWatch Logs.</p>
    """

    EnableLogTypes: Optional[LogTypeList] = None
    DisableLogTypes: Optional[LogTypeList] = None


class DBClusterParameterGroup(BaseModel):
    """
    <p>Contains the details of an Amazon Neptune DB cluster parameter group.</p> <p>This data type is used as a response element in the <a>DescribeDBClusterParameterGroups</a> action.</p>
    """

    DBClusterParameterGroupName: Optional[String] = None
    DBParameterGroupFamily: Optional[String] = None
    Description: Optional[String] = None
    DBClusterParameterGroupArn: Optional[String] = None


class DBParameterGroup(BaseModel):
    """
    <p>Contains the details of an Amazon Neptune DB parameter group.</p> <p>This data type is used as a response element in the <a>DescribeDBParameterGroups</a> action.</p>
    """

    DBParameterGroupName: Optional[String] = None
    DBParameterGroupFamily: Optional[String] = None
    Description: Optional[String] = None
    DBParameterGroupArn: Optional[String] = None


class StringList(LogTypeList):
    pass


class IntegerOptional(BaseModel):
    __root__: int


class VpcSecurityGroupIdList(LogTypeList):
    pass


class DBSecurityGroupNameList(LogTypeList):
    pass


class SubnetIdentifierList(LogTypeList):
    pass


class EventCategoriesList(LogTypeList):
    pass


class SourceIdsList(LogTypeList):
    pass


class TStamp(BaseModel):
    __root__: datetime


class ReadReplicaIdentifierList(LogTypeList):
    pass


class DBClusterEndpoint(BaseModel):
    """
    <p>This data type represents the information you need to connect to an Amazon Neptune DB cluster. This data type is used as a response element in the following actions:</p> <ul> <li> <p> <code>CreateDBClusterEndpoint</code> </p> </li> <li> <p> <code>DescribeDBClusterEndpoints</code> </p> </li> <li> <p> <code>ModifyDBClusterEndpoint</code> </p> </li> <li> <p> <code>DeleteDBClusterEndpoint</code> </p> </li> </ul> <p>For the data structure that represents Amazon Neptune DB instance endpoints, see <code>Endpoint</code>.</p>
    """

    DBClusterEndpointIdentifier: Optional[String] = None
    DBClusterIdentifier: Optional[String] = None
    DBClusterEndpointResourceIdentifier: Optional[String] = None
    Endpoint: Optional[String] = None
    Status: Optional[String] = None
    EndpointType: Optional[String] = None
    CustomEndpointType: Optional[String] = None
    StaticMembers: Optional[StringList] = None
    ExcludedMembers: Optional[StringList] = None
    DBClusterEndpointArn: Optional[String] = None


class DBClusterEndpointList(BaseModel):
    __root__: List[DBClusterEndpoint]


class DBClusterMember(BaseModel):
    """
    Contains information about an instance that is part of a DB cluster.
    """

    DBInstanceIdentifier: Optional[String] = None
    IsClusterWriter: Optional[Boolean] = None
    DBClusterParameterGroupStatus: Optional[String] = None
    PromotionTier: Optional[IntegerOptional] = None


class DBClusterOptionGroupStatus(BaseModel):
    """
    Not supported by Neptune.
    """

    DBClusterOptionGroupName: Optional[String] = None
    Status: Optional[String] = None


class DBClusterParameterGroupList(BaseModel):
    __root__: List[DBClusterParameterGroup]


class DBClusterRole(BaseModel):
    """
    Describes an Amazon Identity and Access Management (IAM) role that is associated with a DB cluster.
    """

    RoleArn: Optional[String] = None
    Status: Optional[String] = None
    FeatureName: Optional[String] = None


class Integer(IntegerOptional):
    pass


class DBClusterSnapshotAttribute(BaseModel):
    """
    <p>Contains the name and values of a manual DB cluster snapshot attribute.</p> <p>Manual DB cluster snapshot attributes are used to authorize other Amazon accounts to restore a manual DB cluster snapshot. For more information, see the <a>ModifyDBClusterSnapshotAttribute</a> API action.</p>
    """

    AttributeName: Optional[String] = None
    AttributeValues: Optional[AttributeValueList] = None


class DBClusterSnapshotAttributeList(BaseModel):
    __root__: List[DBClusterSnapshotAttribute]


class DBClusterSnapshotAttributesResult(BaseModel):
    """
    <p>Contains the results of a successful call to the <a>DescribeDBClusterSnapshotAttributes</a> API action.</p> <p>Manual DB cluster snapshot attributes are used to authorize other Amazon accounts to copy or restore a manual DB cluster snapshot. For more information, see the <a>ModifyDBClusterSnapshotAttribute</a> API action.</p>
    """

    DBClusterSnapshotIdentifier: Optional[String] = None
    DBClusterSnapshotAttributes: Optional[DBClusterSnapshotAttributeList] = None


class SupportedCharacterSetsList(BaseModel):
    __root__: List[CharacterSet]


class Endpoint(BaseModel):
    """
    <p>Specifies a connection endpoint.</p> <p>For the data structure that represents Amazon Neptune DB cluster endpoints, see <code>DBClusterEndpoint</code>.</p>
    """

    Address: Optional[String] = None
    Port: Optional[Integer] = None
    HostedZoneId: Optional[String] = None


class ReadReplicaDBInstanceIdentifierList(LogTypeList):
    pass


class ReadReplicaDBClusterIdentifierList(LogTypeList):
    pass


class DBInstanceStatusInfo(BaseModel):
    """
    Provides a list of status information for a DB instance.
    """

    StatusType: Optional[String] = None
    Normal: Optional[Boolean] = None
    Status: Optional[String] = None
    Message: Optional[String] = None


class DBParameterGroupList(BaseModel):
    __root__: List[DBParameterGroup]


class DBParameterGroupStatus(BaseModel):
    """
    <p>The status of the DB parameter group.</p> <p>This data type is used as a response element in the following actions:</p> <ul> <li> <p> <a>CreateDBInstance</a> </p> </li> <li> <p> <a>DeleteDBInstance</a> </p> </li> <li> <p> <a>ModifyDBInstance</a> </p> </li> <li> <p> <a>RebootDBInstance</a> </p> </li> </ul>
    """

    DBParameterGroupName: Optional[String] = None
    ParameterApplyStatus: Optional[String] = None


class DBSecurityGroupMembership(BaseModel):
    """
    Specifies membership in a designated DB security group.
    """

    DBSecurityGroupName: Optional[String] = None
    Status: Optional[String] = None


class DeleteDBClusterEndpointMessage(BaseModel):
    DBClusterEndpointIdentifier: String


class DeleteDBClusterMessage(BaseModel):
    DBClusterIdentifier: String
    SkipFinalSnapshot: Optional[Boolean] = None
    FinalDBSnapshotIdentifier: Optional[String] = None


class DeleteDBClusterParameterGroupMessage(BaseModel):
    DBClusterParameterGroupName: String


class DeleteDBClusterSnapshotMessage(BaseModel):
    DBClusterSnapshotIdentifier: String


class DeleteDBInstanceMessage(BaseModel):
    DBInstanceIdentifier: String
    SkipFinalSnapshot: Optional[Boolean] = None
    FinalDBSnapshotIdentifier: Optional[String] = None


class DeleteDBParameterGroupMessage(BaseModel):
    DBParameterGroupName: String


class DeleteDBSubnetGroupMessage(BaseModel):
    DBSubnetGroupName: String


class DeleteEventSubscriptionMessage(BaseModel):
    SubscriptionName: String


class DescribeDBClusterSnapshotAttributesMessage(BaseModel):
    DBClusterSnapshotIdentifier: String


class SourceType3(Enum):
    db_instance = 'db-instance'
    db_parameter_group = 'db-parameter-group'
    db_security_group = 'db-security-group'
    db_snapshot = 'db-snapshot'
    db_cluster = 'db-cluster'
    db_cluster_snapshot = 'db-cluster-snapshot'


class DescribeValidDBInstanceModificationsMessage(BaseModel):
    DBInstanceIdentifier: String


class DomainMembership(BaseModel):
    """
    An Active Directory Domain membership record associated with a DB instance.
    """

    Domain: Optional[String] = None
    Status: Optional[String] = None
    FQDN: Optional[String] = None
    IAMRoleName: Optional[String] = None


class Double(BaseModel):
    __root__: float


class DoubleOptional(Double):
    pass


class DoubleRange(BaseModel):
    """
    A range of double values.
    """

    From: Optional[Double] = None
    To: Optional[Double] = None


class DoubleRangeList(BaseModel):
    __root__: List[DoubleRange]


class Event(BaseModel):
    """
    This data type is used as a response element in the <a>DescribeEvents</a> action.
    """

    SourceIdentifier: Optional[String] = None
    SourceType: Optional[SourceType3] = None
    Message: Optional[String] = None
    EventCategories: Optional[EventCategoriesList] = None
    Date: Optional[TStamp] = None
    SourceArn: Optional[String] = None


class EventCategoriesMap(BaseModel):
    """
    Contains the results of a successful invocation of the <a>DescribeEventCategories</a> action.
    """

    SourceType: Optional[String] = None
    EventCategories: Optional[EventCategoriesList] = None


class EventCategoriesMapList(BaseModel):
    __root__: List[EventCategoriesMap]


class EventList(BaseModel):
    __root__: List[Event]


class FailoverDBClusterMessage(BaseModel):
    DBClusterIdentifier: Optional[String] = None
    TargetDBInstanceIdentifier: Optional[String] = None


class FilterValueList(LogTypeList):
    pass


class KeyList(LogTypeList):
    pass


class ModifyDBClusterEndpointMessage(BaseModel):
    DBClusterEndpointIdentifier: String
    EndpointType: Optional[String] = None
    StaticMembers: Optional[StringList] = None
    ExcludedMembers: Optional[StringList] = None


class ModifyDBClusterMessage(BaseModel):
    DBClusterIdentifier: String
    NewDBClusterIdentifier: Optional[String] = None
    ApplyImmediately: Optional[Boolean] = None
    BackupRetentionPeriod: Optional[IntegerOptional] = None
    DBClusterParameterGroupName: Optional[String] = None
    VpcSecurityGroupIds: Optional[VpcSecurityGroupIdList] = None
    Port: Optional[IntegerOptional] = None
    MasterUserPassword: Optional[String] = None
    OptionGroupName: Optional[String] = None
    PreferredBackupWindow: Optional[String] = None
    PreferredMaintenanceWindow: Optional[String] = None
    EnableIAMDatabaseAuthentication: Optional[BooleanOptional] = None
    CloudwatchLogsExportConfiguration: Optional[
        CloudwatchLogsExportConfiguration
    ] = None
    EngineVersion: Optional[String] = None
    DeletionProtection: Optional[BooleanOptional] = None
    CopyTagsToSnapshot: Optional[BooleanOptional] = None


class ModifyDBClusterSnapshotAttributeMessage(BaseModel):
    DBClusterSnapshotIdentifier: String
    AttributeName: String
    ValuesToAdd: Optional[AttributeValueList] = None
    ValuesToRemove: Optional[AttributeValueList] = None


class ModifyDBInstanceMessage(BaseModel):
    DBInstanceIdentifier: String
    AllocatedStorage: Optional[IntegerOptional] = None
    DBInstanceClass: Optional[String] = None
    DBSubnetGroupName: Optional[String] = None
    DBSecurityGroups: Optional[DBSecurityGroupNameList] = None
    VpcSecurityGroupIds: Optional[VpcSecurityGroupIdList] = None
    ApplyImmediately: Optional[Boolean] = None
    MasterUserPassword: Optional[String] = None
    DBParameterGroupName: Optional[String] = None
    BackupRetentionPeriod: Optional[IntegerOptional] = None
    PreferredBackupWindow: Optional[String] = None
    PreferredMaintenanceWindow: Optional[String] = None
    MultiAZ: Optional[BooleanOptional] = None
    EngineVersion: Optional[String] = None
    AllowMajorVersionUpgrade: Optional[Boolean] = None
    AutoMinorVersionUpgrade: Optional[BooleanOptional] = None
    LicenseModel: Optional[String] = None
    Iops: Optional[IntegerOptional] = None
    OptionGroupName: Optional[String] = None
    NewDBInstanceIdentifier: Optional[String] = None
    StorageType: Optional[String] = None
    TdeCredentialArn: Optional[String] = None
    TdeCredentialPassword: Optional[String] = None
    CACertificateIdentifier: Optional[String] = None
    Domain: Optional[String] = None
    CopyTagsToSnapshot: Optional[BooleanOptional] = None
    MonitoringInterval: Optional[IntegerOptional] = None
    DBPortNumber: Optional[IntegerOptional] = None
    PubliclyAccessible: Optional[BooleanOptional] = None
    MonitoringRoleArn: Optional[String] = None
    DomainIAMRoleName: Optional[String] = None
    PromotionTier: Optional[IntegerOptional] = None
    EnableIAMDatabaseAuthentication: Optional[BooleanOptional] = None
    EnablePerformanceInsights: Optional[BooleanOptional] = None
    PerformanceInsightsKMSKeyId: Optional[String] = None
    CloudwatchLogsExportConfiguration: Optional[
        CloudwatchLogsExportConfiguration
    ] = None
    DeletionProtection: Optional[BooleanOptional] = None


class ModifyDBSubnetGroupMessage(BaseModel):
    DBSubnetGroupName: String
    DBSubnetGroupDescription: Optional[String] = None
    SubnetIds: SubnetIdentifierList


class ModifyEventSubscriptionMessage(BaseModel):
    SubscriptionName: String
    SnsTopicArn: Optional[String] = None
    SourceType: Optional[String] = None
    EventCategories: Optional[EventCategoriesList] = None
    Enabled: Optional[BooleanOptional] = None


class OptionGroupMembership(BaseModel):
    """
    Not supported by Neptune.
    """

    OptionGroupName: Optional[String] = None
    Status: Optional[String] = None


class OrderableDBInstanceOption(BaseModel):
    """
    <p>Contains a list of available options for a DB instance.</p> <p> This data type is used as a response element in the <a>DescribeOrderableDBInstanceOptions</a> action.</p>
    """

    Engine: Optional[String] = None
    EngineVersion: Optional[String] = None
    DBInstanceClass: Optional[String] = None
    LicenseModel: Optional[String] = None
    AvailabilityZones: Optional[AvailabilityZoneList] = None
    MultiAZCapable: Optional[Boolean] = None
    ReadReplicaCapable: Optional[Boolean] = None
    Vpc: Optional[Boolean] = None
    SupportsStorageEncryption: Optional[Boolean] = None
    StorageType: Optional[String] = None
    SupportsIops: Optional[Boolean] = None
    SupportsEnhancedMonitoring: Optional[Boolean] = None
    SupportsIAMDatabaseAuthentication: Optional[Boolean] = None
    SupportsPerformanceInsights: Optional[Boolean] = None
    MinStorageSize: Optional[IntegerOptional] = None
    MaxStorageSize: Optional[IntegerOptional] = None
    MinIopsPerDbInstance: Optional[IntegerOptional] = None
    MaxIopsPerDbInstance: Optional[IntegerOptional] = None
    MinIopsPerGib: Optional[DoubleOptional] = None
    MaxIopsPerGib: Optional[DoubleOptional] = None


class OrderableDBInstanceOptionsList(BaseModel):
    __root__: List[OrderableDBInstanceOption]


class PendingCloudwatchLogsExports(BaseModel):
    """
    A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.
    """

    LogTypesToEnable: Optional[LogTypeList] = None
    LogTypesToDisable: Optional[LogTypeList] = None


class PendingMaintenanceAction(BaseModel):
    """
    Provides information about a pending maintenance action for a resource.
    """

    Action: Optional[String] = None
    AutoAppliedAfterDate: Optional[TStamp] = None
    ForcedApplyDate: Optional[TStamp] = None
    OptInStatus: Optional[String] = None
    CurrentApplyDate: Optional[TStamp] = None
    Description: Optional[String] = None


class PendingMaintenanceActionDetails(BaseModel):
    __root__: List[PendingMaintenanceAction]


class PromoteReadReplicaDBClusterMessage(BaseModel):
    DBClusterIdentifier: String


class Range(BaseModel):
    """
    A range of integer values.
    """

    From: Optional[Integer] = None
    To: Optional[Integer] = None
    Step: Optional[IntegerOptional] = None


class RangeList(BaseModel):
    __root__: List[Range]


class RebootDBInstanceMessage(BaseModel):
    DBInstanceIdentifier: String
    ForceFailover: Optional[BooleanOptional] = None


class RemoveRoleFromDBClusterMessage(BaseModel):
    DBClusterIdentifier: String
    RoleArn: String
    FeatureName: Optional[String] = None


class RemoveSourceIdentifierFromSubscriptionMessage(BaseModel):
    SubscriptionName: String
    SourceIdentifier: String


class RemoveTagsFromResourceMessage(BaseModel):
    ResourceName: String
    TagKeys: KeyList


class StartDBClusterMessage(BaseModel):
    DBClusterIdentifier: String


class StopDBClusterMessage(BaseModel):
    DBClusterIdentifier: String


class Subnet(BaseModel):
    """
    <p>Specifies a subnet.</p> <p> This data type is used as a response element in the <a>DescribeDBSubnetGroups</a> action.</p>
    """

    SubnetIdentifier: Optional[String] = None
    SubnetAvailabilityZone: Optional[AvailabilityZone] = None
    SubnetStatus: Optional[String] = None


class Timezone(BaseModel):
    """
    A time zone associated with a <a>DBInstance</a>.
    """

    TimezoneName: Optional[String] = None


class UpgradeTarget(BaseModel):
    """
    The version of the database engine that a DB instance can be upgraded to.
    """

    Engine: Optional[String] = None
    EngineVersion: Optional[String] = None
    Description: Optional[String] = None
    AutoUpgrade: Optional[Boolean] = None
    IsMajorVersionUpgrade: Optional[Boolean] = None


class ValidStorageOptions(BaseModel):
    """
    <p>Information about valid modifications that you can make to your DB instance.</p> <p>Contains the result of a successful call to the <a>DescribeValidDBInstanceModifications</a> action.</p>
    """

    StorageType: Optional[String] = None
    StorageSize: Optional[RangeList] = None
    ProvisionedIops: Optional[RangeList] = None
    IopsToStorageRatio: Optional[DoubleRangeList] = None


class VpcSecurityGroupMembership(BaseModel):
    """
    This data type is used as a response element for queries on VPC security group membership.
    """

    VpcSecurityGroupId: Optional[String] = None
    Status: Optional[String] = None


class Tag(BaseModel):
    """
    Metadata assigned to an Amazon Neptune resource consisting of a key-value pair.
    """

    Key: Optional[String] = None
    Value: Optional[String] = None


class CopyDBClusterParameterGroupResult(BaseModel):
    DBClusterParameterGroup: Optional[DBClusterParameterGroup] = None


class CopyDBParameterGroupResult(BaseModel):
    DBParameterGroup: Optional[DBParameterGroup] = None


class CreateDBClusterEndpointOutput(DBClusterEndpoint):
    """
    <p>This data type represents the information you need to connect to an Amazon Neptune DB cluster. This data type is used as a response element in the following actions:</p> <ul> <li> <p> <code>CreateDBClusterEndpoint</code> </p> </li> <li> <p> <code>DescribeDBClusterEndpoints</code> </p> </li> <li> <p> <code>ModifyDBClusterEndpoint</code> </p> </li> <li> <p> <code>DeleteDBClusterEndpoint</code> </p> </li> </ul> <p>For the data structure that represents Amazon Neptune DB instance endpoints, see <code>Endpoint</code>.</p>
    """

    pass


class CreateDBClusterParameterGroupResult(CopyDBClusterParameterGroupResult):
    pass


class CreateDBParameterGroupResult(CopyDBParameterGroupResult):
    pass


class DeleteDBClusterEndpointOutput(DBClusterEndpoint):
    """
    <p>This data type represents the information you need to connect to an Amazon Neptune DB cluster. This data type is used as a response element in the following actions:</p> <ul> <li> <p> <code>CreateDBClusterEndpoint</code> </p> </li> <li> <p> <code>DescribeDBClusterEndpoints</code> </p> </li> <li> <p> <code>ModifyDBClusterEndpoint</code> </p> </li> <li> <p> <code>DeleteDBClusterEndpoint</code> </p> </li> </ul> <p>For the data structure that represents Amazon RDS DB instance endpoints, see <code>Endpoint</code>.</p>
    """

    pass


class DBClusterEndpointMessage(BaseModel):
    Marker: Optional[String] = None
    DBClusterEndpoints: Optional[DBClusterEndpointList] = None


class Filter(BaseModel):
    """
    This type is not currently supported.
    """

    Name: String
    Values: FilterValueList


class DBClusterParameterGroupsMessage(BaseModel):
    Marker: Optional[String] = None
    DBClusterParameterGroups: Optional[DBClusterParameterGroupList] = None


class DescribeDBClusterSnapshotAttributesResult(BaseModel):
    DBClusterSnapshotAttributesResult: Optional[
        DBClusterSnapshotAttributesResult
    ] = None


class DBParameterGroupsMessage(BaseModel):
    Marker: Optional[String] = None
    DBParameterGroups: Optional[DBParameterGroupList] = None


class EventCategoriesMessage(BaseModel):
    EventCategoriesMapList: Optional[EventCategoriesMapList] = None


class EventsMessage(BaseModel):
    Marker: Optional[String] = None
    Events: Optional[EventList] = None


class OrderableDBInstanceOptionsMessage(BaseModel):
    OrderableDBInstanceOptions: Optional[OrderableDBInstanceOptionsList] = None
    Marker: Optional[String] = None


class ModifyDBClusterEndpointOutput(DBClusterEndpoint):
    """
    <p>This data type represents the information you need to connect to an Amazon Aurora DB cluster. This data type is used as a response element in the following actions:</p> <ul> <li> <p> <code>CreateDBClusterEndpoint</code> </p> </li> <li> <p> <code>DescribeDBClusterEndpoints</code> </p> </li> <li> <p> <code>ModifyDBClusterEndpoint</code> </p> </li> <li> <p> <code>DeleteDBClusterEndpoint</code> </p> </li> </ul> <p>For the data structure that represents Amazon RDS DB instance endpoints, see <code>Endpoint</code>.</p>
    """

    pass


class Parameter(BaseModel):
    """
    Specifies a parameter.
    """

    ParameterName: Optional[String] = None
    ParameterValue: Optional[String] = None
    Description: Optional[String] = None
    Source: Optional[String] = None
    ApplyType: Optional[String] = None
    DataType: Optional[String] = None
    AllowedValues: Optional[String] = None
    IsModifiable: Optional[Boolean] = None
    MinimumEngineVersion: Optional[String] = None
    ApplyMethod: Optional[ApplyMethod] = None


class ModifyDBClusterSnapshotAttributeResult(DescribeDBClusterSnapshotAttributesResult):
    pass


class EventSubscription(BaseModel):
    """
    Contains the results of a successful invocation of the <a>DescribeEventSubscriptions</a> action.
    """

    CustomerAwsId: Optional[String] = None
    CustSubscriptionId: Optional[String] = None
    SnsTopicArn: Optional[String] = None
    Status: Optional[String] = None
    SubscriptionCreationTime: Optional[String] = None
    SourceType: Optional[String] = None
    SourceIdsList: Optional[SourceIdsList] = None
    EventCategoriesList: Optional[EventCategoriesList] = None
    Enabled: Optional[Boolean] = None
    EventSubscriptionArn: Optional[String] = None


class TagList(BaseModel):
    __root__: List[Tag]


class AddTagsToResourceMessage(BaseModel):
    ResourceName: String
    Tags: TagList


class ResourcePendingMaintenanceActions(BaseModel):
    """
    Describes the pending maintenance actions for a resource.
    """

    ResourceIdentifier: Optional[String] = None
    PendingMaintenanceActionDetails: Optional[PendingMaintenanceActionDetails] = None


class CopyDBClusterParameterGroupMessage(BaseModel):
    SourceDBClusterParameterGroupIdentifier: String
    TargetDBClusterParameterGroupIdentifier: String
    TargetDBClusterParameterGroupDescription: String
    Tags: Optional[TagList] = None


class CopyDBClusterSnapshotMessage(BaseModel):
    SourceDBClusterSnapshotIdentifier: String
    TargetDBClusterSnapshotIdentifier: String
    KmsKeyId: Optional[String] = None
    PreSignedUrl: Optional[String] = None
    CopyTags: Optional[BooleanOptional] = None
    Tags: Optional[TagList] = None


class DBClusterSnapshot(BaseModel):
    """
    <p>Contains the details for an Amazon Neptune DB cluster snapshot</p> <p>This data type is used as a response element in the <a>DescribeDBClusterSnapshots</a> action.</p>
    """

    AvailabilityZones: Optional[AvailabilityZones] = None
    DBClusterSnapshotIdentifier: Optional[String] = None
    DBClusterIdentifier: Optional[String] = None
    SnapshotCreateTime: Optional[TStamp] = None
    Engine: Optional[String] = None
    AllocatedStorage: Optional[Integer] = None
    Status: Optional[String] = None
    Port: Optional[Integer] = None
    VpcId: Optional[String] = None
    ClusterCreateTime: Optional[TStamp] = None
    MasterUsername: Optional[String] = None
    EngineVersion: Optional[String] = None
    LicenseModel: Optional[String] = None
    SnapshotType: Optional[String] = None
    PercentProgress: Optional[Integer] = None
    StorageEncrypted: Optional[Boolean] = None
    KmsKeyId: Optional[String] = None
    DBClusterSnapshotArn: Optional[String] = None
    SourceDBClusterSnapshotArn: Optional[String] = None
    IAMDatabaseAuthenticationEnabled: Optional[Boolean] = None


class CopyDBParameterGroupMessage(BaseModel):
    SourceDBParameterGroupIdentifier: String
    TargetDBParameterGroupIdentifier: String
    TargetDBParameterGroupDescription: String
    Tags: Optional[TagList] = None


class CreateDBClusterEndpointMessage(BaseModel):
    DBClusterIdentifier: String
    DBClusterEndpointIdentifier: String
    EndpointType: String
    StaticMembers: Optional[StringList] = None
    ExcludedMembers: Optional[StringList] = None
    Tags: Optional[TagList] = None


class CreateDBClusterMessage(BaseModel):
    AvailabilityZones: Optional[AvailabilityZones] = None
    BackupRetentionPeriod: Optional[IntegerOptional] = None
    CharacterSetName: Optional[String] = None
    CopyTagsToSnapshot: Optional[BooleanOptional] = None
    DatabaseName: Optional[String] = None
    DBClusterIdentifier: String
    DBClusterParameterGroupName: Optional[String] = None
    VpcSecurityGroupIds: Optional[VpcSecurityGroupIdList] = None
    DBSubnetGroupName: Optional[String] = None
    Engine: String
    EngineVersion: Optional[String] = None
    Port: Optional[IntegerOptional] = None
    MasterUsername: Optional[String] = None
    MasterUserPassword: Optional[String] = None
    OptionGroupName: Optional[String] = None
    PreferredBackupWindow: Optional[String] = None
    PreferredMaintenanceWindow: Optional[String] = None
    ReplicationSourceIdentifier: Optional[String] = None
    Tags: Optional[TagList] = None
    StorageEncrypted: Optional[BooleanOptional] = None
    KmsKeyId: Optional[String] = None
    PreSignedUrl: Optional[String] = None
    EnableIAMDatabaseAuthentication: Optional[BooleanOptional] = None
    EnableCloudwatchLogsExports: Optional[LogTypeList] = None
    DeletionProtection: Optional[BooleanOptional] = None


class CreateDBClusterParameterGroupMessage(BaseModel):
    DBClusterParameterGroupName: String
    DBParameterGroupFamily: String
    Description: String
    Tags: Optional[TagList] = None


class CreateDBClusterSnapshotMessage(BaseModel):
    DBClusterSnapshotIdentifier: String
    DBClusterIdentifier: String
    Tags: Optional[TagList] = None


class CreateDBInstanceMessage(BaseModel):
    DBName: Optional[String] = None
    DBInstanceIdentifier: String
    AllocatedStorage: Optional[IntegerOptional] = None
    DBInstanceClass: String
    Engine: String
    MasterUsername: Optional[String] = None
    MasterUserPassword: Optional[String] = None
    DBSecurityGroups: Optional[DBSecurityGroupNameList] = None
    VpcSecurityGroupIds: Optional[VpcSecurityGroupIdList] = None
    AvailabilityZone: Optional[String] = None
    DBSubnetGroupName: Optional[String] = None
    PreferredMaintenanceWindow: Optional[String] = None
    DBParameterGroupName: Optional[String] = None
    BackupRetentionPeriod: Optional[IntegerOptional] = None
    PreferredBackupWindow: Optional[String] = None
    Port: Optional[IntegerOptional] = None
    MultiAZ: Optional[BooleanOptional] = None
    EngineVersion: Optional[String] = None
    AutoMinorVersionUpgrade: Optional[BooleanOptional] = None
    LicenseModel: Optional[String] = None
    Iops: Optional[IntegerOptional] = None
    OptionGroupName: Optional[String] = None
    CharacterSetName: Optional[String] = None
    PubliclyAccessible: Optional[BooleanOptional] = None
    Tags: Optional[TagList] = None
    DBClusterIdentifier: Optional[String] = None
    StorageType: Optional[String] = None
    TdeCredentialArn: Optional[String] = None
    TdeCredentialPassword: Optional[String] = None
    StorageEncrypted: Optional[BooleanOptional] = None
    KmsKeyId: Optional[String] = None
    Domain: Optional[String] = None
    CopyTagsToSnapshot: Optional[BooleanOptional] = None
    MonitoringInterval: Optional[IntegerOptional] = None
    MonitoringRoleArn: Optional[String] = None
    DomainIAMRoleName: Optional[String] = None
    PromotionTier: Optional[IntegerOptional] = None
    Timezone: Optional[String] = None
    EnableIAMDatabaseAuthentication: Optional[BooleanOptional] = None
    EnablePerformanceInsights: Optional[BooleanOptional] = None
    PerformanceInsightsKMSKeyId: Optional[String] = None
    EnableCloudwatchLogsExports: Optional[LogTypeList] = None
    DeletionProtection: Optional[BooleanOptional] = None


class CreateDBParameterGroupMessage(BaseModel):
    DBParameterGroupName: String
    DBParameterGroupFamily: String
    Description: String
    Tags: Optional[TagList] = None


class CreateDBSubnetGroupMessage(BaseModel):
    DBSubnetGroupName: String
    DBSubnetGroupDescription: String
    SubnetIds: SubnetIdentifierList
    Tags: Optional[TagList] = None


class CreateEventSubscriptionMessage(BaseModel):
    SubscriptionName: String
    SnsTopicArn: String
    SourceType: Optional[String] = None
    EventCategories: Optional[EventCategoriesList] = None
    SourceIds: Optional[SourceIdsList] = None
    Enabled: Optional[BooleanOptional] = None
    Tags: Optional[TagList] = None


class DBClusterOptionGroupMemberships(BaseModel):
    __root__: List[DBClusterOptionGroupStatus]


class DBClusterMemberList(BaseModel):
    __root__: List[DBClusterMember]


class VpcSecurityGroupMembershipList(BaseModel):
    __root__: List[VpcSecurityGroupMembership]


class DBClusterRoles(BaseModel):
    __root__: List[DBClusterRole]


class ParametersList(BaseModel):
    __root__: List[Parameter]


class DBClusterSnapshotList(BaseModel):
    __root__: List[DBClusterSnapshot]


class ValidUpgradeTargetList(BaseModel):
    __root__: List[UpgradeTarget]


class SupportedTimezonesList(BaseModel):
    __root__: List[Timezone]


class DBEngineVersion(BaseModel):
    """
    This data type is used as a response element in the action <a>DescribeDBEngineVersions</a>.
    """

    Engine: Optional[String] = None
    EngineVersion: Optional[String] = None
    DBParameterGroupFamily: Optional[String] = None
    DBEngineDescription: Optional[String] = None
    DBEngineVersionDescription: Optional[String] = None
    DefaultCharacterSet: Optional[CharacterSet] = None
    SupportedCharacterSets: Optional[SupportedCharacterSetsList] = None
    ValidUpgradeTarget: Optional[ValidUpgradeTargetList] = None
    SupportedTimezones: Optional[SupportedTimezonesList] = None
    ExportableLogTypes: Optional[LogTypeList] = None
    SupportsLogExportsToCloudwatchLogs: Optional[Boolean] = None
    SupportsReadReplica: Optional[Boolean] = None


class DBEngineVersionList(BaseModel):
    __root__: List[DBEngineVersion]


class DBSecurityGroupMembershipList(BaseModel):
    __root__: List[DBSecurityGroupMembership]


class DBParameterGroupStatusList(BaseModel):
    __root__: List[DBParameterGroupStatus]


class PendingModifiedValues(BaseModel):
    """
    This data type is used as a response element in the <a>ModifyDBInstance</a> action.
    """

    DBInstanceClass: Optional[String] = None
    AllocatedStorage: Optional[IntegerOptional] = None
    MasterUserPassword: Optional[String] = None
    Port: Optional[IntegerOptional] = None
    BackupRetentionPeriod: Optional[IntegerOptional] = None
    MultiAZ: Optional[BooleanOptional] = None
    EngineVersion: Optional[String] = None
    LicenseModel: Optional[String] = None
    Iops: Optional[IntegerOptional] = None
    DBInstanceIdentifier: Optional[String] = None
    StorageType: Optional[String] = None
    CACertificateIdentifier: Optional[String] = None
    DBSubnetGroupName: Optional[String] = None
    PendingCloudwatchLogsExports: Optional[PendingCloudwatchLogsExports] = None


class OptionGroupMembershipList(BaseModel):
    __root__: List[OptionGroupMembership]


class DBInstanceStatusInfoList(BaseModel):
    __root__: List[DBInstanceStatusInfo]


class DomainMembershipList(BaseModel):
    __root__: List[DomainMembership]


class SubnetList(BaseModel):
    __root__: List[Subnet]


class FilterList(BaseModel):
    __root__: List[Filter]


class DescribeDBClusterEndpointsMessage(BaseModel):
    DBClusterIdentifier: Optional[String] = None
    DBClusterEndpointIdentifier: Optional[String] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribeDBClusterParameterGroupsMessage(BaseModel):
    DBClusterParameterGroupName: Optional[String] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribeDBClusterParametersMessage(BaseModel):
    DBClusterParameterGroupName: String
    Source: Optional[String] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribeDBClusterSnapshotsMessage(BaseModel):
    DBClusterIdentifier: Optional[String] = None
    DBClusterSnapshotIdentifier: Optional[String] = None
    SnapshotType: Optional[String] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None
    IncludeShared: Optional[Boolean] = None
    IncludePublic: Optional[Boolean] = None


class DescribeDBClustersMessage(BaseModel):
    DBClusterIdentifier: Optional[String] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribeDBEngineVersionsMessage(BaseModel):
    Engine: Optional[String] = None
    EngineVersion: Optional[String] = None
    DBParameterGroupFamily: Optional[String] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None
    DefaultOnly: Optional[Boolean] = None
    ListSupportedCharacterSets: Optional[BooleanOptional] = None
    ListSupportedTimezones: Optional[BooleanOptional] = None


class DescribeDBInstancesMessage(BaseModel):
    DBInstanceIdentifier: Optional[String] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribeDBParameterGroupsMessage(BaseModel):
    DBParameterGroupName: Optional[String] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribeDBParametersMessage(BaseModel):
    DBParameterGroupName: String
    Source: Optional[String] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribeDBSubnetGroupsMessage(BaseModel):
    DBSubnetGroupName: Optional[String] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribeEngineDefaultClusterParametersMessage(BaseModel):
    DBParameterGroupFamily: String
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class EngineDefaults(BaseModel):
    """
    Contains the result of a successful invocation of the <a>DescribeEngineDefaultParameters</a> action.
    """

    DBParameterGroupFamily: Optional[String] = None
    Marker: Optional[String] = None
    Parameters: Optional[ParametersList] = None


class DescribeEngineDefaultParametersMessage(BaseModel):
    DBParameterGroupFamily: String
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribeEventCategoriesMessage(BaseModel):
    SourceType: Optional[String] = None
    Filters: Optional[FilterList] = None


class DescribeEventSubscriptionsMessage(BaseModel):
    SubscriptionName: Optional[String] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribeEventsMessage(BaseModel):
    SourceIdentifier: Optional[String] = None
    SourceType: Optional[SourceType3] = None
    StartTime: Optional[TStamp] = None
    EndTime: Optional[TStamp] = None
    Duration: Optional[IntegerOptional] = None
    EventCategories: Optional[EventCategoriesList] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribeOrderableDBInstanceOptionsMessage(BaseModel):
    Engine: String
    EngineVersion: Optional[String] = None
    DBInstanceClass: Optional[String] = None
    LicenseModel: Optional[String] = None
    Vpc: Optional[BooleanOptional] = None
    Filters: Optional[FilterList] = None
    MaxRecords: Optional[IntegerOptional] = None
    Marker: Optional[String] = None


class DescribePendingMaintenanceActionsMessage(BaseModel):
    ResourceIdentifier: Optional[String] = None
    Filters: Optional[FilterList] = None
    Marker: Optional[String] = None
    MaxRecords: Optional[IntegerOptional] = None


class EventSubscriptionsList(BaseModel):
    __root__: List[EventSubscription]


class ListTagsForResourceMessage(BaseModel):
    ResourceName: String
    Filters: Optional[FilterList] = None


class ModifyDBClusterParameterGroupMessage(BaseModel):
    DBClusterParameterGroupName: String
    Parameters: ParametersList


class ModifyDBParameterGroupMessage(BaseModel):
    DBParameterGroupName: String
    Parameters: ParametersList


class PendingMaintenanceActions(BaseModel):
    __root__: List[ResourcePendingMaintenanceActions]


class ResetDBClusterParameterGroupMessage(BaseModel):
    DBClusterParameterGroupName: String
    ResetAllParameters: Optional[Boolean] = None
    Parameters: Optional[ParametersList] = None


class ResetDBParameterGroupMessage(BaseModel):
    DBParameterGroupName: String
    ResetAllParameters: Optional[Boolean] = None
    Parameters: Optional[ParametersList] = None


class RestoreDBClusterFromSnapshotMessage(BaseModel):
    AvailabilityZones: Optional[AvailabilityZones] = None
    DBClusterIdentifier: String
    SnapshotIdentifier: String
    Engine: String
    EngineVersion: Optional[String] = None
    Port: Optional[IntegerOptional] = None
    DBSubnetGroupName: Optional[String] = None
    DatabaseName: Optional[String] = None
    OptionGroupName: Optional[String] = None
    VpcSecurityGroupIds: Optional[VpcSecurityGroupIdList] = None
    Tags: Optional[TagList] = None
    KmsKeyId: Optional[String] = None
    EnableIAMDatabaseAuthentication: Optional[BooleanOptional] = None
    EnableCloudwatchLogsExports: Optional[LogTypeList] = None
    DBClusterParameterGroupName: Optional[String] = None
    DeletionProtection: Optional[BooleanOptional] = None
    CopyTagsToSnapshot: Optional[BooleanOptional] = None


class RestoreDBClusterToPointInTimeMessage(BaseModel):
    DBClusterIdentifier: String
    RestoreType: Optional[String] = None
    SourceDBClusterIdentifier: String
    RestoreToTime: Optional[TStamp] = None
    UseLatestRestorableTime: Optional[Boolean] = None
    Port: Optional[IntegerOptional] = None
    DBSubnetGroupName: Optional[String] = None
    OptionGroupName: Optional[String] = None
    VpcSecurityGroupIds: Optional[VpcSecurityGroupIdList] = None
    Tags: Optional[TagList] = None
    KmsKeyId: Optional[String] = None
    EnableIAMDatabaseAuthentication: Optional[BooleanOptional] = None
    EnableCloudwatchLogsExports: Optional[LogTypeList] = None
    DBClusterParameterGroupName: Optional[String] = None
    DeletionProtection: Optional[BooleanOptional] = None


class ValidStorageOptionsList(BaseModel):
    __root__: List[ValidStorageOptions]


class AddSourceIdentifierToSubscriptionResult(BaseModel):
    EventSubscription: Optional[EventSubscription] = None


class ApplyPendingMaintenanceActionResult(BaseModel):
    ResourcePendingMaintenanceActions: Optional[
        ResourcePendingMaintenanceActions
    ] = None


class CopyDBClusterSnapshotResult(BaseModel):
    DBClusterSnapshot: Optional[DBClusterSnapshot] = None


class CreateDBClusterSnapshotResult(CopyDBClusterSnapshotResult):
    pass


class CreateEventSubscriptionResult(AddSourceIdentifierToSubscriptionResult):
    pass


class DeleteDBClusterSnapshotResult(CopyDBClusterSnapshotResult):
    pass


class DeleteEventSubscriptionResult(AddSourceIdentifierToSubscriptionResult):
    pass


class DBClusterParameterGroupDetails(BaseModel):
    Parameters: Optional[ParametersList] = None
    Marker: Optional[String] = None


class DBClusterSnapshotMessage(BaseModel):
    Marker: Optional[String] = None
    DBClusterSnapshots: Optional[DBClusterSnapshotList] = None


class DBEngineVersionMessage(BaseModel):
    Marker: Optional[String] = None
    DBEngineVersions: Optional[DBEngineVersionList] = None


class DBParameterGroupDetails(DBClusterParameterGroupDetails):
    pass


class DescribeEngineDefaultClusterParametersResult(BaseModel):
    EngineDefaults: Optional[EngineDefaults] = None


class DescribeEngineDefaultParametersResult(
    DescribeEngineDefaultClusterParametersResult
):
    pass


class EventSubscriptionsMessage(BaseModel):
    Marker: Optional[String] = None
    EventSubscriptionsList: Optional[EventSubscriptionsList] = None


class PendingMaintenanceActionsMessage(BaseModel):
    PendingMaintenanceActions: Optional[PendingMaintenanceActions] = None
    Marker: Optional[String] = None


class TagListMessage(BaseModel):
    TagList: Optional[TagList] = None


class ModifyEventSubscriptionResult(AddSourceIdentifierToSubscriptionResult):
    pass


class RemoveSourceIdentifierFromSubscriptionResult(
    AddSourceIdentifierToSubscriptionResult
):
    pass


class DBCluster(BaseModel):
    """
    <p>Contains the details of an Amazon Neptune DB cluster.</p> <p>This data type is used as a response element in the <a>DescribeDBClusters</a> action.</p>
    """

    AllocatedStorage: Optional[IntegerOptional] = None
    AvailabilityZones: Optional[AvailabilityZones] = None
    BackupRetentionPeriod: Optional[IntegerOptional] = None
    CharacterSetName: Optional[String] = None
    DatabaseName: Optional[String] = None
    DBClusterIdentifier: Optional[String] = None
    DBClusterParameterGroup: Optional[String] = None
    DBSubnetGroup: Optional[String] = None
    Status: Optional[String] = None
    PercentProgress: Optional[String] = None
    EarliestRestorableTime: Optional[TStamp] = None
    Endpoint: Optional[String] = None
    ReaderEndpoint: Optional[String] = None
    MultiAZ: Optional[Boolean] = None
    Engine: Optional[String] = None
    EngineVersion: Optional[String] = None
    LatestRestorableTime: Optional[TStamp] = None
    Port: Optional[IntegerOptional] = None
    MasterUsername: Optional[String] = None
    DBClusterOptionGroupMemberships: Optional[DBClusterOptionGroupMemberships] = None
    PreferredBackupWindow: Optional[String] = None
    PreferredMaintenanceWindow: Optional[String] = None
    ReplicationSourceIdentifier: Optional[String] = None
    ReadReplicaIdentifiers: Optional[ReadReplicaIdentifierList] = None
    DBClusterMembers: Optional[DBClusterMemberList] = None
    VpcSecurityGroups: Optional[VpcSecurityGroupMembershipList] = None
    HostedZoneId: Optional[String] = None
    StorageEncrypted: Optional[Boolean] = None
    KmsKeyId: Optional[String] = None
    DbClusterResourceId: Optional[String] = None
    DBClusterArn: Optional[String] = None
    AssociatedRoles: Optional[DBClusterRoles] = None
    IAMDatabaseAuthenticationEnabled: Optional[Boolean] = None
    CloneGroupId: Optional[String] = None
    ClusterCreateTime: Optional[TStamp] = None
    CopyTagsToSnapshot: Optional[BooleanOptional] = None
    EnabledCloudwatchLogsExports: Optional[LogTypeList] = None
    DeletionProtection: Optional[BooleanOptional] = None
    CrossAccountClone: Optional[BooleanOptional] = None
    AutomaticRestartTime: Optional[TStamp] = None


class DBSubnetGroup(BaseModel):
    """
    <p>Contains the details of an Amazon Neptune DB subnet group.</p> <p>This data type is used as a response element in the <a>DescribeDBSubnetGroups</a> action.</p>
    """

    DBSubnetGroupName: Optional[String] = None
    DBSubnetGroupDescription: Optional[String] = None
    VpcId: Optional[String] = None
    SubnetGroupStatus: Optional[String] = None
    Subnets: Optional[SubnetList] = None
    DBSubnetGroupArn: Optional[String] = None


class DBClusterList(BaseModel):
    __root__: List[DBCluster]


class DBSubnetGroups(BaseModel):
    __root__: List[DBSubnetGroup]


class ValidDBInstanceModificationsMessage(BaseModel):
    """
    Information about valid modifications that you can make to your DB instance. Contains the result of a successful call to the <a>DescribeValidDBInstanceModifications</a> action. You can use this information when you call <a>ModifyDBInstance</a>.
    """

    Storage: Optional[ValidStorageOptionsList] = None


class CreateDBClusterResult(BaseModel):
    DBCluster: Optional[DBCluster] = None


class CreateDBSubnetGroupResult(BaseModel):
    DBSubnetGroup: Optional[DBSubnetGroup] = None


class DeleteDBClusterResult(CreateDBClusterResult):
    pass


class DBClusterMessage(BaseModel):
    Marker: Optional[String] = None
    DBClusters: Optional[DBClusterList] = None


class DBSubnetGroupMessage(BaseModel):
    Marker: Optional[String] = None
    DBSubnetGroups: Optional[DBSubnetGroups] = None


class DescribeValidDBInstanceModificationsResult(BaseModel):
    ValidDBInstanceModificationsMessage: Optional[
        ValidDBInstanceModificationsMessage
    ] = None


class FailoverDBClusterResult(CreateDBClusterResult):
    pass


class ModifyDBClusterResult(CreateDBClusterResult):
    pass


class ModifyDBSubnetGroupResult(CreateDBSubnetGroupResult):
    pass


class PromoteReadReplicaDBClusterResult(CreateDBClusterResult):
    pass


class RestoreDBClusterFromSnapshotResult(CreateDBClusterResult):
    pass


class RestoreDBClusterToPointInTimeResult(CreateDBClusterResult):
    pass


class StartDBClusterResult(CreateDBClusterResult):
    pass


class StopDBClusterResult(CreateDBClusterResult):
    pass


class DBInstance(BaseModel):
    """
    <p>Contains the details of an Amazon Neptune DB instance.</p> <p>This data type is used as a response element in the <a>DescribeDBInstances</a> action.</p>
    """

    DBInstanceIdentifier: Optional[String] = None
    DBInstanceClass: Optional[String] = None
    Engine: Optional[String] = None
    DBInstanceStatus: Optional[String] = None
    MasterUsername: Optional[String] = None
    DBName: Optional[String] = None
    Endpoint: Optional[Endpoint] = None
    AllocatedStorage: Optional[Integer] = None
    InstanceCreateTime: Optional[TStamp] = None
    PreferredBackupWindow: Optional[String] = None
    BackupRetentionPeriod: Optional[Integer] = None
    DBSecurityGroups: Optional[DBSecurityGroupMembershipList] = None
    VpcSecurityGroups: Optional[VpcSecurityGroupMembershipList] = None
    DBParameterGroups: Optional[DBParameterGroupStatusList] = None
    AvailabilityZone: Optional[String] = None
    DBSubnetGroup: Optional[DBSubnetGroup] = None
    PreferredMaintenanceWindow: Optional[String] = None
    PendingModifiedValues: Optional[PendingModifiedValues] = None
    LatestRestorableTime: Optional[TStamp] = None
    MultiAZ: Optional[Boolean] = None
    EngineVersion: Optional[String] = None
    AutoMinorVersionUpgrade: Optional[Boolean] = None
    ReadReplicaSourceDBInstanceIdentifier: Optional[String] = None
    ReadReplicaDBInstanceIdentifiers: Optional[
        ReadReplicaDBInstanceIdentifierList
    ] = None
    ReadReplicaDBClusterIdentifiers: Optional[ReadReplicaDBClusterIdentifierList] = None
    LicenseModel: Optional[String] = None
    Iops: Optional[IntegerOptional] = None
    OptionGroupMemberships: Optional[OptionGroupMembershipList] = None
    CharacterSetName: Optional[String] = None
    SecondaryAvailabilityZone: Optional[String] = None
    PubliclyAccessible: Optional[Boolean] = None
    StatusInfos: Optional[DBInstanceStatusInfoList] = None
    StorageType: Optional[String] = None
    TdeCredentialArn: Optional[String] = None
    DbInstancePort: Optional[Integer] = None
    DBClusterIdentifier: Optional[String] = None
    StorageEncrypted: Optional[Boolean] = None
    KmsKeyId: Optional[String] = None
    DbiResourceId: Optional[String] = None
    CACertificateIdentifier: Optional[String] = None
    DomainMemberships: Optional[DomainMembershipList] = None
    CopyTagsToSnapshot: Optional[Boolean] = None
    MonitoringInterval: Optional[IntegerOptional] = None
    EnhancedMonitoringResourceArn: Optional[String] = None
    MonitoringRoleArn: Optional[String] = None
    PromotionTier: Optional[IntegerOptional] = None
    DBInstanceArn: Optional[String] = None
    Timezone: Optional[String] = None
    IAMDatabaseAuthenticationEnabled: Optional[Boolean] = None
    PerformanceInsightsEnabled: Optional[BooleanOptional] = None
    PerformanceInsightsKMSKeyId: Optional[String] = None
    EnabledCloudwatchLogsExports: Optional[LogTypeList] = None
    DeletionProtection: Optional[BooleanOptional] = None


class DBInstanceList(BaseModel):
    __root__: List[DBInstance]


class CreateDBInstanceResult(BaseModel):
    DBInstance: Optional[DBInstance] = None


class DeleteDBInstanceResult(CreateDBInstanceResult):
    pass


class DBInstanceMessage(BaseModel):
    Marker: Optional[String] = None
    DBInstances: Optional[DBInstanceList] = None


class ModifyDBInstanceResult(CreateDBInstanceResult):
    pass


class RebootDBInstanceResult(CreateDBInstanceResult):
    pass
