aws-sdk-s3control 1.53.0 → 1.54.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -406,7 +406,7 @@ module Aws::S3Control
406
406
  # data as a hash:
407
407
  #
408
408
  # {
409
- # account_id: "AccountId", # required
409
+ # account_id: "AccountId",
410
410
  # name: "ObjectLambdaAccessPointName", # required
411
411
  # configuration: { # required
412
412
  # supporting_access_point: "ObjectLambdaSupportingAccessPointArn", # required
@@ -465,7 +465,7 @@ module Aws::S3Control
465
465
  # data as a hash:
466
466
  #
467
467
  # {
468
- # account_id: "AccountId", # required
468
+ # account_id: "AccountId",
469
469
  # name: "AccessPointName", # required
470
470
  # bucket: "BucketName", # required
471
471
  # vpc_configuration: {
@@ -733,7 +733,7 @@ module Aws::S3Control
733
733
  # data as a hash:
734
734
  #
735
735
  # {
736
- # account_id: "AccountId", # required
736
+ # account_id: "AccountId",
737
737
  # confirmation_required: false,
738
738
  # operation: { # required
739
739
  # lambda_invoke: {
@@ -1052,7 +1052,7 @@ module Aws::S3Control
1052
1052
  # data as a hash:
1053
1053
  #
1054
1054
  # {
1055
- # account_id: "AccountId", # required
1055
+ # account_id: "AccountId",
1056
1056
  # client_token: "MultiRegionAccessPointClientToken", # required
1057
1057
  # details: { # required
1058
1058
  # name: "MultiRegionAccessPointName", # required
@@ -1121,7 +1121,7 @@ module Aws::S3Control
1121
1121
  # data as a hash:
1122
1122
  #
1123
1123
  # {
1124
- # account_id: "AccountId", # required
1124
+ # account_id: "AccountId",
1125
1125
  # name: "ObjectLambdaAccessPointName", # required
1126
1126
  # }
1127
1127
  #
@@ -1147,7 +1147,7 @@ module Aws::S3Control
1147
1147
  # data as a hash:
1148
1148
  #
1149
1149
  # {
1150
- # account_id: "AccountId", # required
1150
+ # account_id: "AccountId",
1151
1151
  # name: "ObjectLambdaAccessPointName", # required
1152
1152
  # }
1153
1153
  #
@@ -1174,7 +1174,7 @@ module Aws::S3Control
1174
1174
  # data as a hash:
1175
1175
  #
1176
1176
  # {
1177
- # account_id: "AccountId", # required
1177
+ # account_id: "AccountId",
1178
1178
  # name: "AccessPointName", # required
1179
1179
  # }
1180
1180
  #
@@ -1212,7 +1212,7 @@ module Aws::S3Control
1212
1212
  # data as a hash:
1213
1213
  #
1214
1214
  # {
1215
- # account_id: "AccountId", # required
1215
+ # account_id: "AccountId",
1216
1216
  # name: "AccessPointName", # required
1217
1217
  # }
1218
1218
  #
@@ -1250,7 +1250,7 @@ module Aws::S3Control
1250
1250
  # data as a hash:
1251
1251
  #
1252
1252
  # {
1253
- # account_id: "AccountId", # required
1253
+ # account_id: "AccountId",
1254
1254
  # bucket: "BucketName", # required
1255
1255
  # }
1256
1256
  #
@@ -1288,7 +1288,7 @@ module Aws::S3Control
1288
1288
  # data as a hash:
1289
1289
  #
1290
1290
  # {
1291
- # account_id: "AccountId", # required
1291
+ # account_id: "AccountId",
1292
1292
  # bucket: "BucketName", # required
1293
1293
  # }
1294
1294
  #
@@ -1326,7 +1326,7 @@ module Aws::S3Control
1326
1326
  # data as a hash:
1327
1327
  #
1328
1328
  # {
1329
- # account_id: "AccountId", # required
1329
+ # account_id: "AccountId",
1330
1330
  # bucket: "BucketName", # required
