diff --git a/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb b/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb index ef9bc795d..672a1ec91 100644 --- a/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb +++ b/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb @@ -5,7 +5,9 @@ module Fog class GetBucketLifecycle < Fog::Parsers::Base def reset @expiration = {} + @version_expiration = {} @transition = {} + @version_transition = {} @rule = {} @response = { 'Rules' => [] } end @@ -17,6 +19,10 @@ module Fog @in_expiration = true when 'Transition' @in_transition = true + when 'NoncurrentVersionExpiration' + @in_version_expiration = true + when 'NoncurrentVersionTransition' + @in_version_transition = true end end @@ -32,19 +38,43 @@ module Fog @in_expiration = false @expiration = {} end + elsif @in_version_expiration + case name + when 'NoncurrentDays' + @version_expiration[name] = value.to_i + when 'Date' + @version_expiration[name] = value + when 'NoncurrentVersionExpiration' + @rule['NoncurrentVersionExpiration'] = @version_expiration + @in_version_expiration = false + @version_expiration = {} + end elsif @in_transition case name when 'StorageClass', @transition['StorageClass'] = value when 'Date' @transition[name] = value - when 'Days' + when 'NoncurrentDays' @transition[name] = value.to_i when 'Transition' @rule['Transition'] = @transition @in_transition = false @transition = {} end + elsif @in_version_transition + case name + when 'StorageClass', + @version_transition['StorageClass'] = value + when 'Date' + @version_transition[name] = value + when 'Days' + @version_transition[name] = value.to_i + when 'NoncurrentVersionTransition' + @rule['NoncurrentVersionTransition'] = @transition + @in_version_transition = false + @version_transition = {} + end else case name when 'ID', 'Prefix'