aws-sdk-s3control 1.40.0 → 1.43.0
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 +22 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-s3control/arn/outpost_access_point_arn.rb +15 -9
- data/lib/aws-sdk-s3control/arn/outpost_bucket_arn.rb +13 -8
- data/lib/aws-sdk-s3control/client.rb +14 -5
- data/lib/aws-sdk-s3control/client_api.rb +6 -1
- data/lib/aws-sdk-s3control/plugins/arn.rb +12 -32
- data/lib/aws-sdk-s3control/plugins/dualstack.rb +13 -23
- data/lib/aws-sdk-s3control/plugins/s3_control_signer.rb +3 -2
- data/lib/aws-sdk-s3control/types.rb +51 -4
- data/lib/aws-sdk-s3control.rb +1 -1
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 87652068908ee179c73f75cd1b51c54d47af2d6bd939b1d2df45c9d1b0b29b94
         | 
| 4 | 
            +
              data.tar.gz: 272033beb0df35f8f5eff22e13b9fd779b0503e515ffb6c53aae06de1c935d8f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: d6f1c5e7115a4ad1d2831aae3685e1540cff6f6c9269fe5780f8ad927cc1faacffea320a1a2c7371a6b08e87bb1365104fd5102831547ba36e3a39cc19b61d8e
         | 
| 7 | 
            +
              data.tar.gz: d1ee19d88714be6323c6a5c53cf854223e200ee04dc4537493081e86eb7f6f422e61ef9bcf7bf3cbe6cde7285207e175353931c5a9b663739e2d73e2369bf825
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,6 +1,28 @@ | |
| 1 1 | 
             
            Unreleased Changes
         | 
| 2 2 | 
             
            ------------------
         | 
| 3 3 |  | 
| 4 | 
            +
            1.43.0 (2021-11-22)
         | 
| 5 | 
            +
            ------------------
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            * Feature - Added Amazon CloudWatch publishing option for S3 Storage Lens metrics.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            1.42.0 (2021-11-04)
         | 
| 10 | 
            +
            ------------------
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            * Feature - Support FIPS endpoints for S3 Outposts using Bucket and Access Point ARNs.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            1.41.1 (2021-10-20)
         | 
| 17 | 
            +
            ------------------
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            * Issue - use the correct service with the `EndpointProvider` to determine `sigv4_region`.
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            1.41.0 (2021-10-18)
         | 
| 22 | 
            +
            ------------------
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
         | 
| 25 | 
            +
             | 
| 4 26 | 
             
            1.40.0 (2021-09-02)
         | 
| 5 27 | 
             
            ------------------
         | 
| 6 28 |  | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            1. | 
| 1 | 
            +
            1.43.0
         | 
| @@ -23,30 +23,36 @@ module Aws | |
| 23 23 | 
             
                  end
         | 
| 24 24 |  | 
| 25 25 | 
             
                  def support_fips?
         | 
| 26 | 
            -
                     | 
| 26 | 
            +
                    true
         | 
| 27 27 | 
             
                  end
         | 
| 28 28 |  | 
| 29 29 | 
             
                  def validate_arn!
         | 
| 30 30 | 
             
                    unless @service == 's3-outposts'
         | 
| 31 | 
            -
                      raise ArgumentError, 'Must provide a valid S3  | 
| 31 | 
            +
                      raise ArgumentError, 'Must provide a valid S3 Outpost Access '\
         | 
| 32 | 
            +
                                           'Point ARN.'
         | 
| 32 33 | 
             
                    end
         | 
| 33 34 |  | 
| 34 35 | 
             
                    if @region.empty? || @account_id.empty?
         | 
| 35 36 | 
             
                      raise ArgumentError,
         | 
| 36 | 
            -
                            'S3  | 
| 37 | 
            -
                            'and an  | 
| 37 | 
            +
                            'S3 Outpost Access Point ARNs must contain both a region '\
         | 
| 38 | 
            +
                            'and an Account ID.'
         | 
| 39 | 
            +
                    end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                    if @region.include?('-fips') || @region.include?('fips-')
         | 
| 42 | 
            +
                      raise ArgumentError,
         | 
| 43 | 
            +
                            'S3 Outpost Access Point ARNs cannot contain a FIPS region.'
         | 
| 38 44 | 
             
                    end
         | 
| 39 45 |  | 
| 40 46 | 
             
                    if @type != 'outpost' && @subtype != 'accesspoint'
         | 
| 41 | 
            -
                      raise ArgumentError, 'Invalid ARN, resource format is not correct'
         | 
| 47 | 
            +
                      raise ArgumentError, 'Invalid ARN, resource format is not correct.'
         | 
| 42 48 | 
             
                    end
         | 
| 43 49 |  | 
| 44 50 | 
             
                    if @outpost_id.nil? || @outpost_id.empty?
         | 
