class AwsEcsCluster

def fetch_from_api

def fetch_from_api
  backend = BackendFactory.create(inspec_runner)
  begin
    # Use default cluster if no cluster name is specified
    params = cluster_name.nil? ? {} : { clusters: [cluster_name] }
    clusters = backend.describe_clusters(params).clusters
    # Cluster name is unique, we either get back one cluster, or none
    if clusters.length == 1
      @exists = true
      unpack_describe_clusters_response(clusters.first)
    else
      @exists = false
      populate_as_missing
    end
  end
end

def populate_as_missing

def populate_as_missing
  @cluster_arn = ''
  @cluster_name = ''
  @status = ''
  @registered_container_instances_count = 0
  @running_tasks_count = 0
  @pending_tasks_count = 0
  @active_services_count = 0
  @statistics = []
end

def to_s

def to_s
  "AWS ECS cluster #{cluster_name}"
end

def unpack_describe_clusters_response(cluster_struct)

def unpack_describe_clusters_response(cluster_struct)
  @cluster_arn = cluster_struct.cluster_arn
  @cluster_name = cluster_struct.cluster_name
  @status = cluster_struct.status
  @registered_container_instances_count = cluster_struct.registered_container_instances_count
  @running_tasks_count = cluster_struct.running_tasks_count
  @pending_tasks_count = cluster_struct.pending_tasks_count
  @active_services_count = cluster_struct.active_services_count
  @statistics = cluster_struct.statistics
end

def validate_params(raw_params)

def validate_params(raw_params)
  validated_params = check_resource_param_names(
    raw_params: raw_params,
    allowed_params: [:cluster_name],
    allowed_scalar_name: :cluster_name,
    allowed_scalar_type: String,
  )
  validated_params
end