logstash-input-s3-sns-sqs 2.1.3 → 2.2.1.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +3 -0
 - data/lib/logstash/inputs/s3/downloader.rb +13 -1
 - data/lib/logstash/inputs/s3snssqs/log_processor.rb +1 -2
 - data/lib/logstash/inputs/s3snssqs.rb +7 -5
 - data/lib/logstash/plugin_mixins/aws_config/generic.rb +61 -0
 - data/lib/logstash/plugin_mixins/aws_config/v2.rb +100 -0
 - data/lib/logstash/plugin_mixins/aws_config.rb +8 -0
 - data/logstash-input-s3-sns-sqs.gemspec +18 -6
 - metadata +178 -29
 - data/lib/logstash/inputs/s3sqs/patch.rb +0 -22
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 045e651e9ce6ed3e99a4f06b52be476e30ef7501b5e53a5bf97bcf0118c463d6
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 25b9a355da317dec8b235fd84ce0cb04aec7fec9843edbbd418aa7f0cb570237
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 51a683ac50b21cd5e27c7dbcf73a494adeb3c5f04c7f590b38e3cb3730c308d331a8ab475a06e0df92204172841c62563ea29f92a1304932e15e3fe828c6ea0b
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: a8957a59f15f3d134f8c1fb7e60f1bbfa0461ceca58ec4569d58419634309bef27e780f6b43a084533690ccde3c040ec7549286aef49ecfc9bdee71da83c4bfa
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    
| 
         @@ -9,6 +9,7 @@ class S3Downloader 
     | 
|
| 
       9 
9 
     | 
    
         
             
                @stopped = stop_semaphore
         
     | 
| 
       10 
10 
     | 
    
         
             
                @factory = options[:s3_client_factory]
         
     | 
| 
       11 
11 
     | 
    
         
             
                @delete_on_success = options[:delete_on_success]
         
     | 
| 
      
 12 
     | 
    
         
            +
                @move_to_bucket = options[:move_to_bucket]
         
     | 
| 
       12 
13 
     | 
    
         
             
                @include_object_properties = options[:include_object_properties]
         
     | 
| 
       13 
14 
     | 
    
         
             
              end
         
     | 
| 
       14 
15 
     | 
    
         | 
| 
         @@ -40,7 +41,7 @@ class S3Downloader 
     | 
|
| 
       40 
41 
     | 
    
         
             
              end
         
     | 
| 
       41 
42 
     | 
    
         | 
| 
       42 
43 
     | 
    
         
             
              def cleanup_s3object(record)
         
     | 
| 
       43 
     | 
    
         
            -
                return unless @delete_on_success
         
     | 
| 
      
 44 
     | 
    
         
            +
                return unless @delete_on_success || @move_to_bucket
         
     | 
| 
       44 
45 
     | 
    
         
             
                begin
         
     | 
| 
       45 
46 
     | 
    
         
             
                  @factory.get_s3_client(record[:bucket]) do |s3|
         
     | 
| 
       46 
47 
     | 
    
         
             
                    s3.delete_object(bucket: record[:bucket], key: record[:key])
         
     | 
| 
         @@ -50,6 +51,17 @@ class S3Downloader 
     | 
|
| 
       50 
51 
     | 
    
         
             
                end
         
     | 
| 
       51 
52 
     | 
    
         
             
              end
         
     | 
| 
       52 
53 
     | 
    
         | 
| 
      
 54 
     | 
    
         
            +
              def move_s3object(record)
         
     | 
| 
      
 55 
     | 
    
         
            +
                return unless @move_to_bucket
         
     | 
| 
      
 56 
     | 
    
         
            +
                begin
         
     | 
| 
      
 57 
     | 
    
         
            +
                  @factory.get_s3_client(@move_to_bucket) do |s3|
         
     | 
| 
      
 58 
     | 
    
         
            +
                    s3.copy_object(bucket: @move_to_bucket, copy_source: "/#{record[:bucket]}/#{record[:key]}", key: record[:key])
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
                rescue Exception => e
         
     | 
| 
      
 61 
     | 
    
         
            +
                  @logger.warn("Failed to move s3 object", :record => record, :error => e)
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
      
 63 
     | 
    
         
            +
              end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
       53 
65 
     | 
    
         
             
              def stop?
         
     | 
| 
       54 
66 
     | 
    
         
             
                @stopped.value
         
     | 
| 
       55 
67 
     | 
    
         
             
              end
         
     | 
| 
         @@ -77,8 +77,7 @@ module LogProcessor 
     | 
|
| 
       77 
77 
     | 
    
         
             
              end
         
     | 
| 
       78 
78 
     | 
    
         | 
| 
       79 