| 45 | 
            -
                      raise ArgumentError, 'Missing ARN  | 
| 51 | 
            +
                      raise ArgumentError, 'Missing ARN Outpost ID.'
         | 
| 46 52 | 
             
                    end
         | 
| 47 53 |  | 
| 48 54 | 
             
                    if @access_point_name.nil? || @access_point_name.empty?
         | 
| 49 | 
            -
                      raise ArgumentError, 'Missing ARN  | 
| 55 | 
            +
                      raise ArgumentError, 'Missing ARN Access Point name.'
         | 
| 50 56 | 
             
                    end
         | 
| 51 57 |  | 
| 52 58 | 
             
                    if @extra
         | 
| @@ -68,11 +74,11 @@ module Aws | |
| 68 74 | 
             
                  end
         | 
| 69 75 |  | 
| 70 76 | 
             
                  # Outpost Access Point ARNs currently do not support dualstack
         | 
| 71 | 
            -
                  def host_url(region, _dualstack = false, custom_endpoint = nil)
         | 
| 77 | 
            +
                  def host_url(region, fips = false, _dualstack = false, custom_endpoint = nil)
         | 
| 72 78 | 
             
                    if custom_endpoint
         | 
| 73 79 | 
             
                      custom_endpoint
         | 
| 74 80 | 
             
                    else
         | 
| 75 | 
            -
                      "s3-outposts.#{region}.amazonaws.com"
         | 
| 81 | 
            +
                      "s3-outposts#{'-fips' if fips}.#{region}.amazonaws.com"
         | 
| 76 82 | 
             
                    end
         | 
| 77 83 | 
             
                  end
         | 
| 78 84 | 
             
                end
         | 
| @@ -28,13 +28,18 @@ module Aws | |
| 28 28 |  | 
| 29 29 | 
             
                  def validate_arn!
         | 
| 30 30 | 
             
                    unless @service == 's3-outposts'
         | 
| 31 | 
            -
                      raise ArgumentError, 'Must provide a valid S3  | 
| 31 | 
            +
                      raise ArgumentError, 'Must provide a valid S3 Outpost Bucket ARN.'
         | 
| 32 32 | 
             
                    end
         | 
| 33 33 |  | 
| 34 34 | 
             
                    if @region.empty? || @account_id.empty?
         | 
| 35 35 | 
             
                      raise ArgumentError,
         | 
| 36 | 
            -
                            'S3  | 
| 37 | 
            -
                            'and an  | 
| 36 | 
            +
                            'S3 Outpost Bucket ARNs must contain both a region '\
         | 
| 37 | 
            +
                            'and an Account ID.'
         | 
| 38 | 
            +
                    end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                    if @region.include?('-fips') || @region.include?('fips-')
         | 
| 41 | 
            +
                      raise ArgumentError,
         | 
| 42 | 
            +
                            'S3 Outpost Bucket ARNs cannot contain a FIPS region.'
         | 
| 38 43 | 
             
                    end
         | 
| 39 44 |  | 
| 40 45 | 
             
                    if @type != 'outpost' && @subtype != 'bucket'
         | 
| @@ -42,16 +47,16 @@ module Aws | |
| 42 47 | 
             
                    end
         | 
| 43 48 |  | 
| 44 49 | 
             
                    if @outpost_id.nil? || @outpost_id.empty?
         | 
| 45 | 
            -
                      raise ArgumentError, 'Missing ARN  | 
| 50 | 
            +
                      raise ArgumentError, 'Missing ARN Outpost ID.'
         | 
| 46 51 | 
             
                    end
         | 
| 47 52 |  | 
| 48 53 | 
             
                    if @bucket_name.nil? || @bucket_name.empty?
         | 
| 49 | 
            -
                      raise ArgumentError, 'Missing ARN  | 
| 54 | 
            +
                      raise ArgumentError, 'Missing ARN bucket name.'
         | 
| 50 55 | 
             
                    end
         | 
| 51 56 |  | 
| 52 57 | 
             
                    if @extra
         | 
| 53 58 | 
             
                      raise ArgumentError,
         | 
| 54 | 
            -
                            'ARN  | 
| 59 | 
            +
                            'ARN Outpost bucket must be a single value.'
         | 
| 55 60 | 
             
                    end
         | 
| 56 61 |  | 
| 57 62 | 
             
                    unless Seahorse::Util.host_label?(@outpost_id)
         | 
| @@ -64,11 +69,11 @@ module Aws | |
| 64 69 | 
             
                  end
         | 
| 65 70 |  | 
| 66 71 | 
             
                  # Outpost Bucket ARNs currently do not support dualstack
         | 
| 67 | 
            -
                  def host_url(region, _dualstack = false, custom_endpoint = nil)
         | 
| 72 | 
            +
                  def host_url(region, fips = false, _dualstack = false, custom_endpoint = nil)
         | 