1331
1331
  # }
1332
1332
  #
@@ -1364,7 +1364,7 @@ module Aws::S3Control
1364
1364
  # data as a hash:
1365
1365
  #
1366
1366
  # {
1367
- # account_id: "AccountId", # required
1367
+ # account_id: "AccountId",
1368
1368
  # bucket: "BucketName", # required
1369
1369
  # }
1370
1370
  #
@@ -1403,7 +1403,7 @@ module Aws::S3Control
1403
1403
  # data as a hash:
1404
1404
  #
1405
1405
  # {
1406
- # account_id: "AccountId", # required
1406
+ # account_id: "AccountId",
1407
1407
  # job_id: "JobId", # required
1408
1408
  # }
1409
1409
  #
@@ -1461,7 +1461,7 @@ module Aws::S3Control
1461
1461
  # data as a hash:
1462
1462
  #
1463
1463
  # {
1464
- # account_id: "AccountId", # required
1464
+ # account_id: "AccountId",
1465
1465
  # client_token: "MultiRegionAccessPointClientToken", # required
1466
1466
  # details: { # required
1467
1467
  # name: "MultiRegionAccessPointName", # required
@@ -1518,7 +1518,7 @@ module Aws::S3Control
1518
1518
  # data as a hash:
1519
1519
  #
1520
1520
  # {
1521
- # account_id: "AccountId", # required
1521
+ # account_id: "AccountId",
1522
1522
  # }
1523
1523
  #
1524
1524
  # @!attribute [rw] account_id
@@ -1539,7 +1539,7 @@ module Aws::S3Control
1539
1539
  #
1540
1540
  # {
1541
1541
  # config_id: "ConfigId", # required
1542
- # account_id: "AccountId", # required
1542
+ # account_id: "AccountId",
1543
1543
  # }
1544
1544
  #
1545
1545
  # @!attribute [rw] config_id
@@ -1564,7 +1564,7 @@ module Aws::S3Control
1564
1564
  #
1565
1565
  # {
1566
1566
  # config_id: "ConfigId", # required
1567
- # account_id: "AccountId", # required
1567
+ # account_id: "AccountId",
1568
1568
  # }
1569
1569
  #
1570
1570
  # @!attribute [rw] config_id
@@ -1592,7 +1592,7 @@ module Aws::S3Control
1592
1592
  # data as a hash:
1593
1593
  #
1594
1594
  # {
1595
- # account_id: "AccountId", # required
1595
+ # account_id: "AccountId",
1596
1596
  # job_id: "JobId", # required
1597
1597
  # }
1598
1598
  #
@@ -1631,7 +1631,7 @@ module Aws::S3Control
1631
1631
  # data as a hash:
1632
1632
  #
1633
1633
  # {
1634
- # account_id: "AccountId", # required
1634
+ # account_id: "AccountId",
1635
1635
  # request_token_arn: "AsyncRequestTokenARN", # required
1636
1636
  # }
1637
1637
  #
@@ -1753,7 +1753,7 @@ module Aws::S3Control
1753
1753
  # data as a hash:
1754
1754
  #
1755
1755
  # {
1756
- # account_id: "AccountId", # required
1756
+ # account_id: "AccountId",
1757
1757
  # name: "ObjectLambdaAccessPointName", # required
1758
1758
  # }
1759
1759
  #
@@ -1792,7 +1792,7 @@ module Aws::S3Control
1792
1792
  # data as a hash:
1793
1793
  #
1794
1794
  # {
1795
- # account_id: "AccountId", # required
1795
+ # account_id: "AccountId",
1796
1796
  # name: "ObjectLambdaAccessPointName", # required
1797
1797
  # }
1798
1798
  #
@@ -1842,7 +1842,7 @@ module Aws::S3Control
1842
1842
  # data as a hash:
1843
1843
  #
1844
1844
  # {
