def policies(options = {})
      batches = Enumerator.new do |y|
        options = options.merge(auto_scaling_group_name: @name)
        resp = @client.describe_policies(options)
        resp.each_page do |page|
          batch = []
          page.data.scaling_policies.each do |s|
            batch << ScalingPolicy.new(
              name: s.policy_name,
              data: s,
              client: @client
            )
          end
          y.yield(batch)
        end
      end
      ScalingPolicy::Collection.new(batches)
    end
def policies(options = {})
      batches = Enumerator.new do |y|
        options = options.merge(auto_scaling_group_name: @name)
        resp = @client.describe_policies(options)
        resp.each_page do |page|
          batch = []
          page.data.scaling_policies.each do |s|
            batch << ScalingPolicy.new(
              name: s.policy_name,
              data: s,
              client: @client
            )
          end
          y.yield(batch)
        end
      end
      ScalingPolicy::Collection.new(batches)
    end
@example Request syntax with placeholder values

   policies = auto_scaling_group.policies({
     policy_names: ["ResourceName"],
     policy_types: ["XmlStringMaxLen64"],
   })
 @param [Hash] options ({})
 @option options [Array<String>] :policy_names
   The names of one or more policies. If you omit this parameter, all
   policies are described. If a group name is provided, the results are
   limited to that group. This list is limited to 50 items. If you
   specify an unknown policy name, it is ignored with no error.
 @option options [Array<String>] :policy_types
   One or more policy types. The valid values are `SimpleScaling`,
   `StepScaling`, and `TargetTrackingScaling`.
 @return [ScalingPolicy::Collection]