Class: Lambit::Aws::S3::BucketNotificationConfiguration
- Inherits:
-
Object
- Object
- Lambit::Aws::S3::BucketNotificationConfiguration
- Defined in:
- lib/lambit/aws/s3/bucket_notification_configuration.rb
Constant Summary collapse
- OPTIONS =
[ :bucket, :notification_configuration, :use_accelerate_endpoint ].each { |option| attr_reader option }
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
- #add ⇒ Object
-
#initialize(config) ⇒ BucketNotificationConfiguration
constructor
A new instance of BucketNotificationConfiguration.
- #notification_configuration_types ⇒ Object
- #put(opts) ⇒ Object
- #remove ⇒ Object
Constructor Details
#initialize(config) ⇒ BucketNotificationConfiguration
Returns a new instance of BucketNotificationConfiguration.
18 19 20 21 22 23 24 25 26 |
# File 'lib/lambit/aws/s3/bucket_notification_configuration.rb', line 18 def initialize(config) @client = ::Aws::S3::Client.new OPTIONS.each do |option| if config.has_key?(option) instance_variable_set("@#{option}", config[option]) end end end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
15 16 17 |
# File 'lib/lambit/aws/s3/bucket_notification_configuration.rb', line 15 def client @client end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
16 17 18 |
# File 'lib/lambit/aws/s3/bucket_notification_configuration.rb', line 16 def @options end |
Instance Method Details
#add ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/lambit/aws/s3/bucket_notification_configuration.rb', line 46 def add config = self.client.get_bucket_notification_configuration(:bucket => [:bucket]) notification_configuration_types.each do |type| = [:notification_configuration][type].to_a.map { |r| [r[:id], r] }.to_h config_hash = config.send(type).to_a.map { |r| [r[:id], r.to_hash] }.to_h [:notification_configuration][type] = config_hash.merge().values end put() end |
#notification_configuration_types ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/lambit/aws/s3/bucket_notification_configuration.rb', line 38 def notification_configuration_types types = [ :topic_configurations, :lambda_function_configurations, :queue_configurations ] end |
#put(opts) ⇒ Object
70 71 72 73 74 75 76 77 |
# File 'lib/lambit/aws/s3/bucket_notification_configuration.rb', line 70 def put(opts) r = self.client.put_bucket_notification_configuration(opts) notification_configuration_types.each do |type| puts self.client.get_bucket_notification_configuration(:bucket => opts[:bucket]).send type end if Lambit.is_debug? r end |
#remove ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/lambit/aws/s3/bucket_notification_configuration.rb', line 58 def remove config = self.client.get_bucket_notification_configuration(:bucket => [:bucket]) notification_configuration_types.each do |type| = [:notification_configuration][type].to_a.map { |r| [r[:id], r] }.to_h config_hash = config.send(type).to_a.map { |r| [r[:id], r.to_hash] }.to_h [:notification_configuration][type] = config_hash.difference().values end put() end |