1845
- # account_id: "AccountId", # required
1845
+ # account_id: "AccountId",
1846
1846
  # name: "ObjectLambdaAccessPointName", # required
1847
1847
  # }
1848
1848
  #
@@ -1880,7 +1880,7 @@ module Aws::S3Control
1880
1880
  # data as a hash:
1881
1881
  #
1882
1882
  # {
1883
- # account_id: "AccountId", # required
1883
+ # account_id: "AccountId",
1884
1884
  # name: "AccessPointName", # required
1885
1885
  # }
1886
1886
  #
@@ -1930,7 +1930,7 @@ module Aws::S3Control
1930
1930
  # data as a hash:
1931
1931
  #
1932
1932
  # {
1933
- # account_id: "AccountId", # required
1933
+ # account_id: "AccountId",
1934
1934
  # name: "ObjectLambdaAccessPointName", # required
1935
1935
  # }
1936
1936
  #
@@ -1975,7 +1975,7 @@ module Aws::S3Control
1975
1975
  # data as a hash:
1976
1976
  #
1977
1977
  # {
1978
- # account_id: "AccountId", # required
1978
+ # account_id: "AccountId",
1979
1979
  # name: "AccessPointName", # required
1980
1980
  # }
1981
1981
  #
@@ -2013,7 +2013,7 @@ module Aws::S3Control
2013
2013
  # data as a hash:
2014
2014
  #
2015
2015
  # {
2016
- # account_id: "AccountId", # required
2016
+ # account_id: "AccountId",
2017
2017
  # name: "AccessPointName", # required
2018
2018
  # }
2019
2019
  #
@@ -2127,7 +2127,7 @@ module Aws::S3Control
2127
2127
  # data as a hash:
2128
2128
  #
2129
2129
  # {
2130
- # account_id: "AccountId", # required
2130
+ # account_id: "AccountId",
2131
2131
  # bucket: "BucketName", # required
2132
2132
  # }
2133
2133
  #
@@ -2177,7 +2177,7 @@ module Aws::S3Control
2177
2177
  # data as a hash:
2178
2178
  #
2179
2179
  # {
2180
- # account_id: "AccountId", # required
2180
+ # account_id: "AccountId",
2181
2181
  # bucket: "BucketName", # required
2182
2182
  # }
2183
2183
  #
@@ -2227,7 +2227,7 @@ module Aws::S3Control
2227
2227
  # data as a hash:
2228
2228
  #
2229
2229
  # {
2230
- # account_id: "AccountId", # required
2230
+ # account_id: "AccountId",
2231
2231
  # bucket: "BucketName", # required
2232
2232
  # }
2233
2233
  #
@@ -2286,7 +2286,7 @@ module Aws::S3Control
2286
2286
  # data as a hash:
2287
2287
  #
2288
2288
  # {
2289
- # account_id: "AccountId", # required
2289
+ # account_id: "AccountId",
2290
2290
  # bucket: "BucketName", # required
2291
2291
  # }
2292
2292
  #
@@ -2336,7 +2336,7 @@ module Aws::S3Control
2336
2336
  # data as a hash:
2337
2337
  #
2338
2338
  # {
2339
- # account_id: "AccountId", # required
2339
+ # account_id: "AccountId",
2340
2340
  # bucket: "BucketName", # required
2341
2341
  # }
2342
2342
  #
@@ -2381,7 +2381,7 @@ module Aws::S3Control
2381
2381
  # data as a hash:
2382
2382
  #
2383
2383
  # {
2384
- # account_id: "AccountId", # required
2384
+ # account_id: "AccountId",
2385
2385
  # job_id: "JobId", # required
2386
2386
  # }
2387
2387
  #
@@ -2420,7 +2420,7 @@ module Aws::S3Control
2420
2420
  # data as a hash:
2421
2421
  #
2422
2422
  # {
2423
- # account_id: "AccountId", # required
2423
+ # account_id: "AccountId",
2424
2424
  # name: "MultiRegionAccessPointName", # required