79 
     | 
    
         
             
              def gzip?(filename)
         
     | 
| 
       80 
     | 
    
         
            -
                 
     | 
| 
       81 
     | 
    
         
            -
                MagicGzipValidator.new(File.new(filename, 'rb')).valid?
         
     | 
| 
      
 80 
     | 
    
         
            +
                filename.end_with?('.gz','.gzip') && MagicGzipValidator.new(File.new(filename, 'rb')).valid?
         
     | 
| 
       82 
81 
     | 
    
         
             
              rescue Exception => e
         
     | 
| 
       83 
82 
     | 
    
         
             
                @logger.warn("Problem while gzip detection", :error => e)
         
     | 
| 
       84 
83 
     | 
    
         
             
              end
         
     | 
| 
         @@ -5,8 +5,9 @@ require "logstash/timestamp" 
     | 
|
| 
       5 
5 
     | 
    
         
             
            require "logstash/plugin_mixins/aws_config"
         
     | 
| 
       6 
6 
     | 
    
         
             
            require "logstash/shutdown_watcher"
         
     | 
| 
       7 
7 
     | 
    
         
             
            require "logstash/errors"
         
     | 
| 
       8 
     | 
    
         
            -
            require  
     | 
| 
       9 
     | 
    
         
            -
            require "aws-sdk"
         
     | 
| 
      
 8 
     | 
    
         
            +
            require "aws-sdk-s3"
         
     | 
| 
      
 9 
     | 
    
         
            +
            require "aws-sdk-sns"
         
     | 
| 
      
 10 
     | 
    
         
            +
            require "aws-sdk-sqs"
         
     | 
| 
       10 
11 
     | 
    
         | 
| 
       11 
12 
     | 
    
         
             
            # "object-oriented interfaces on top of API clients"...
         
     | 
| 
       12 
13 
     | 
    
         
             
            # => Overhead. FIXME: needed?
         
     | 
| 
         @@ -25,7 +26,7 @@ java_import java.io.FileInputStream 
     | 
|
| 
       25 
26 
     | 
    
         
             
            java_import java.io.BufferedReader
         
     | 
| 
       26 
27 
     | 
    
         
             
            java_import java.util.zip.GZIPInputStream
         
     | 
| 
       27 
28 
     | 
    
         
             
            java_import java.util.zip.ZipException
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
      
 29 
     | 
    
         
            +
            java_import java.lang.StringBuilder
         
     | 
| 
       29 
30 
     | 
    
         | 
| 
       30 
31 
     | 
    
         
             
            # our helper classes
         
     | 
| 
       31 
32 
     | 
    
         
             
            # these may go into this file for brevity...
         
     | 
| 
         @@ -35,8 +36,6 @@ require_relative 's3/downloader' 
     | 
|
| 
       35 
36 
     | 
    
         
             
            require_relative 'codec_factory'
         
     | 
| 
       36 
37 
     | 
    
         
             
            require_relative 's3snssqs/log_processor'
         
     | 
| 
       37 
38 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
            Aws.eager_autoload!
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
39 
     | 
    
         
             
            # Get logs from AWS s3 buckets as issued by an object-created event via sqs.
         
     | 
| 
       41 
40 
     | 
    
         
             
            #
         
     | 
| 
       42 
41 
     | 
    
         
             
            # This plugin is based on the logstash-input-sqs plugin but doesn't log the sqs event itself.
         
     | 
| 
         @@ -161,6 +160,7 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable 
     | 
|
| 
       161 
160 
     | 
    
         
             
              # Session name to use when assuming an IAM role
         
     | 
| 
       162 
161 
     | 
    
         
             
              config :s3_role_session_name, :validate => :string, :default => "logstash"
         
     | 
| 
       163 
162 
     | 
    
         
             
              config :delete_on_success, :validate => :boolean, :default => false
         
     | 
| 
      
 163 
     | 
    
         
            +
              config :move_to_bucket, :validate => :string, :default => nil
         
     | 
| 
       164 
164 
     | 
    
         
             
              # Whether or not to include the S3 object's properties (last_modified, content_type, metadata)
         
     | 
| 
       165 
165 
     | 
    
         
             
              # into each Event at [@metadata][s3]. Regardless of this setting, [@metdata][s3][key] will always
         
     | 
| 
       166 
166 
     | 
    
         
             
              # be present.
         
     | 
| 
         @@ -273,6 +273,7 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable 
     | 
|
| 
       273 