| 68 73 | 
             
                    if custom_endpoint
         | 
| 69 74 | 
             
                      custom_endpoint
         | 
| 70 75 | 
             
                    else
         | 
| 71 | 
            -
                      "s3-outposts.#{region}.amazonaws.com"
         | 
| 76 | 
            +
                      "s3-outposts#{'-fips' if fips}.#{region}.amazonaws.com"
         | 
| 72 77 | 
             
                    end
         | 
| 73 78 | 
             
                  end
         | 
| 74 79 | 
             
                end
         | 
| @@ -287,9 +287,14 @@ module Aws::S3Control | |
| 287 287 | 
             
                #     ** Please note ** When response stubbing is enabled, no HTTP
         | 
| 288 288 | 
             
                #     requests are made, and retries are disabled.
         | 
| 289 289 | 
             
                #
         | 
| 290 | 
            -
                #   @option options [Boolean] :use_dualstack_endpoint | 
| 291 | 
            -
                #     When set to `true`,  | 
| 292 | 
            -
                #      | 
| 290 | 
            +
                #   @option options [Boolean] :use_dualstack_endpoint
         | 
| 291 | 
            +
                #     When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
         | 
| 292 | 
            +
                #     will be used if available.
         | 
| 293 | 
            +
                #
         | 
| 294 | 
            +
                #   @option options [Boolean] :use_fips_endpoint
         | 
| 295 | 
            +
                #     When set to `true`, fips compatible endpoints will be used if available.
         | 
| 296 | 
            +
                #     When a `fips` region is used, the region is normalized and this config
         | 
| 297 | 
            +
                #     is set to `true`.
         | 
| 293 298 | 
             
                #
         | 
| 294 299 | 
             
                #   @option options [Boolean] :validate_params (true)
         | 
| 295 300 | 
             
                #     When `true`, request parameters are validated before
         | 
| @@ -3095,6 +3100,7 @@ module Aws::S3Control | |
| 3095 3100 | 
             
                #   resp.storage_lens_configuration.data_export.s3_bucket_destination.arn #=> String
         | 
| 3096 3101 | 
             
                #   resp.storage_lens_configuration.data_export.s3_bucket_destination.prefix #=> String
         | 
| 3097 3102 | 
             
                #   resp.storage_lens_configuration.data_export.s3_bucket_destination.encryption.ssekms.key_id #=> String
         | 
| 3103 | 
            +
                #   resp.storage_lens_configuration.data_export.cloud_watch_metrics.is_enabled #=> Boolean
         | 
| 3098 3104 | 
             
                #   resp.storage_lens_configuration.is_enabled #=> Boolean
         | 
| 3099 3105 | 
             
                #   resp.storage_lens_configuration.aws_org.arn #=> String
         | 
| 3100 3106 | 
             
                #   resp.storage_lens_configuration.storage_lens_arn #=> String
         | 
| @@ -4417,7 +4423,7 @@ module Aws::S3Control | |
| 4417 4423 | 
             
                #         regions: ["S3AWSRegion"],
         | 
| 4418 4424 | 
             
                #       },
         | 
| 4419 4425 | 
             
                #       data_export: {
         | 
| 4420 | 
            -
                #         s3_bucket_destination: { | 
| 4426 | 
            +
                #         s3_bucket_destination: {
         | 
| 4421 4427 | 
             
                #           format: "CSV", # required, accepts CSV, Parquet
         | 
| 4422 4428 | 
             
                #           output_schema_version: "V_1", # required, accepts V_1
         | 
| 4423 4429 | 
             
                #           account_id: "AccountId", # required
         | 
| @@ -4431,6 +4437,9 @@ module Aws::S3Control | |
| 4431 4437 | 
             
                #             },
         | 
| 4432 4438 | 
             
                #           },
         | 
| 4433 4439 | 
             
                #         },
         | 
| 4440 | 
            +
                #         cloud_watch_metrics: {
         | 
| 4441 | 
            +
                #           is_enabled: false, # required
         | 
| 4442 | 
            +
                #         },
         | 
| 4434 4443 | 
             
                #       },
         | 
| 4435 4444 | 
             
                #       is_enabled: false, # required
         | 
| 4436 4445 | 
             
                #       aws_org: {
         | 
| @@ -4652,7 +4661,7 @@ module Aws::S3Control | |
| 4652 4661 | 
             
                    params: params,
         | 
| 4653 4662 | 
             
                    config: config)
         | 
| 4654 4663 | 
             
                  context[:gem_name] = 'aws-sdk-s3control'
         | 
| 4655 | 
            -
                  context[:gem_version] = '1. | 
| 4664 | 
            +
                  context[:gem_version] = '1.43.0'
         | 
| 4656 4665 | 
             
                  Seahorse::Client::Request.new(handlers, context)
         | 