2425
2425
  # }
2426
2426
  #
@@ -2466,7 +2466,7 @@ module Aws::S3Control
2466
2466
  # data as a hash:
2467
2467
  #
2468
2468
  # {
2469
- # account_id: "AccountId", # required
2469
+ # account_id: "AccountId",
2470
2470
  # name: "MultiRegionAccessPointName", # required
2471
2471
  # }
2472
2472
  #
@@ -2519,7 +2519,7 @@ module Aws::S3Control
2519
2519
  # data as a hash:
2520
2520
  #
2521
2521
  # {
2522
- # account_id: "AccountId", # required
2522
+ # account_id: "AccountId",
2523
2523
  # name: "MultiRegionAccessPointName", # required
2524
2524
  # }
2525
2525
  #
@@ -2580,7 +2580,7 @@ module Aws::S3Control
2580
2580
  # data as a hash:
2581
2581
  #
2582
2582
  # {
2583
- # account_id: "AccountId", # required
2583
+ # account_id: "AccountId",
2584
2584
  # }
2585
2585
  #
2586
2586
  # @!attribute [rw] account_id
@@ -2601,7 +2601,7 @@ module Aws::S3Control
2601
2601
  #
2602
2602
  # {
2603
2603
  # config_id: "ConfigId", # required
2604
- # account_id: "AccountId", # required
2604
+ # account_id: "AccountId",
2605
2605
  # }
2606
2606
  #
2607
2607
  # @!attribute [rw] config_id
@@ -2638,7 +2638,7 @@ module Aws::S3Control
2638
2638
  #
2639
2639
  # {
2640
2640
  # config_id: "ConfigId", # required
2641
- # account_id: "AccountId", # required
2641
+ # account_id: "AccountId",
2642
2642
  # }
2643
2643
  #
2644
2644
  # @!attribute [rw] config_id
@@ -3749,7 +3749,7 @@ module Aws::S3Control
3749
3749
  # data as a hash:
3750
3750
  #
3751
3751
  # {
3752
- # account_id: "AccountId", # required
3752
+ # account_id: "AccountId",
3753
3753
  # next_token: "NonEmptyMaxLength1024String",
3754
3754
  # max_results: 1,
3755
3755
  # }
@@ -3809,7 +3809,7 @@ module Aws::S3Control
3809
3809
  # data as a hash:
3810
3810
  #
3811
3811
  # {
3812
- # account_id: "AccountId", # required
3812
+ # account_id: "AccountId",
3813
3813
  # bucket: "BucketName",
3814
3814
  # next_token: "NonEmptyMaxLength1024String",
3815
3815
  # max_results: 1,
@@ -3889,7 +3889,7 @@ module Aws::S3Control
3889
3889
  # data as a hash:
3890
3890
  #
3891
3891
  # {
3892
- # account_id: "AccountId", # required
3892
+ # account_id: "AccountId",
3893
3893
  # job_statuses: ["Active"], # accepts Active, Cancelled, Cancelling, Complete, Completing, Failed, Failing, New, Paused, Pausing, Preparing, Ready, Suspended
3894
3894
  # next_token: "StringForNextToken",
3895
3895
  # max_results: 1,
@@ -3953,7 +3953,7 @@ module Aws::S3Control
3953
3953
  # data as a hash:
3954
3954
  #
3955
3955
  # {
3956
- # account_id: "AccountId", # required
3956
+ # account_id: "AccountId",
3957
3957
  # next_token: "NonEmptyMaxLength1024String",
3958
3958
  # max_results: 1,
3959
3959
  # }
@@ -4005,7 +4005,7 @@ module Aws::S3Control
4005
4005
  # data as a hash:
4006
4006
  #
4007
4007
  # {
4008
- # account_id: "AccountId", # required
4008
+ # account_id: "AccountId",
4009
4009
  # next_token: "NonEmptyMaxLength1024String",
4010
4010
  # max_results: 1,