273 
     | 
    
         
             
                @s3_downloader = S3Downloader.new(@logger, @received_stop, {
         
     | 
| 
       274 
274 
     | 
    
         
             
                  s3_client_factory: @s3_client_factory,
         
     | 
| 
       275 
275 
     | 
    
         
             
                  delete_on_success: @delete_on_success,
         
     | 
| 
      
 276 
     | 
    
         
            +
                  move_to_bucket: @move_to_bucket,
         
     | 
| 
       276 
277 
     | 
    
         
             
                  include_object_properties: @include_object_properties
         
     | 
| 
       277 
278 
     | 
    
         
             
                })
         
     | 
| 
       278 
279 
     | 
    
         
             
                @codec_factory = CodecFactory.new(@logger, {
         
     | 
| 
         @@ -344,6 +345,7 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable 
     | 
|
| 
       344 
345 
     | 
    
         
             
                      @s3_downloader.cleanup_local_object(record)
         
     | 
| 
       345 
346 
     | 
    
         
             
                      # re-throw if necessary:
         
     | 
| 
       346 
347 
     | 
    
         
             
                      throw :skip_delete unless completed
         
     | 
| 
      
 348 
     | 
    
         
            +
                      @s3_downloader.move_s3object(record)
         
     | 
| 
       347 
349 
     | 
    
         
             
                      @s3_downloader.cleanup_s3object(record)
         
     | 
| 
       348 
350 
     | 
    
         
             
                    end
         
     | 
| 
       349 
351 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -0,0 +1,61 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module LogStash::PluginMixins::AwsConfig::Generic
         
     | 
| 
      
 2 
     | 
    
         
            +
              def self.included(base)
         
     | 
| 
      
 3 
     | 
    
         
            +
                base.extend(self)
         
     | 
| 
      
 4 
     | 
    
         
            +
                base.generic_aws_config
         
     | 
| 
      
 5 
     | 
    
         
            +
              end
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              def generic_aws_config
         
     | 
| 
      
 8 
     | 
    
         
            +
                # The AWS Region
         
     | 
| 
      
 9 
     | 
    
         
            +
                config :region, :validate => :string, :default => LogStash::PluginMixins::AwsConfig::US_EAST_1
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                # This plugin uses the AWS SDK and supports several ways to get credentials, which will be tried in this order:
         
     | 
| 
      
 12 
     | 
    
         
            +
                #
         
     | 
| 
      
 13 
     | 
    
         
            +
                # 1. Static configuration, using `access_key_id` and `secret_access_key` params in the logstash plugin config
         
     | 
| 
      
 14 
     | 
    
         
            +
                # 2. External credentials file specified by `aws_credentials_file`
         
     | 
| 
      
 15 
     | 
    
         
            +
                # 3. Environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`
         
     | 
| 
      
 16 
     | 
    
         
            +
                # 4. Environment variables `AMAZON_ACCESS_KEY_ID` and `AMAZON_SECRET_ACCESS_KEY`
         
     | 
| 
      
 17 
     | 
    
         
            +
                # 5. IAM Instance Profile (available when running inside EC2)
         
     | 
| 
      
 18 
     | 
    
         
            +
                config :access_key_id, :validate => :string
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                # The AWS Secret Access Key
         
     | 
| 
      
 21 
     | 
    
         
            +
                config :secret_access_key, :validate => :password
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                # The AWS Session token for temporary credential
         
     | 
| 
      
 24 
     | 
    
         
            +
                config :session_token, :validate => :password
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                # URI to proxy server if required
         
     | 
| 
      
 27 
     | 
    
         
            +
                config :proxy_uri, :validate => :string
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                # Custom endpoint to connect to s3
         
     | 
| 
      
 30 
     | 
    
         
            +
                config :endpoint, :validate => :string
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                # The AWS IAM Role to assume, if any.
         
     | 
| 
      
 33 
     | 
    
         
            +
                # This is used to generate temporary credentials typically for cross-account access.
         
     | 
| 
      
 34 
     | 
    
         
            +
                # See https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html for more information.
         
     | 
| 
      
 35 
     | 
    
         
            +
                # When `role_arn` is set, AWS (`access_key_id`/`secret_access_key`) credentials still get used if they're configured.
         
     | 
| 
      
 36 
     | 
    
         
            +
                config :role_arn, :validate => :string
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                # Session name to use when assuming an IAM role
         
     | 
| 
      
 39 
     | 
    
         
            +
                config :role_session_name, :validate => :string, :default => "logstash"
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                # Path to YAML file containing a hash of AWS credentials.
         
     | 
| 
      
 42 
     | 
    
         
            +
                # This file will only be loaded if `access_key_id` and
         
     | 
| 
      
 43 
     | 
    
         
            +
                # `secret_access_key` aren't set. The contents of the
         
     | 
| 
      
 44 
     | 
    
         
            +
                # file should look like this:
         
     | 
| 
      
 45 
     | 
    
         
            +
                #
         
     | 
| 
      
 46 
     | 
    
         
            +
                # [source,ruby]
         
     | 
| 
      
 47 
     | 
    
         
            +
                # ----------------------------------
         
     | 
| 
      
 48 
     | 
    
         
            +
                #     :access_key_id: "12345"
         
     | 
| 
      
 49 
     | 
    
         
            +
                #     :secret_access_key: "54321"
         
     | 
| 
      
 50 
     | 
    
         
            +
                # ----------------------------------
         
     | 
| 
      
 51 
     | 
    
         
            +
                #
         
     | 
| 
      
 52 
     | 
    
         
            +
                config :aws_credentials_file, :validate => :string
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                # By default, this plugin uses cert available to OpenSSL provided by OS
         
     | 
| 
      
 55 
     | 
    
         
            +
                # when verifying SSL peer certificates.
         
     | 
| 
      
 56 
     | 
    
         
            +
                # For cases where the default cert is unavailable, e.g. Windows,
         
     | 
| 
      
 57 
     | 
    
         
            +
                # you can use the bundled ca certificate provided by AWS SDK
         
     | 
| 
      
 58 
     | 
    
         
            +
                # by setting `use_aws_bundled_ca` to true
         
     | 
| 
      
 59 
     | 
    
         
            +
                config :use_aws_bundled_ca, :validate => :boolean, :default => false
         
     | 
| 
      
 60 
     | 
    
         
            +
              end
         
     | 
| 
      
 61 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,100 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "logstash/plugin_mixins/aws_config/generic"
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module LogStash::PluginMixins::AwsConfig::V2
         
     | 
| 
      
 5 
     | 
    
         
            +
              def self.included(base)
         
     | 
| 
      
 6 
     | 
    
         
            +
                base.extend(self)
         
     | 
| 
      
 7 
     | 
    
         
            +
                base.send(:include, LogStash::PluginMixins::AwsConfig::Generic)
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              public
         
     | 
| 
      
 11 
     | 
    
         
            +
              def aws_options_hash
         
     | 
| 
      
 12 
     | 
    
         
            +
                opts = {}
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                opts[:http_proxy] = @proxy_uri if @proxy_uri
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                if @role_arn
         
     | 
| 
      
 17 
     | 
    
         
            +
                  credentials = assume_role(opts.dup)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  opts[:credentials] = credentials
         
     | 
| 
      
 19 
     | 
    
         
            +
                else
         
     | 
| 
      
 20 
     | 
    
         
            +
                  credentials = aws_credentials
         
     | 
| 
      
 21 
     | 
    
         
            +
                  opts[:credentials] = credentials if credentials
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                if self.respond_to?(:aws_service_endpoint)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  # used by CloudWatch to basically do the same as bellow (returns { region: region })
         
     | 
| 
      
 26 
     | 
    
         
            +
                  opts.merge!(self.aws_service_endpoint(@region))
         
     | 
| 
      
 27 
     | 
    
         
            +
                else
         
     | 
| 
      
 28 
     | 
    
         
            +
                  # NOTE: setting :region works with the aws sdk (resolves correct endpoint)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  opts[:region] = @region
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                opts[:endpoint] = @endpoint unless @endpoint.nil?
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                if respond_to?(:additional_settings)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  opts = symbolize_keys_and_cast_true_false(additional_settings).merge(opts)
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                if @use_aws_bundled_ca
         
     | 
| 
      
 39 
     | 
    
         
            +
                  aws_core_library = Gem.loaded_specs['aws-sdk-core']&.full_gem_path or fail("AWS Core library not available")
         
     | 
| 
      
 40 
     | 
    
         
            +
                  opts[:ssl_ca_bundle] = File.expand_path('ca-bundle.crt', aws_core_library).tap do |aws_core_ca_bundle|
         
     | 
| 
      
 41 
     | 
    
         
            +
                    fail("AWS Core CA bundle not found") unless File.exists?(aws_core_ca_bundle)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                return opts
         
     | 
| 
      
 46 
     | 
    
         
            +
              end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              private
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              def aws_credentials
         
     | 
| 
      
 51 
     | 
    
         
            +
                if @access_key_id && @secret_access_key
         
     | 
| 
      
 52 
     | 
    
         
            +
                  Aws::Credentials.new(@access_key_id, @secret_access_key.value, @session_token ? @session_token.value : nil)
         
     | 
| 
      
 53 
     | 
    
         
            +
                elsif @access_key_id.nil? ^ @secret_access_key.nil?
         
     | 
| 
      
 54 
     | 
    
         
            +
                  @logger.warn("Likely config error: Only one of access_key_id or secret_access_key was provided but not both.")
         
     | 
| 
      
 55 
     | 
    
         
            +
                  secret_access_key = @secret_access_key ? @secret_access_key.value : nil
         
     | 
| 
      
 56 
     | 
    
         
            +
                  Aws::Credentials.new(@access_key_id, secret_access_key, @session_token ? @session_token.value : nil)
         
     | 
| 
      
 57 
     | 
    
         
            +
                elsif @aws_credentials_file
         
     | 
| 
      
 58 
     | 
    
         
            +
                  credentials_opts = YAML.load_file(@aws_credentials_file)
         
     | 
| 
      
 59 
     | 
    
         
            +
                  credentials_opts.default_proc = lambda { |hash, key| hash.fetch(key.to_s, nil) }
         
     | 
| 
      
 60 
     | 
    
         
            +
                  Aws::Credentials.new(credentials_opts[:access_key_id],
         
     | 
| 
      
 61 
     | 
    
         
            +
                                       credentials_opts[:secret_access_key],
         
     | 
| 
      
 62 
     | 
    
         
            +
                                       credentials_opts[:session_token])
         
     | 
| 
      
 63 
     | 
    
         
            +
                else
         
     | 
| 
      
 64 
     | 
    
         
            +
                  nil # AWS client will read ENV or ~/.aws/credentials
         
     | 
| 
      
 65 
     | 
    
         
            +
                end
         
     | 
| 
      
 66 
     | 
    
         
            +
              end
         
     | 
| 
      
 67 
     | 
    
         
            +
              alias credentials aws_credentials
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
              def assume_role(opts = {})
         
     | 
| 
      
 70 
     | 
    
         
            +
                unless opts.key?(:credentials)
         
     | 
| 
      
 71 
     | 
    
         
            +
                  credentials = aws_credentials
         
     | 
| 
      
 72 
     | 
    
         
            +
                  opts[:credentials] = credentials if credentials
         
     | 
| 
      
 73 
     | 
    
         
            +
                end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                # for a regional endpoint :region is always required by AWS
         
     | 
| 
      
 76 
     | 
    
         
            +
                opts[:region] = @region
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                Aws::AssumeRoleCredentials.new(
         
     | 
| 
      
 79 
     | 
    
         
            +
                    :client => Aws::STS::Client.new(opts),
         
     | 
| 
      
 80 
     | 
    
         
            +
                    :role_arn => @role_arn,
         
     | 
| 
      
 81 
     | 
    
         
            +
                    :role_session_name => @role_session_name
         
     | 
| 
      
 82 
     | 
    
         
            +
                )
         
     | 
| 
      
 83 
     | 
    
         
            +
              end
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
              def symbolize_keys_and_cast_true_false(hash)
         
     | 
| 
      
 86 
     | 
    
         
            +
                case hash
         
     | 
| 
      
 87 
     | 
    
         
            +
                when Hash
         
     | 
| 
      
 88 
     | 
    
         
            +
                  symbolized = {}
         
     | 
| 
      
 89 
     | 
    
         
            +
                  hash.each { |key, value| symbolized[key.to_sym] = symbolize_keys_and_cast_true_false(value) }
         
     | 
| 
      
 90 
     | 
    
         
            +
                  symbolized
         
     | 
| 
      
 91 
     | 
    
         
            +
                when 'true'
         
     | 
| 
      
 92 
     | 
    
         
            +
                  true
         
     | 
| 
      
 93 
     | 
    
         
            +
                when 'false'
         
     | 
| 
      
 94 
     | 
    
         
            +
                  false
         
     | 
| 
      
 95 
     | 
    
         
            +
                else
         
     | 
| 
      
 96 
     | 
    
         
            +
                  hash
         
     | 
| 
      
 97 
     | 
    
         
            +
                end
         
     | 
| 
      
 98 
     | 
    
         
            +
              end
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       2 
2 
     | 
    
         
             
              s.name            = 'logstash-input-s3-sns-sqs'
         
     | 
| 
       3 
     | 
    
         
            -
              s.version         = '2.1. 
     | 
| 
      
 3 
     | 
    
         
            +
              s.version         = '2.2.1.pre'
         
     | 
| 
       4 
4 
     | 
    
         
             
              s.licenses        = ['Apache-2.0']
         
     | 
| 
       5 
5 
     | 
    
         
             
              s.summary         = "Get logs from AWS s3 buckets as issued by an object-created event via sns -> sqs."
         
     | 
| 
       6 
6 
     | 
    
         
             
              s.description     = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
         
     | 
| 
         @@ -19,10 +19,22 @@ Gem::Specification.new do |s| 
     | 
|
| 
       19 
19 
     | 
    
         
             
              s.metadata = { "logstash_plugin" => "true", "logstash_group" => "input" }
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
              # Gem dependencies
         
     | 
| 
       22 
     | 
    
         
            -
              s.add_runtime_dependency "logstash-core-plugin-api", " 
     | 
| 
      
 22 
     | 
    
         
            +
              s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
         
     | 
| 
      
 23 
     | 
    
         
            +
              s.add_runtime_dependency "concurrent-ruby"
         
     | 
| 
      
 24 
     | 
    
         
            +
              s.add_runtime_dependency 'stud', '>= 0.0.22'
         
     | 
| 
      
 25 
     | 
    
         
            +
              s.add_runtime_dependency "logstash-codec-json"
         
     | 
| 
      
 26 
     | 
    
         
            +
              s.add_runtime_dependency "logstash-codec-plain"
         
     | 
| 
      
 27 
     | 
    
         
            +
              s.add_runtime_dependency "aws-sdk-core", "~> 3"
         
     | 
| 
      
 28 
     | 
    
         
            +
              s.add_runtime_dependency "aws-sdk-s3"
         
     | 
| 
      
 29 
     | 
    
         
            +
              s.add_runtime_dependency "aws-sdk-sqs"
         
     | 
| 
      
 30 
     | 
    
         
            +
              s.add_runtime_dependency "aws-sdk-sns"
         
     | 
| 
      
 31 
     | 
    
         
            +
              s.add_runtime_dependency "aws-sdk-resourcegroups"
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              s.add_development_dependency "logstash-codec-json_lines"
         
     | 
| 
      
 34 
     | 
    
         
            +
              s.add_development_dependency "logstash-codec-multiline"
         
     | 
| 
      
 35 
     | 
    
         
            +
              s.add_development_dependency "logstash-codec-line"
         
     | 
| 
      
 36 
     | 
    
         
            +
              s.add_development_dependency 'logstash-devutils', '>= 0.0.16'
         
     | 
| 
      
 37 
     | 
    
         
            +
              s.add_development_dependency "logstash-input-generator"
         
     | 
| 
      
 38 
     | 
    
         
            +
              s.add_development_dependency "timecop"
         
     | 
| 
       23 
39 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
              s.add_runtime_dependency 'logstash-codec-json', '~> 3.0'
         
     | 
| 
       25 
     | 
    
         
            -
              s.add_runtime_dependency 'logstash-mixin-aws', '>= 4.3'
         
     | 
| 
       26 
     | 
    
         
            -
              s.add_development_dependency 'logstash-codec-json_stream', '~> 1.0'
         
     | 
| 
       27 
     | 
    
         
            -
              s.add_development_dependency 'logstash-devutils', '~> 1.3'
         
     | 
| 
       28 
40 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,91 +1,239 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: logstash-input-s3-sns-sqs
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.2.1.pre
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Christian Herweg
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2023-11-13 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 15 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 16 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 17 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 18 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
      
 19 
     | 
    
         
            +
              name: logstash-core-plugin-api
         
     | 
| 
      
 20 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 21 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 29 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 30 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 31 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 32 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 33 
     | 
    
         
            +
              name: concurrent-ruby
         
     | 
| 
      
 34 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 35 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       15 
37 
     | 
    
         
             
                requirements:
         
     | 
| 
       16 
38 
     | 
    
         
             
                - - ">="
         
     | 
| 
       17 
39 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       18 
     | 
    
         
            -
                    version:  
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 41 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 42 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 43 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 44 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       20 
45 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       21 
     | 
    
         
            -
                    version:  
     | 
| 
       22 
     | 
    
         
            -
              name:  
     | 
| 
      
 46 
     | 
    
         
            +
                    version: 0.0.22
         
     | 
| 
      
 47 
     | 
    
         
            +
              name: stud
         
     | 
| 
       23 
48 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
49 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       25 
50 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       26 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       27 
52 
     | 
    
         
             
                - - ">="
         
     | 
| 
       28 
53 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       29 
     | 
    
         
            -
                    version:  
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
      
 54 
     | 
    
         
            +
                    version: 0.0.22
         
     | 
| 
      
 55 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 56 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 57 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 58 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 59 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 60 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 61 
     | 
    
         
            +
              name: logstash-codec-json
         
     | 
| 
      
 62 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 63 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 64 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 65 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 66 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       31 
67 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       32 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 68 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 69 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 70 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 71 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 72 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 73 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 74 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 75 
     | 
    
         
            +
              name: logstash-codec-plain
         
     | 
| 
      
 76 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 77 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 78 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 79 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 80 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 81 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 82 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       33 
83 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       34 
84 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       35 
85 
     | 
    
         
             
                requirements:
         
     | 
| 
       36 
86 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       37 
87 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       38 
     | 
    
         
            -
                    version: '3 
     | 
| 
       39 
     | 
    
         
            -
              name:  
     | 
| 
      
 88 
     | 
    
         
            +
                    version: '3'
         
     | 
| 
      
 89 
     | 
    
         
            +
              name: aws-sdk-core
         
     | 
| 
       40 
90 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       41 
91 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       42 
92 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       43 
93 
     | 
    
         
             
                requirements:
         
     | 
| 
       44 
94 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       45 
95 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       46 
     | 
    
         
            -
                    version: '3 
     | 
| 
      
 96 
     | 
    
         
            +
                    version: '3'
         
     | 
| 
       47 
97 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       48 
98 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       49 
99 
     | 
    
         
             
                requirements:
         
     | 
| 
       50 
100 
     | 
    
         
             
                - - ">="
         
     | 
| 
       51 
101 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       52 
     | 
    
         
            -
                    version: ' 
     | 
| 
       53 
     | 
    
         
            -
              name:  
     | 
| 
      
 102 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 103 
     | 
    
         
            +
              name: aws-sdk-s3
         
     | 
| 
       54 
104 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       55 
105 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       56 
106 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       57 
107 
     | 
    
         
             
                requirements:
         
     | 
| 
       58 
108 
     | 
    
         
             
                - - ">="
         
     | 
| 
       59 
109 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       60 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 110 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       61 
111 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       62 
112 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       63 
113 
     | 
    
         
             
                requirements:
         
     | 
| 
       64 
     | 
    
         
            -
                - - " 
     | 
| 
      
 114 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       65 
115 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       66 
     | 
    
         
            -
                    version: ' 
     | 
| 
       67 
     | 
    
         
            -
              name:  
     | 
| 
      
 116 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 117 
     | 
    
         
            +
              name: aws-sdk-sqs
         
     | 
| 
      
 118 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 119 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 120 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 121 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 122 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 123 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 124 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 125 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 126 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 127 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 128 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 129 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 130 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 131 
     | 
    
         
            +
              name: aws-sdk-sns
         
     | 
| 
      
 132 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 133 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 134 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 135 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 136 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 137 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 138 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 139 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 140 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 141 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 142 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 143 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 144 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 145 
     | 
    
         
            +
              name: aws-sdk-resourcegroups
         
     | 
| 
      
 146 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 147 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 148 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 149 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 150 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 151 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 152 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 153 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 154 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 155 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 156 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 157 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 158 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 159 
     | 
    
         
            +
              name: logstash-codec-json_lines
         
     | 
| 
       68 
160 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       69 
161 
     | 
    
         
             
              type: :development
         
     | 
| 
       70 
162 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       71 
163 
     | 
    
         
             
                requirements:
         
     | 
| 
       72 
     | 
    
         
            -
                - - " 
     | 
| 
      
 164 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       73 
165 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       74 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 166 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       75 
167 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       76 
168 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       77 
169 
     | 
    
         
             
                requirements:
         
     | 
| 
       78 
     | 
    
         
            -
                - - " 
     | 
| 
      
 170 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 171 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 172 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 173 
     | 
    
         
            +
              name: logstash-codec-multiline
         
     | 
| 
      
 174 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 175 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 176 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 177 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 178 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 179 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 180 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 181 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 182 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 183 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 184 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 185 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 186 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 187 
     | 
    
         
            +
              name: logstash-codec-line
         
     | 
| 
      
 188 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 189 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 190 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 191 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 192 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       79 
193 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       80 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 194 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 195 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 196 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 197 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 198 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 199 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 200 
     | 
    
         
            +
                    version: 0.0.16
         
     | 
| 
       81 
201 
     | 
    
         
             
              name: logstash-devutils
         
     | 
| 
       82 
202 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       83 
203 
     | 
    
         
             
              type: :development
         
     | 
| 
       84 
204 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       85 
205 
     | 
    
         
             
                requirements:
         
     | 
| 
       86 
     | 
    
         
            -
                - - " 
     | 
| 
      
 206 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       87 
207 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       88 
     | 
    
         
            -
                    version:  
     | 
| 
      
 208 
     | 
    
         
            +
                    version: 0.0.16
         
     | 
| 
      
 209 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 210 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 211 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 212 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 213 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 214 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 215 
     | 
    
         
            +
              name: logstash-input-generator
         
     | 
| 
      
 216 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 217 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 218 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 219 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 220 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 221 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 222 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 223 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 224 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 225 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 226 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 227 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 228 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 229 
     | 
    
         
            +
              name: timecop
         
     | 
| 
      
 230 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 231 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 232 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 233 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 234 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 235 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 236 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       89 
237 
     | 
    
         
             
            description: This gem is a logstash plugin required to be installed on top of the
         
     | 
| 
       90 
238 
     | 
    
         
             
              Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not
         
     | 
| 
       91 
239 
     | 
    
         
             
              a stand-alone program
         
     | 
| 
         @@ -106,8 +254,10 @@ files: 
     | 
|
| 
       106 
254 
     | 
    
         
             
            - lib/logstash/inputs/s3/downloader.rb
         
     | 
| 
       107 
255 
     | 
    
         
             
            - lib/logstash/inputs/s3snssqs.rb
         
     | 
| 
       108 
256 
     | 
    
         
             
            - lib/logstash/inputs/s3snssqs/log_processor.rb
         
     | 
| 
       109 
     | 
    
         
            -
            - lib/logstash/inputs/s3sqs/patch.rb
         
     | 
| 
       110 
257 
     | 
    
         
             
            - lib/logstash/inputs/sqs/poller.rb
         
     | 
| 
      
 258 
     | 
    
         
            +
            - lib/logstash/plugin_mixins/aws_config.rb
         
     | 
| 
      
 259 
     | 
    
         
            +
            - lib/logstash/plugin_mixins/aws_config/generic.rb
         
     | 
| 
      
 260 
     | 
    
         
            +
            - lib/logstash/plugin_mixins/aws_config/v2.rb
         
     | 
| 
       111 
261 
     | 
    
         
             
            - logstash-input-s3-sns-sqs.gemspec
         
     | 
| 
       112 
262 
     | 
    
         
             
            - spec/inputs/s3sqs_spec.rb
         
     | 
| 
       113 
263 
     | 
    
         
             
            homepage: https://github.com/cherweg/logstash-input-s3-sns-sqs
         
     | 
| 
         @@ -127,12 +277,11 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       127 
277 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       128 
278 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       129 
279 
     | 
    
         
             
              requirements:
         
     | 
| 
       130 
     | 
    
         
            -
              - - " 
     | 
| 
      
 280 
     | 
    
         
            +
              - - ">"
         
     | 
| 
       131 
281 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       132 
     | 
    
         
            -
                  version:  
     | 
| 
      
 282 
     | 
    
         
            +
                  version: 1.3.1
         
     | 
| 
       133 
283 
     | 
    
         
             
            requirements: []
         
     | 
| 
       134 
     | 
    
         
            -
             
     | 
| 
       135 
     | 
    
         
            -
            rubygems_version: 2.6.13
         
     | 
| 
      
 284 
     | 
    
         
            +
            rubygems_version: 3.2.29
         
     | 
| 
       136 
285 
     | 
    
         
             
            signing_key:
         
     | 
| 
       137 
286 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       138 
287 
     | 
    
         
             
            summary: Get logs from AWS s3 buckets as issued by an object-created event via sns
         
     | 
| 
         @@ -1,22 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # This patch was stolen from logstash-plugins/logstash-output-s3#102.
         
     | 
| 
       2 
     | 
    
         
            -
            #
         
     | 
| 
       3 
     | 
    
         
            -
            # This patch is a workaround for a JRuby issue which has been fixed in JRuby
         
     | 
| 
       4 
     | 
    
         
            -
            # 9000, but not in JRuby 1.7. See https://github.com/jruby/jruby/issues/3645
         
     | 
| 
       5 
     | 
    
         
            -
            # and https://github.com/jruby/jruby/issues/3920. This is necessary because the
         
     | 
| 
       6 
     | 
    
         
            -
            # `aws-sdk` is doing tricky name discovery to generate the correct error class.
         
     | 
| 
       7 
     | 
    
         
            -
            #
         
     | 
| 
       8 
     | 
    
         
            -
            # As per https://github.com/aws/aws-sdk-ruby/issues/1301#issuecomment-261115960,
         
     | 
| 
       9 
     | 
    
         
            -
            # this patch may be short-lived anyway.
         
     | 
| 
       10 
     | 
    
         
            -
            require 'aws-sdk'
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            begin
         
     | 
| 
       13 
     | 
    
         
            -
              old_stderr = $stderr
         
     | 
| 
       14 
     | 
    
         
            -
              $stderr = StringIO.new
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              module Aws
         
     | 
| 
       17 
     | 
    
         
            -
                const_set(:S3, Aws::S3)
         
     | 
| 
       18 
     | 
    
         
            -
                const_set(:SQS, Aws::SQS)
         
     | 
| 
       19 
     | 
    
         
            -
              end
         
     | 
| 
       20 
     | 
    
         
            -
            ensure
         
     | 
| 
       21 
     | 
    
         
            -
              $stderr = old_stderr
         
     | 
| 
       22 
     | 
    
         
            -
            end
         
     |