from sqlalchemy import Column
from sqlalchemy.types import JSON, Text, Boolean, TIMESTAMP, BigInteger
from sqlalchemy.dialects import postgresql as psql

from steampipe_alchemy import Base

class AwsRdsDbInstance(Base):
    __tablename__ = 'aws_rds_db_instance'
    db_instance_identifier = Column(name='db_instance_identifier', type_=Text, nullable=True)
    arn = Column(name='arn', type_=Text, primary_key=True, nullable=True)
    db_cluster_identifier = Column(name='db_cluster_identifier', type_=Text, nullable=True)
    status = Column(name='status', type_=Text, nullable=True)
    _class = Column(name='class', type_=Text, nullable=True)
    resource_id = Column(name='resource_id', type_=Text, nullable=True)
    allocated_storage = Column(name='allocated_storage', type_=BigInteger, nullable=True)
    auto_minor_version_upgrade = Column(name='auto_minor_version_upgrade', type_=Boolean, nullable=True)
    availability_zone = Column(name='availability_zone', type_=Text, nullable=True)
    backup_retention_period = Column(name='backup_retention_period', type_=BigInteger, nullable=True)
    ca_certificate_identifier = Column(name='ca_certificate_identifier', type_=Text, nullable=True)
    character_set_name = Column(name='character_set_name', type_=Text, nullable=True)
    copy_tags_to_snapshot = Column(name='copy_tags_to_snapshot', type_=Boolean, nullable=True)
    customer_owned_ip_enabled = Column(name='customer_owned_ip_enabled', type_=Boolean, nullable=True)
    port = Column(name='port', type_=BigInteger, nullable=True)
    db_name = Column(name='db_name', type_=Text, nullable=True)
    db_subnet_group_arn = Column(name='db_subnet_group_arn', type_=Text, nullable=True)
    db_subnet_group_description = Column(name='db_subnet_group_description', type_=Text, nullable=True)
    db_subnet_group_name = Column(name='db_subnet_group_name', type_=Text, nullable=True)
    db_subnet_group_status = Column(name='db_subnet_group_status', type_=Text, nullable=True)
    deletion_protection = Column(name='deletion_protection', type_=Boolean, nullable=True)
    endpoint_address = Column(name='endpoint_address', type_=Text, nullable=True)
    endpoint_hosted_zone_id = Column(name='endpoint_hosted_zone_id', type_=Text, nullable=True)
    endpoint_port = Column(name='endpoint_port', type_=BigInteger, nullable=True)
    engine = Column(name='engine', type_=Text, nullable=True)
    engine_version = Column(name='engine_version', type_=Text, nullable=True)
    enhanced_monitoring_resource_arn = Column(name='enhanced_monitoring_resource_arn', type_=Text, nullable=True)
    iam_database_authentication_enabled = Column(name='iam_database_authentication_enabled', type_=Boolean, nullable=True)
    create_time = Column(name='create_time', type_=TIMESTAMP, nullable=True)
    iops = Column(name='iops', type_=BigInteger, nullable=True)
    kms_key_id = Column(name='kms_key_id', type_=Text, nullable=True)
    latest_restorable_time = Column(name='latest_restorable_time', type_=TIMESTAMP, nullable=True)
    license_model = Column(name='license_model', type_=Text, nullable=True)
    master_user_name = Column(name='master_user_name', type_=Text, nullable=True)
    max_allocated_storage = Column(name='max_allocated_storage', type_=BigInteger, nullable=True)
    monitoring_interval = Column(name='monitoring_interval', type_=BigInteger, nullable=True)
    monitoring_role_arn = Column(name='monitoring_role_arn', type_=Text, nullable=True)
    multi_az = Column(name='multi_az', type_=Boolean, nullable=True)
    nchar_character_set_name = Column(name='nchar_character_set_name', type_=Text, nullable=True)
    performance_insights_enabled = Column(name='performance_insights_enabled', type_=Boolean, nullable=True)
    performance_insights_kms_key_id = Column(name='performance_insights_kms_key_id', type_=Text, nullable=True)
    performance_insights_retention_period = Column(name='performance_insights_retention_period', type_=BigInteger, nullable=True)
    preferred_backup_window = Column(name='preferred_backup_window', type_=Text, nullable=True)
    preferred_maintenance_window = Column(name='preferred_maintenance_window', type_=Text, nullable=True)
    promotion_tier = Column(name='promotion_tier', type_=BigInteger, nullable=True)
    publicly_accessible = Column(name='publicly_accessible', type_=Boolean, nullable=True)
    read_replica_source_db_instance_identifier = Column(name='read_replica_source_db_instance_identifier', type_=Text, nullable=True)
    replica_mode = Column(name='replica_mode', type_=Text, nullable=True)
    secondary_availability_zone = Column(name='secondary_availability_zone', type_=Text, nullable=True)
    storage_encrypted = Column(name='storage_encrypted', type_=Boolean, nullable=True)
    storage_type = Column(name='storage_type', type_=Text, nullable=True)
    tde_credential_arn = Column(name='tde_credential_arn', type_=Text, nullable=True)
    timezone = Column(name='timezone', type_=Text, nullable=True)
    vpc_id = Column(name='vpc_id', type_=Text, nullable=True)
    associated_roles = Column(name='associated_roles', type_=JSON, nullable=True)
    db_parameter_groups = Column(name='db_parameter_groups', type_=JSON, nullable=True)
    db_security_groups = Column(name='db_security_groups', type_=JSON, nullable=True)
    domain_memberships = Column(name='domain_memberships', type_=JSON, nullable=True)
    enabled_cloudwatch_logs_exports = Column(name='enabled_cloudwatch_logs_exports', type_=JSON, nullable=True)
    option_group_memberships = Column(name='option_group_memberships', type_=JSON, nullable=True)
    processor_features = Column(name='processor_features', type_=JSON, nullable=True)
    read_replica_db_cluster_identifiers = Column(name='read_replica_db_cluster_identifiers', type_=JSON, nullable=True)
    read_replica_db_instance_identifiers = Column(name='read_replica_db_instance_identifiers', type_=JSON, nullable=True)
    status_infos = Column(name='status_infos', type_=JSON, nullable=True)
    subnets = Column(name='subnets', type_=JSON, nullable=True)
    vpc_security_groups = Column(name='vpc_security_groups', type_=JSON, nullable=True)
    tags_src = Column(name='tags_src', type_=JSON, nullable=True)
    tags = Column(name='tags', type_=JSON, nullable=True)
    title = Column(name='title', type_=Text, nullable=True)
    akas = Column(name='akas', type_=JSON, nullable=True)
    partition = Column(name='partition', type_=Text, nullable=True)
    region = Column(name='region', type_=Text, nullable=True)
    account_id = Column(name='account_id', type_=Text, nullable=True)