| 4657 4666 | 
             
                end
         | 
| 4658 4667 |  | 
| @@ -41,6 +41,7 @@ module Aws::S3Control | |
| 41 41 | 
             
                BucketLocationConstraint = Shapes::StringShape.new(name: 'BucketLocationConstraint')
         | 
| 42 42 | 
             
                BucketName = Shapes::StringShape.new(name: 'BucketName')
         | 
| 43 43 | 
             
                Buckets = Shapes::ListShape.new(name: 'Buckets')
         | 
| 44 | 
            +
                CloudWatchMetrics = Shapes::StructureShape.new(name: 'CloudWatchMetrics')
         | 
| 44 45 | 
             
                ConfigId = Shapes::StringShape.new(name: 'ConfigId')
         | 
| 45 46 | 
             
                ConfirmRemoveSelfBucketAccess = Shapes::BooleanShape.new(name: 'ConfirmRemoveSelfBucketAccess')
         | 
| 46 47 | 
             
                ConfirmationRequired = Shapes::BooleanShape.new(name: 'ConfirmationRequired')
         | 
| @@ -399,6 +400,9 @@ module Aws::S3Control | |
| 399 400 |  | 
| 400 401 | 
             
                Buckets.member = Shapes::ShapeRef.new(shape: S3BucketArnString, location_name: "Arn")
         | 
| 401 402 |  | 
| 403 | 
            +
                CloudWatchMetrics.add_member(:is_enabled, Shapes::ShapeRef.new(shape: IsEnabled, required: true, location_name: "IsEnabled"))
         | 
| 404 | 
            +
                CloudWatchMetrics.struct_class = Types::CloudWatchMetrics
         | 
| 405 | 
            +
             | 
| 402 406 | 
             
                CreateAccessPointForObjectLambdaRequest.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, required: true, location: "header", location_name: "x-amz-account-id", metadata: {"hostLabel"=>true, "hostLabelName"=>"AccountId"}))
         | 
| 403 407 | 
             
                CreateAccessPointForObjectLambdaRequest.add_member(:name, Shapes::ShapeRef.new(shape: ObjectLambdaAccessPointName, required: true, location: "uri", location_name: "name"))
         | 
| 404 408 | 
             
                CreateAccessPointForObjectLambdaRequest.add_member(:configuration, Shapes::ShapeRef.new(shape: ObjectLambdaConfiguration, required: true, location_name: "Configuration"))
         | 
| @@ -1186,7 +1190,8 @@ module Aws::S3Control | |
| 1186 1190 |  | 
| 1187 1191 | 
             
                StorageLensConfigurationList.member = Shapes::ShapeRef.new(shape: ListStorageLensConfigurationEntry, location_name: "StorageLensConfiguration")
         | 