4011
4011
  # outpost_id: "NonEmptyMaxLength64String",
@@ -4098,7 +4098,7 @@ module Aws::S3Control
4098
4098
  # data as a hash:
4099
4099
  #
4100
4100
  # {
4101
- # account_id: "AccountId", # required
4101
+ # account_id: "AccountId",
4102
4102
  # next_token: "ContinuationToken",
4103
4103
  # }
4104
4104
  #
@@ -4674,7 +4674,7 @@ module Aws::S3Control
4674
4674
  # data as a hash:
4675
4675
  #
4676
4676
  # {
4677
- # account_id: "AccountId", # required
4677
+ # account_id: "AccountId",
4678
4678
  # name: "ObjectLambdaAccessPointName", # required
4679
4679
  # configuration: { # required
4680
4680
  # supporting_access_point: "ObjectLambdaSupportingAccessPointArn", # required
@@ -4721,7 +4721,7 @@ module Aws::S3Control
4721
4721
  # data as a hash:
4722
4722
  #
4723
4723
  # {
4724
- # account_id: "AccountId", # required
4724
+ # account_id: "AccountId",
4725
4725
  # name: "ObjectLambdaAccessPointName", # required
4726
4726
  # policy: "ObjectLambdaPolicy", # required
4727
4727
  # }
@@ -4753,7 +4753,7 @@ module Aws::S3Control
4753
4753
  # data as a hash:
4754
4754
  #
4755
4755
  # {
4756
- # account_id: "AccountId", # required
4756
+ # account_id: "AccountId",
4757
4757
  # name: "AccessPointName", # required
4758
4758
  # policy: "Policy", # required
4759
4759
  # }
@@ -4806,7 +4806,7 @@ module Aws::S3Control
4806
4806
  # data as a hash:
4807
4807
  #
4808
4808
  # {
4809
- # account_id: "AccountId", # required
4809
+ # account_id: "AccountId",
4810
4810
  # bucket: "BucketName", # required
4811
4811
  # lifecycle_configuration: {
4812
4812
  # rules: [
@@ -4884,7 +4884,7 @@ module Aws::S3Control
4884
4884
  # data as a hash:
4885
4885
  #
4886
4886
  # {
4887
- # account_id: "AccountId", # required
4887
+ # account_id: "AccountId",
4888
4888
  # bucket: "BucketName", # required
4889
4889
  # confirm_remove_self_bucket_access: false,
4890
4890
  # policy: "Policy", # required
@@ -4939,7 +4939,7 @@ module Aws::S3Control
4939
4939
  # data as a hash:
4940
4940
  #
4941
4941
  # {
4942
- # account_id: "AccountId", # required
4942
+ # account_id: "AccountId",
4943
4943
  # bucket: "BucketName", # required
4944
4944
  # tagging: { # required
4945
4945
  # tag_set: [ # required
@@ -4989,7 +4989,7 @@ module Aws::S3Control
4989
4989
  # data as a hash:
4990
4990
  #
4991
4991
  # {
4992
- # account_id: "AccountId", # required
4992
+ # account_id: "AccountId",
4993
4993
  # bucket: "BucketName", # required
4994
4994
  # mfa: "MFA",
4995
4995
  # versioning_configuration: { # required
@@ -5031,7 +5031,7 @@ module Aws::S3Control
5031
5031
  # data as a hash:
5032
5032
  #
5033
5033
  # {
5034
- # account_id: "AccountId", # required
5034
+ # account_id: "AccountId",
5035
5035
  # job_id: "JobId", # required
5036
5036
  # tags: [ # required
5037
5037
  # {
@@ -5106,7 +5106,7 @@ module Aws::S3Control
5106
5106
  # data as a hash:
5107
5107
  #
5108
5108
  # {
5109
- # account_id: "AccountId", # required
5109
+ # account_id: "AccountId",
5110
5110
  # client_token: "MultiRegionAccessPointClientToken", # required
