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 AwsRdsDbCluster(Base):
    __tablename__ = 'aws_rds_db_cluster'
    db_cluster_identifier = Column(name='db_cluster_identifier', type_=Text, nullable=True)
    arn = Column(name='arn', type_=Text, primary_key=True, nullable=True)
    status = Column(name='status', type_=Text, nullable=True)
    resource_id = Column(name='resource_id', type_=Text, nullable=True)
    create_time = Column(name='create_time', type_=TIMESTAMP, nullable=True)
    activity_stream_kinesis_stream_name = Column(name='activity_stream_kinesis_stream_name', type_=Text, nullable=True)
    activity_stream_kms_key_id = Column(name='activity_stream_kms_key_id', type_=Text, nullable=True)
    activity_stream_mode = Column(name='activity_stream_mode', type_=Text, nullable=True)
    activity_stream_status = Column(name='activity_stream_status', type_=Text, nullable=True)
    allocated_storage = Column(name='allocated_storage', type_=BigInteger, nullable=True)
    backtrack_consumed_change_records = Column(name='backtrack_consumed_change_records', type_=BigInteger, nullable=True)
    backtrack_window = Column(name='backtrack_window', type_=BigInteger, nullable=True)
    backup_retention_period = Column(name='backup_retention_period', type_=BigInteger, nullable=True)
    capacity = Column(name='capacity', type_=BigInteger, nullable=True)
    character_set_name = Column(name='character_set_name', type_=Text, nullable=True)
    clone_group_id = Column(name='clone_group_id', type_=Text, nullable=True)
    copy_tags_to_snapshot = Column(name='copy_tags_to_snapshot', type_=Boolean, nullable=True)
    cross_account_clone = Column(name='cross_account_clone', type_=Boolean, nullable=True)
    database_name = Column(name='database_name', type_=Text, nullable=True)
    db_cluster_parameter_group = Column(name='db_cluster_parameter_group', type_=Text, nullable=True)
    db_subnet_group = Column(name='db_subnet_group', type_=Text, nullable=True)
    deletion_protection = Column(name='deletion_protection', type_=Boolean, nullable=True)
    earliest_backtrack_time = Column(name='earliest_backtrack_time', type_=TIMESTAMP, nullable=True)
    earliest_restorable_time = Column(name='earliest_restorable_time', type_=TIMESTAMP, nullable=True)
    endpoint = Column(name='endpoint', type_=Text, nullable=True)
    engine = Column(name='engine', type_=Text, nullable=True)
    engine_mode = Column(name='engine_mode', type_=Text, nullable=True)
    engine_version = Column(name='engine_version', type_=Text, nullable=True)
    global_write_forwarding_requested = Column(name='global_write_forwarding_requested', type_=Boolean, nullable=True)
    global_write_forwarding_status = Column(name='global_write_forwarding_status', type_=Text, nullable=True)
    hosted_zone_id = Column(name='hosted_zone_id', type_=Text, nullable=True)
    http_endpoint_enabled = Column(name='http_endpoint_enabled', type_=Boolean, nullable=True)
    iam_database_authentication_enabled = Column(name='iam_database_authentication_enabled', type_=Boolean, 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)
    master_user_name = Column(name='master_user_name', type_=Text, nullable=True)
    multi_az = Column(name='multi_az', type_=Boolean, nullable=True)
    percent_progress = Column(name='percent_progress', type_=Text, nullable=True)
    port = Column(name='port', 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)
    reader_endpoint = Column(name='reader_endpoint', type_=Text, nullable=True)
    storage_encrypted = Column(name='storage_encrypted', type_=Boolean, nullable=True)
    associated_roles = Column(name='associated_roles', type_=JSON, nullable=True)
    availability_zones = Column(name='availability_zones', type_=JSON, nullable=True)
    custom_endpoints = Column(name='custom_endpoints', type_=JSON, nullable=True)
    members = Column(name='members', type_=JSON, nullable=True)
    option_group_memberships = Column(name='option_group_memberships', 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)
    read_replica_identifiers = Column(name='read_replica_identifiers', 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)