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 AwsEc2AutoscalingGroup(Base):
    __tablename__ = 'aws_ec2_autoscaling_group'
    name = Column(name='name', type_=Text, primary_key=True, nullable=True)
    autoscaling_group_arn = Column(name='autoscaling_group_arn', type_=Text, nullable=True)
    status = Column(name='status', type_=Text, nullable=True)
    created_time = Column(name='created_time', type_=TIMESTAMP, nullable=True)
    new_instances_protected_from_scale_in = Column(name='new_instances_protected_from_scale_in', type_=Boolean, nullable=True)
    launch_configuration_name = Column(name='launch_configuration_name', type_=Text, nullable=True)
    default_cooldown = Column(name='default_cooldown', type_=BigInteger, nullable=True)
    desired_capacity = Column(name='desired_capacity', type_=BigInteger, nullable=True)
    max_instance_lifetime = Column(name='max_instance_lifetime', type_=BigInteger, nullable=True)
    max_size = Column(name='max_size', type_=BigInteger, nullable=True)
    min_size = Column(name='min_size', type_=BigInteger, nullable=True)
    health_check_grace_period = Column(name='health_check_grace_period', type_=BigInteger, nullable=True)
    health_check_type = Column(name='health_check_type', type_=Text, nullable=True)
    placement_group = Column(name='placement_group', type_=Text, nullable=True)
    service_linked_role_arn = Column(name='service_linked_role_arn', type_=Text, nullable=True)
    vpc_zone_identifier = Column(name='vpc_zone_identifier', type_=Text, nullable=True)
    launch_template_name = Column(name='launch_template_name', type_=Text, nullable=True)
    launch_template_id = Column(name='launch_template_id', type_=Text, nullable=True)
    launch_template_version = Column(name='launch_template_version', type_=Text, nullable=True)
    on_demand_allocation_strategy = Column(name='on_demand_allocation_strategy', type_=Text, nullable=True)
    on_demand_base_capacity = Column(name='on_demand_base_capacity', type_=BigInteger, nullable=True)
    on_demand_percentage_above_base_capacity = Column(name='on_demand_percentage_above_base_capacity', type_=BigInteger, nullable=True)
    spot_allocation_strategy = Column(name='spot_allocation_strategy', type_=Text, nullable=True)
    spot_instance_pools = Column(name='spot_instance_pools', type_=BigInteger, nullable=True)
    spot_max_price = Column(name='spot_max_price', type_=Text, nullable=True)
    mixed_instances_policy_launch_template_name = Column(name='mixed_instances_policy_launch_template_name', type_=Text, nullable=True)
    mixed_instances_policy_launch_template_id = Column(name='mixed_instances_policy_launch_template_id', type_=Text, nullable=True)
    mixed_instances_policy_launch_template_version = Column(name='mixed_instances_policy_launch_template_version', type_=Text, nullable=True)
    mixed_instances_policy_launch_template_overrides = Column(name='mixed_instances_policy_launch_template_overrides', type_=JSON, nullable=True)
    availability_zones = Column(name='availability_zones', type_=JSON, nullable=True)
    load_balancer_names = Column(name='load_balancer_names', type_=JSON, nullable=True)
    target_group_arns = Column(name='target_group_arns', type_=JSON, nullable=True)
    instances = Column(name='instances', type_=JSON, nullable=True)
    enabled_metrics = Column(name='enabled_metrics', type_=JSON, nullable=True)
    policies = Column(name='policies', type_=JSON, nullable=True)
    termination_policies = Column(name='termination_policies', type_=JSON, nullable=True)
    suspended_processes = Column(name='suspended_processes', 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)