5111
5111
  # details: { # required
5112
5112
  # name: "MultiRegionAccessPointName", # required
@@ -5170,7 +5170,7 @@ module Aws::S3Control
5170
5170
  # block_public_policy: false,
5171
5171
  # restrict_public_buckets: false,
5172
5172
  # },
5173
- # account_id: "AccountId", # required
5173
+ # account_id: "AccountId",
5174
5174
  # }
5175
5175
  #
5176
5176
  # @!attribute [rw] public_access_block_configuration
@@ -5197,7 +5197,7 @@ module Aws::S3Control
5197
5197
  #
5198
5198
  # {
5199
5199
  # config_id: "ConfigId", # required
5200
- # account_id: "AccountId", # required
5200
+ # account_id: "AccountId",
5201
5201
  # storage_lens_configuration: { # required
5202
5202
  # id: "ConfigId", # required
5203
5203
  # account_level: { # required
@@ -5297,7 +5297,7 @@ module Aws::S3Control
5297
5297
  #
5298
5298
  # {
5299
5299
  # config_id: "ConfigId", # required
5300
- # account_id: "AccountId", # required
5300
+ # account_id: "AccountId",
5301
5301
  # tags: [ # required
5302
5302
  # {
5303
5303
  # key: "TagKeyString", # required
@@ -6762,7 +6762,7 @@ module Aws::S3Control
6762
6762
  # data as a hash:
6763
6763
  #
6764
6764
  # {
6765
- # account_id: "AccountId", # required
6765
+ # account_id: "AccountId",
6766
6766
  # job_id: "JobId", # required
6767
6767
  # priority: 1, # required
6768
6768
  # }
@@ -6811,7 +6811,7 @@ module Aws::S3Control
6811
6811
  # data as a hash:
6812
6812
  #
6813
6813
  # {
6814
- # account_id: "AccountId", # required
6814
+ # account_id: "AccountId",
6815
6815
  # job_id: "JobId", # required
6816
6816
  # requested_job_status: "Cancelled", # required, accepts Cancelled, Ready
6817
6817
  # status_update_reason: "JobStatusUpdateReason",
@@ -13,9 +13,13 @@ require 'aws-sdk-core'
13
13
 
14
14
  require_relative 'aws-sdk-s3control/types'
15
15
  require_relative 'aws-sdk-s3control/client_api'
16
+ require_relative 'aws-sdk-s3control/plugins/endpoints.rb'
16
17
  require_relative 'aws-sdk-s3control/client'
17
18
  require_relative 'aws-sdk-s3control/errors'
18
19
  require_relative 'aws-sdk-s3control/resource'
20
+ require_relative 'aws-sdk-s3control/endpoint_parameters'
21
+ require_relative 'aws-sdk-s3control/endpoint_provider'
22
+ require_relative 'aws-sdk-s3control/endpoints'
19
23
  require_relative 'aws-sdk-s3control/customizations'
20
24
 
21
25
  # This module provides support for AWS S3 Control. This module is available in the
@@ -48,6 +52,6 @@ require_relative 'aws-sdk-s3control/customizations'
48
52
  # @!group service
49
53
  module Aws::S3Control
50
54
 
51
- GEM_VERSION = '1.53.0'
55
+ GEM_VERSION = '1.54.0'
52
56
 
53
57
  end
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.53.0
4
+ version: 1.54.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: 2022-10-19 00:00:00.000000000 Z
11
+ date: 2022-10-25 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.127.0
36
+ version: 3.165.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.127.0
46
+ version: 3.165.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:
@@ -61,10 +61,13 @@ files:
61
61
  - lib/aws-sdk-s3control/client.rb
62
62
  - lib/aws-sdk-s3control/client_api.rb
63
63
  - lib/aws-sdk-s3control/customizations.rb
64
+ - lib/aws-sdk-s3control/endpoint_parameters.rb
65
+ - lib/aws-sdk-s3control/endpoint_provider.rb
66
+ - lib/aws-sdk-s3control/endpoints.rb
64
67
  - lib/aws-sdk-s3control/errors.rb
