Sha256: 514b2aede5d3669fdb1b62800b91c10588433fa839d210a24bf9eb7d1e53eeb5

Contents?: true

Size: 823 Bytes

Versions: 1

Compression:

Stored size: 823 Bytes

Contents

require 'aws-sdk-apigateway'

Aws.use_bundled_cert!

module AwsLogCleaner
  # Class responsible for interacting with the AWS ApiGatewayClient
  class ApiGateway
    def initialize(credentials)
      @api_client = Aws::APIGateway::Client.new(
        region: credentials.region,
        credentials: credentials.credentials
      )
    end

    def list_all_apis
      @rest_apis = get_rest_apis if @rest_apis.nil?
      @rest_apis
    end

    private

    def get_rest_apis
      Enumerator.new do |enum|
        request = { limit: 25 }
        loop do
          response = @api_client.get_rest_apis(request)
          response.items.each do |item|
            enum.yield item
          end
          break if response.position.nil?
          request[:position] = response.position
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aws_log_cleaner-0.2.1 lib/aws_log_cleaner/api_gateway.rb