| 1188 1192 |  | 
| 1189 | 
            -
                StorageLensDataExport.add_member(:s3_bucket_destination, Shapes::ShapeRef.new(shape: S3BucketDestination,  | 
| 1193 | 
            +
                StorageLensDataExport.add_member(:s3_bucket_destination, Shapes::ShapeRef.new(shape: S3BucketDestination, location_name: "S3BucketDestination"))
         | 
| 1194 | 
            +
                StorageLensDataExport.add_member(:cloud_watch_metrics, Shapes::ShapeRef.new(shape: CloudWatchMetrics, location_name: "CloudWatchMetrics"))
         | 
| 1190 1195 | 
             
                StorageLensDataExport.struct_class = Types::StorageLensDataExport
         | 
| 1191 1196 |  | 
| 1192 1197 | 
             
                StorageLensDataExportEncryption.add_member(:sses3, Shapes::ShapeRef.new(shape: SSES3, location_name: "SSE-S3"))
         | 
| @@ -39,6 +39,7 @@ client's region instead. | |
| 39 39 | 
             
                            context.http_request.endpoint,
         | 
| 40 40 | 
             
                            context.metadata[:s3_arn][:arn],
         | 
| 41 41 | 
             
                            context.metadata[:s3_arn][:resolved_region],
         | 
| 42 | 
            +
                            context.metadata[:s3_arn][:fips],
         | 
| 42 43 | 
             
                            context.metadata[:s3_arn][:dualstack],
         | 
| 43 44 | 
             
                            # if regional_endpoint is false, a custom endpoint was provided
         | 
| 44 45 | 
             
                            # in this case, we want to prefix the endpoint using the ARN
         | 
| @@ -78,6 +79,7 @@ client's region instead. | |
| 78 79 | 
             
                            context.metadata[:s3_arn] = {
         | 
| 79 80 | 
             
                              arn: arn,
         | 
| 80 81 | 
             
                              resolved_region: resolved_region,
         | 
| 82 | 
            +
                              fips: context.config.use_fips_endpoint,
         | 
| 81 83 | 
             
                              dualstack: extract_dualstack_config!(context)
         | 
| 82 84 | 
             
                            }
         | 
| 83 85 | 
             
                          end
         | 
| @@ -121,8 +123,8 @@ client's region instead. | |
| 121 123 | 
             
                      def validate_config!(context, arn)
         | 
| 122 124 | 
             
                        if !arn.support_dualstack? && context[:use_dualstack_endpoint]
         | 
| 123 125 | 
             
                          raise ArgumentError,
         | 
| 124 | 
            -
                                'Cannot provide an Outpost Access Point ARN  | 
| 125 | 
            -
                                '`:use_dualstack_endpoint` is set to true.'
         | 
| 126 | 
            +
                                'Cannot provide an Outpost Access Point or Bucket ARN '\
         | 
| 127 | 
            +
                                'when `:use_dualstack_endpoint` is set to true.'
         | 
| 126 128 | 
             
                        end
         | 
| 127 129 | 
             
                      end
         | 
| 128 130 |  | 
| @@ -165,9 +167,9 @@ client's region instead. | |
| 165 167 | 
             
                      end
         | 
| 166 168 |  | 
| 167 169 | 
             
                      # @api private
         | 
| 168 | 
            -
                      def resolve_url!(url, arn, region, dualstack = false, has_custom_endpoint = false)
         | 
| 170 | 
            +
                      def resolve_url!(url, arn, region, fips = false, dualstack = false, has_custom_endpoint = false)
         | 
| 169 171 | 
             
                        custom_endpoint = url.host if has_custom_endpoint
         | 
| 170 | 
            -
                        url.host = arn.host_url(region, dualstack, custom_endpoint)
         | 
| 172 | 
            +
                        url.host = arn.host_url(region, fips, dualstack, custom_endpoint)
         | 
| 171 173 | 
             
                        url
         | 
| 172 174 | 
             
                      end
         | 
| 173 175 |  | 
| @@ -189,35 +191,13 @@ client's region instead. | |
| 189 191 | 
             
                      end
         | 
| 190 192 |  | 
| 191 193 | 
             
                      def validate_region_config!(arn, region, use_arn_region)
         | 
| 192 | 
            -
                         | 
| 193 | 
            -
             | 
| 194 | 
            -
             | 
| 195 | 
            -
                         | 
| 196 | 
            -
                        unless arn.partition == 'aws' &&
         | 
| 197 | 
            -
                               (region == 's3-external-1' || region == 'aws-global')
         | 
| 198 | 
            -
                          if !fips && arn.region.include?('fips')
         | 
| 199 | 
            -
                            raise ArgumentError,
         | 
| 200 | 
            -
                                  'FIPS region ARNs are not supported for this type of ARN.'
         | 
| 201 | 
            -
                          end
         | 
| 202 | 
            -
             | 
| 203 | 
            -
                          if !fips && !use_arn_region && region.include?('fips')
         | 
| 204 | 
            -
                            raise ArgumentError,
         | 
| 205 | 
            -
                                  'FIPS client regions are not supported for this type of '\
         | 
| 206 | 
            -
                                  'ARN without `:s3_use_arn_region`.'
         | 
| 207 | 
            -
                          end
         | 
| 208 | 
            -
             | 
| 209 | 
            -
                          # if it's a fips region, attempt to normalize it
         | 
| 210 | 
            -
                          if fips || use_arn_region
         | 
| 211 | 
            -
                            region = region.gsub('fips-', '').gsub('-fips', '')
         | 
| 212 | 
            -
                          end
         | 
| 213 | 
            -
                          if use_arn_region &&
         | 
| 214 | 
            -
                             !Aws::Partitions.partition(arn.partition).region?(region)
         | 
| 215 | 
            -
                            raise Aws::Errors::InvalidARNPartitionError
         | 
| 216 | 
            -
                          end
         | 
| 194 | 
            +
                        if use_arn_region &&
         | 
| 195 | 
            +
                           !Aws::Partitions.partition(arn.partition).region?(region)
         | 
| 196 | 
            +
                          raise Aws::Errors::InvalidARNPartitionError
         | 
| 197 | 
            +
                        end
         | 
| 217 198 |  | 
| 218 | 
            -
             | 
| 219 | 
            -
             | 
| 220 | 
            -
                          end
         | 
| 199 | 
            +
                        if !use_arn_region && region != arn.region
         | 
| 200 | 
            +
                          raise Aws::Errors::InvalidARNRegionError
         | 
| 221 201 | 
             
                        end
         | 
| 222 202 | 
             
                      end
         | 
| 223 203 | 
             
                    end
         | 
| @@ -5,15 +5,6 @@ module Aws | |
| 5 5 | 
             
                module Plugins
         | 
| 6 6 | 
             
                  # @api private
         | 
| 7 7 | 
             
                  class Dualstack < Seahorse::Client::Plugin
         | 
| 8 | 
            -
             | 
| 9 | 
            -
                    option(:use_dualstack_endpoint,
         | 
| 10 | 
            -
                      default: false,
         | 
| 11 | 
            -
                      doc_type: 'Boolean',
         | 
| 12 | 
            -
                      docstring: <<-DOCS)
         | 
| 13 | 
            -
            When set to `true`, IPv6-compatible bucket endpoints will be used
         | 
| 14 | 
            -
            for all operations.
         | 
| 15 | 
            -
                      DOCS
         | 
| 16 | 
            -
             | 
| 17 8 | 
             
                    def add_handlers(handlers, config)
         | 
| 18 9 | 
             
                      handlers.add(OptionHandler, step: :initialize)
         | 
| 19 10 | 
             
                      handlers.add(DualstackHandler, step: :build, priority: 11)
         | 
| @@ -40,23 +31,22 @@ for all operations. | |
| 40 31 | 
             
                    # @api private
         | 
| 41 32 | 
             
                    class DualstackHandler < Seahorse::Client::Handler
         | 
| 42 33 | 
             
                      def call(context)
         | 
| 43 | 
            -
                        if  | 
| 44 | 
            -
             | 
| 34 | 
            +
                        # if it's a regional endpoint and not an ARN, then construct the
         | 
| 35 | 
            +
                        # endpoint. regional endpoint plugin uses the dualstack config
         | 
| 36 | 
            +
                        if context.config.regional_endpoint && !context.metadata[:s3_arn]
         | 
| 37 | 
            +
                          endpoint = Aws::Partitions::EndpointProvider.resolve(
         | 
| 38 | 
            +
                            context.config.region,
         | 
| 39 | 
            +
                            's3-control',
         | 
| 40 | 
            +
                            'regional',
         | 
| 41 | 
            +
                            {
         | 
| 42 | 
            +
                              dualstack: context[:use_dualstack_endpoint],
         | 
| 43 | 
            +
                              fips: context.config.use_fips_endpoint
         | 
| 44 | 
            +
                            }
         | 
| 45 | 
            +
                          )
         | 
| 46 | 
            +
                          context.http_request.endpoint = URI.parse(endpoint)
         | 
| 45 47 | 
             
                        end
         | 
| 46 48 | 
             
                        @handler.call(context)
         | 
| 47 49 | 
             
                      end
         | 
| 48 | 
            -
             | 
| 49 | 
            -
                      private
         | 
| 50 | 
            -
                      def apply_dualstack_endpoint(context)
         | 
| 51 | 
            -
                        region = context.config.region
         | 
| 52 | 
            -
                        dns_suffix = Aws::Partitions::EndpointProvider.dns_suffix_for(region)
         | 
| 53 | 
            -
                        host = "s3-control.dualstack.#{region}.#{dns_suffix}"
         | 
| 54 | 
            -
                        endpoint = URI.parse(context.http_request.endpoint.to_s)
         | 
| 55 | 
            -
                        endpoint.scheme = context.http_request.endpoint.scheme
         | 
| 56 | 
            -
                        endpoint.port = context.http_request.endpoint.port
         | 
| 57 | 
            -
                        endpoint.host = host
         | 
| 58 | 
            -
                        context.http_request.endpoint = endpoint.to_s
         | 
| 59 | 
            -
                      end
         | 
| 60 50 | 
             
                    end
         | 
| 61 51 |  | 
| 62 52 | 
             
                  end
         | 
| @@ -24,7 +24,7 @@ module Aws | |
| 24 24 | 
             
                    option(:sigv4_region) do |cfg|
         | 
| 25 25 | 
             
                      raise Aws::Errors::MissingRegionError if cfg.region.nil?
         | 
| 26 26 |  | 
| 27 | 
            -
                      Aws::Partitions::EndpointProvider.signing_region(cfg.region, 's3')
         | 
| 27 | 
            +
                      Aws::Partitions::EndpointProvider.signing_region(cfg.region, 's3-control')
         | 
| 28 28 | 
             
                    end
         | 
| 29 29 |  | 
| 30 30 | 
             
                    def add_handlers(handlers, _cfg)
         | 
| @@ -54,8 +54,9 @@ module Aws | |
| 54 54 | 
             
                          # outpost operations should go to the outposts endpoint only if
         | 
| 55 55 | 
             
                          # it's not a custom endpoint. the ARN class changes this for ARNs
         | 
| 56 56 | 
             
                          if context.config.regional_endpoint
         | 
| 57 | 
            +
                            fips = context.config.use_fips_endpoint
         | 
| 57 58 | 
             
                            context.http_request.endpoint.host =
         | 
| 58 | 
            -
                              "s3-outposts.#{context.config.region}.amazonaws.com"
         | 
| 59 | 
            +
                              "s3-outposts#{'-fips' if fips}.#{context.config.region}.amazonaws.com"
         | 
| 59 60 | 
             
                          end
         | 
| 60 61 | 
             
                          S3ControlSigner.build_v4_signer(
         | 
| 61 62 | 
             
                            service: 's3-outposts',
         | 
| @@ -370,6 +370,38 @@ module Aws::S3Control | |
| 370 370 | 
             
                  include Aws::Structure
         | 
| 371 371 | 
             
                end
         | 
| 372 372 |  | 
| 373 | 
            +
                # A container for enabling Amazon CloudWatch publishing for S3 Storage
         | 
| 374 | 
            +
                # Lens metrics.
         | 
| 375 | 
            +
                #
         | 
| 376 | 
            +
                # For more information about publishing S3 Storage Lens metrics to
         | 
| 377 | 
            +
                # CloudWatch, see [Monitor S3 Storage Lens metrics in CloudWatch][1] in
         | 
| 378 | 
            +
                # the *Amazon S3 User Guide*.
         | 
| 379 | 
            +
                #
         | 
| 380 | 
            +
                #
         | 
| 381 | 
            +
                #
         | 
| 382 | 
            +
                # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_view_metrics_cloudwatch.html
         | 
| 383 | 
            +
                #
         | 
| 384 | 
            +
                # @note When making an API call, you may pass CloudWatchMetrics
         | 
| 385 | 
            +
                #   data as a hash:
         | 
| 386 | 
            +
                #
         | 
| 387 | 
            +
                #       {
         | 
| 388 | 
            +
                #         is_enabled: false, # required
         | 
| 389 | 
            +
                #       }
         | 
| 390 | 
            +
                #
         | 
| 391 | 
            +
                # @!attribute [rw] is_enabled
         | 
| 392 | 
            +
                #   A container that indicates whether CloudWatch publishing for S3
         | 
| 393 | 
            +
                #   Storage Lens metrics is enabled. A value of `true` indicates that
         | 
| 394 | 
            +
                #   CloudWatch publishing for S3 Storage Lens metrics is enabled.
         | 
| 395 | 
            +
                #   @return [Boolean]
         | 
| 396 | 
            +
                #
         | 
| 397 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CloudWatchMetrics AWS API Documentation
         | 
| 398 | 
            +
                #
         | 
| 399 | 
            +
                class CloudWatchMetrics < Struct.new(
         | 
| 400 | 
            +
                  :is_enabled)
         | 
| 401 | 
            +
                  SENSITIVE = []
         | 
| 402 | 
            +
                  include Aws::Structure
         | 
| 403 | 
            +
                end
         | 
| 404 | 
            +
             | 
| 373 405 | 
             
                # @note When making an API call, you may pass CreateAccessPointForObjectLambdaRequest
         | 
| 374 406 | 
             
                #   data as a hash:
         | 
| 375 407 | 
             
                #
         | 
| @@ -4932,7 +4964,7 @@ module Aws::S3Control | |
| 4932 4964 | 
             
                #             regions: ["S3AWSRegion"],
         | 
| 4933 4965 | 
             
                #           },
         | 
| 4934 4966 | 
             
                #           data_export: {
         | 
| 4935 | 
            -
                #             s3_bucket_destination: { | 
| 4967 | 
            +
                #             s3_bucket_destination: {
         | 
| 4936 4968 | 
             
                #               format: "CSV", # required, accepts CSV, Parquet
         | 
| 4937 4969 | 
             
                #               output_schema_version: "V_1", # required, accepts V_1
         | 
| 4938 4970 | 
             
                #               account_id: "AccountId", # required
         | 
| @@ -4946,6 +4978,9 @@ module Aws::S3Control | |
| 4946 4978 | 
             
                #                 },
         | 
| 4947 4979 | 
             
                #               },
         | 
| 4948 4980 | 
             
                #             },
         | 
| 4981 | 
            +
                #             cloud_watch_metrics: {
         | 
| 4982 | 
            +
                #               is_enabled: false, # required
         | 
| 4983 | 
            +
                #             },
         | 
| 4949 4984 | 
             
                #           },
         | 
| 4950 4985 | 
             
                #           is_enabled: false, # required
         | 
| 4951 4986 | 
             
                #           aws_org: {
         | 
| @@ -5980,7 +6015,7 @@ module Aws::S3Control | |
| 5980 6015 | 
             
                #           regions: ["S3AWSRegion"],
         | 
| 5981 6016 | 
             
                #         },
         | 
| 5982 6017 | 
             
                #         data_export: {
         | 
| 5983 | 
            -
                #           s3_bucket_destination: { | 
| 6018 | 
            +
                #           s3_bucket_destination: {
         | 
| 5984 6019 | 
             
                #             format: "CSV", # required, accepts CSV, Parquet
         | 
| 5985 6020 | 
             
                #             output_schema_version: "V_1", # required, accepts V_1
         | 
| 5986 6021 | 
             
                #             account_id: "AccountId", # required
         | 
| @@ -5994,6 +6029,9 @@ module Aws::S3Control | |
| 5994 6029 | 
             
                #               },
         | 
| 5995 6030 | 
             
                #             },
         | 
| 5996 6031 | 
             
                #           },
         | 
| 6032 | 
            +
                #           cloud_watch_metrics: {
         | 
| 6033 | 
            +
                #             is_enabled: false, # required
         | 
| 6034 | 
            +
                #           },
         | 
| 5997 6035 | 
             
                #         },
         | 
| 5998 6036 | 
             
                #         is_enabled: false, # required
         | 
| 5999 6037 | 
             
                #         aws_org: {
         | 
| @@ -6067,7 +6105,7 @@ module Aws::S3Control | |
| 6067 6105 | 
             
                #   data as a hash:
         | 
| 6068 6106 | 
             
                #
         | 
| 6069 6107 | 
             
                #       {
         | 
| 6070 | 
            -
                #         s3_bucket_destination: { | 
| 6108 | 
            +
                #         s3_bucket_destination: {
         | 
| 6071 6109 | 
             
                #           format: "CSV", # required, accepts CSV, Parquet
         | 
| 6072 6110 | 
             
                #           output_schema_version: "V_1", # required, accepts V_1
         | 
| 6073 6111 | 
             
                #           account_id: "AccountId", # required
         | 
| @@ -6081,6 +6119,9 @@ module Aws::S3Control | |
| 6081 6119 | 
             
                #             },
         | 
| 6082 6120 | 
             
                #           },
         | 
| 6083 6121 | 
             
                #         },
         | 
| 6122 | 
            +
                #         cloud_watch_metrics: {
         | 
| 6123 | 
            +
                #           is_enabled: false, # required
         | 
| 6124 | 
            +
                #         },
         | 
| 6084 6125 | 
             
                #       }
         | 
| 6085 6126 | 
             
                #
         | 
| 6086 6127 | 
             
                # @!attribute [rw] s3_bucket_destination
         | 
| @@ -6093,10 +6134,16 @@ module Aws::S3Control | |
| 6093 6134 | 
             
                #    </note>
         | 
| 6094 6135 | 
             
                #   @return [Types::S3BucketDestination]
         | 
| 6095 6136 | 
             
                #
         | 
| 6137 | 
            +
                # @!attribute [rw] cloud_watch_metrics
         | 
| 6138 | 
            +
                #   A container for enabling Amazon CloudWatch publishing for S3 Storage
         | 
| 6139 | 
            +
                #   Lens metrics.
         | 
| 6140 | 
            +
                #   @return [Types::CloudWatchMetrics]
         | 
| 6141 | 
            +
                #
         | 
| 6096 6142 | 
             
                # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensDataExport AWS API Documentation
         | 
| 6097 6143 | 
             
                #
         | 
| 6098 6144 | 
             
                class StorageLensDataExport < Struct.new(
         | 
| 6099 | 
            -
                  :s3_bucket_destination | 
| 6145 | 
            +
                  :s3_bucket_destination,
         | 
| 6146 | 
            +
                  :cloud_watch_metrics)
         | 
| 6100 6147 | 
             
                  SENSITIVE = []
         | 
| 6101 6148 | 
             
                  include Aws::Structure
         | 
| 6102 6149 | 
             
                end
         | 
    
        data/lib/aws-sdk-s3control.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: aws-sdk-s3control
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.43.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Amazon Web Services
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021- | 
| 11 | 
            +
            date: 2021-11-22 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: aws-sigv4
         | 
| @@ -33,7 +33,7 @@ dependencies: | |
| 33 33 | 
             
                    version: '3'
         | 
| 34 34 | 
             
                - - ">="
         | 
| 35 35 | 
             
                  - !ruby/object:Gem::Version
         | 
| 36 | 
            -
                    version: 3. | 
| 36 | 
            +
                    version: 3.122.0
         | 
| 37 37 | 
             
              type: :runtime
         | 
| 38 38 | 
             
              prerelease: false
         | 
| 39 39 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -43,7 +43,7 @@ dependencies: | |
| 43 43 | 
             
                    version: '3'
         | 
| 44 44 | 
             
                - - ">="
         | 
| 45 45 | 
             
                  - !ruby/object:Gem::Version
         | 
| 46 | 
            -
                    version: 3. | 
| 46 | 
            +
                    version: 3.122.0
         | 
| 47 47 | 
             
            description: Official AWS Ruby gem for AWS S3 Control. This gem is part of the AWS
         | 
| 48 48 | 
             
              SDK for Ruby.
         | 
| 49 49 | 
             
            email:
         |