65
68
  - lib/aws-sdk-s3control/plugins/arn.rb
66
69
  - lib/aws-sdk-s3control/plugins/dualstack.rb
67
- - lib/aws-sdk-s3control/plugins/s3_control_signer.rb
70
+ - lib/aws-sdk-s3control/plugins/endpoints.rb
68
71
  - lib/aws-sdk-s3control/plugins/s3_host_id.rb
69
72
  - lib/aws-sdk-s3control/resource.rb
70
73
  - lib/aws-sdk-s3control/types.rb
@@ -1,97 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'aws-sigv4'
4
-
5
- module Aws
6
- module S3Control
7
- module Plugins
8
- # This plugin is an implementation detail and may be modified.
9
- # @api private
10
- class S3ControlSigner < Seahorse::Client::Plugin
11
- SPECIAL_OUTPOST_OPERATIONS = [
12
- 'CreateBucket',
13
- 'ListRegionalBuckets'
14
- ].freeze
15
-
16
- option(:sigv4_signer) do |cfg|
17
- S3ControlSigner.build_v4_signer(
18
- service: 's3',
19
- region: cfg.sigv4_region,
20
- credentials: cfg.credentials
21
- )
22
- end
23
-
24
- option(:sigv4_region) do |cfg|
25
- raise Aws::Errors::MissingRegionError if cfg.region.nil?
26
-
27
- Aws::Partitions::EndpointProvider.signing_region(cfg.region, 's3-control')
28
- end
29
-
30
- def add_handlers(handlers, _cfg)
31
- handlers.add(V4Handler, step: :sign)
32
- end
33
-
34
- class V4Handler < Seahorse::Client::Handler
35
- def call(context)
36
- Aws::Plugins::SignatureV4.apply_signature(
37
- context: context,
38
- signer: sigv4_signer(context)
39
- )
40
- @handler.call(context)
41
- end
42
-
43
- private
44
-
45
- def sigv4_signer(context)
46
- if (arn = context.metadata[:s3_arn]) &&
47
- arn[:arn].respond_to?(:outpost_id)
48
- S3ControlSigner.build_v4_signer(
49
- service: 's3-outposts',
50
- region: arn[:resolved_region],
51
- credentials: context.config.credentials
52
- )
53
- elsif outpost_operation?(context)
54
- # outpost operations should go to the outposts endpoint only if
55
- # it's not a custom endpoint. the ARN class changes this for ARNs
56
- if context.config.regional_endpoint
57
- fips = context.config.use_fips_endpoint
58
- context.http_request.endpoint.host =
59
- "s3-outposts#{'-fips' if fips}.#{context.config.region}.amazonaws.com"
60
- end
61
- S3ControlSigner.build_v4_signer(
62
- service: 's3-outposts',
63
- region: context.config.region,
64
- credentials: context.config.credentials
65
- )
66
- else
67
- context.config.sigv4_signer
68
- end
69
- end
70
-
71
- # Some operations do not take an ARN parameter and are special cases
72
- # For these operations, the presence of the outpost_id parameter
73
- # must trigger special endpoint and signer redirection
74
- def outpost_operation?(context)
75
- SPECIAL_OUTPOST_OPERATIONS.include?(context.operation.name) &&
76
- context.params[:outpost_id]
77
- end
78
- end
79
-
80
- class << self
81
- # @option options [required, String] :region
82
- # @option options [required, #credentials] :credentials
83
- # @api private
84
- def build_v4_signer(options = {})
85
- Aws::Sigv4::Signer.new(
86
- service: options[:service],
87
- region: options[:region],
88
- credentials_provider: options[:credentials],
89
- uri_escape_path: false,
90
- unsigned_headers: ['content-length', 'x-amzn-trace-id']
91
- )
92
- end
93
- end
94
- end
95
- end
96
- end
97
- end