class Elbas::AWS::AutoscaleGroup

Attributes

name[R]

Public Class Methods

new(name) click to toggle source
# File lib/elbas/aws/autoscale_group.rb, line 6
def initialize(name)
  @name = name
  @aws_counterpart = query_autoscale_group_by_name(name)
end

Public Instance Methods

instance_ids() click to toggle source
# File lib/elbas/aws/autoscale_group.rb, line 11
def instance_ids
  aws_counterpart.instances.map(&:instance_id)
end
instances() click to toggle source
# File lib/elbas/aws/autoscale_group.rb, line 15
def instances
  InstanceCollection.new instance_ids
end
launch_template() click to toggle source
# File lib/elbas/aws/autoscale_group.rb, line 19
def launch_template
  lts = aws_launch_template || aws_launch_template_specification
  raise Elbas::Errors::NoLaunchTemplate unless lts

  LaunchTemplate.new(
    lts.launch_template_id,
    lts.launch_template_name,
    lts.version
  )
end

Private Instance Methods

aws_launch_template() click to toggle source
# File lib/elbas/aws/autoscale_group.rb, line 42
def aws_launch_template
  aws_counterpart.launch_template
end
aws_launch_template_specification() click to toggle source
# File lib/elbas/aws/autoscale_group.rb, line 46
def aws_launch_template_specification
  aws_counterpart.mixed_instances_policy&.launch_template
    &.launch_template_specification
end
aws_namespace() click to toggle source
# File lib/elbas/aws/autoscale_group.rb, line 31
def aws_namespace
  ::Aws::AutoScaling
end
query_autoscale_group_by_name(name) click to toggle source
# File lib/elbas/aws/autoscale_group.rb, line 35
def query_autoscale_group_by_name(name)
  aws_client
    .describe_auto_scaling_groups(auto_scaling_group_names: [name])
    .auto_scaling_groups
    .first
end