aws-sdk-cloudfront 1.43.0 → 1.48.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.
@@ -12,7 +12,7 @@ module Aws
12
12
  #
13
13
  # signer = Aws::CloudFront::CookieSigner.new(
14
14
  # key_pair_id: "cf-keypair-id",
15
- # private_key_path: "./cf_private_key.pem"
15
+ # private_key_path: "./unit_test_dummy_key"
16
16
  # )
17
17
  # cookies = signer.signed_cookie(url,
18
18
  # policy: policy.to_json
@@ -69,6 +69,7 @@ module Aws::CloudFront
69
69
  # * {InvalidTagging}
70
70
  # * {InvalidViewerCertificate}
71
71
  # * {InvalidWebACLId}
72
+ # * {KeyGroupAlreadyExists}
72
73
  # * {MissingBody}
73
74
  # * {NoSuchCachePolicy}
74
75
  # * {NoSuchCloudFrontOriginAccessIdentity}
@@ -90,6 +91,7 @@ module Aws::CloudFront
90
91
  # * {QueryArgProfileEmpty}
91
92
  # * {RealtimeLogConfigAlreadyExists}
92
93
  # * {RealtimeLogConfigInUse}
94
+ # * {ResourceInUse}
93
95
  # * {StreamingDistributionAlreadyExists}
94
96
  # * {StreamingDistributionNotDisabled}
95
97
  # * {TooManyCacheBehaviors}
@@ -103,6 +105,7 @@ module Aws::CloudFront
103
105
  # * {TooManyDistributions}
104
106
  # * {TooManyDistributionsAssociatedToCachePolicy}
105
107
  # * {TooManyDistributionsAssociatedToFieldLevelEncryptionConfig}
108
+ # * {TooManyDistributionsAssociatedToKeyGroup}
106
109
  # * {TooManyDistributionsAssociatedToOriginRequestPolicy}
107
110
  # * {TooManyDistributionsWithLambdaAssociations}
108
111
  # * {TooManyDistributionsWithSingleFunctionARN}
@@ -116,12 +119,15 @@ module Aws::CloudFront
116
119
  # * {TooManyHeadersInForwardedValues}
117
120
  # * {TooManyHeadersInOriginRequestPolicy}
118
121
  # * {TooManyInvalidationsInProgress}
122
+ # * {TooManyKeyGroups}
123
+ # * {TooManyKeyGroupsAssociatedToDistribution}
119
124
  # * {TooManyLambdaFunctionAssociations}
120
125
  # * {TooManyOriginCustomHeaders}
121
126
  # * {TooManyOriginGroupsPerDistribution}
122
127
  # * {TooManyOriginRequestPolicies}
123
128
  # * {TooManyOrigins}
124
129
  # * {TooManyPublicKeys}
130
+ # * {TooManyPublicKeysInKeyGroup}
125
131
  # * {TooManyQueryStringParameters}
126
132
  # * {TooManyQueryStringsInCachePolicy}
127
133
  # * {TooManyQueryStringsInOriginRequestPolicy}
@@ -129,6 +135,7 @@ module Aws::CloudFront
129
135
  # * {TooManyStreamingDistributionCNAMEs}
130
136
  # * {TooManyStreamingDistributions}
131
137
  # * {TooManyTrustedSigners}
138
+ # * {TrustedKeyGroupDoesNotExist}
132
139
  # * {TrustedSignerDoesNotExist}
133
140
  #
134
141
  # Additionally, error classes are dynamically generated for service errors based on the error code
@@ -767,6 +774,21 @@ module Aws::CloudFront
767
774
  end
768
775
  end
769
776
 
777
+ class KeyGroupAlreadyExists < ServiceError
778
+
779
+ # @param [Seahorse::Client::RequestContext] context
780
+ # @param [String] message
781
+ # @param [Aws::CloudFront::Types::KeyGroupAlreadyExists] data
782
+ def initialize(context, message, data = Aws::EmptyStructure.new)
783
+ super(context, message, data)
784
+ end
785
+
786
+ # @return [String]
787
+ def message
788
+ @message || @data[:message]
789
+ end
790
+ end
791
+
770
792
  class MissingBody < ServiceError
771
793
 
772
794
  # @param [Seahorse::Client::RequestContext] context
@@ -1082,6 +1104,21 @@ module Aws::CloudFront
1082
1104
  end
1083
1105
  end
1084
1106
 
1107
+ class ResourceInUse < ServiceError
1108
+
1109
+ # @param [Seahorse::Client::RequestContext] context
1110
+ # @param [String] message
1111
+ # @param [Aws::CloudFront::Types::ResourceInUse] data
1112
+ def initialize(context, message, data = Aws::EmptyStructure.new)
1113
+ super(context, message, data)
1114
+ end
1115
+
1116
+ # @return [String]
1117
+ def message
1118
+ @message || @data[:message]
1119
+ end
1120
+ end
1121
+
1085
1122
  class StreamingDistributionAlreadyExists < ServiceError
1086
1123
 
1087
1124
  # @param [Seahorse::Client::RequestContext] context
@@ -1277,6 +1314,21 @@ module Aws::CloudFront
1277
1314
  end
1278
1315
  end
1279
1316
 
1317
+ class TooManyDistributionsAssociatedToKeyGroup < ServiceError
1318
+
1319
+ # @param [Seahorse::Client::RequestContext] context
1320
+ # @param [String] message
1321
+ # @param [Aws::CloudFront::Types::TooManyDistributionsAssociatedToKeyGroup] data
1322
+ def initialize(context, message, data = Aws::EmptyStructure.new)
1323
+ super(context, message, data)
1324
+ end
1325
+
1326
+ # @return [String]
1327
+ def message
1328
+ @message || @data[:message]
1329
+ end
1330
+ end
1331
+
1280
1332
  class TooManyDistributionsAssociatedToOriginRequestPolicy < ServiceError
1281
1333
 
1282
1334
  # @param [Seahorse::Client::RequestContext] context
@@ -1472,6 +1524,36 @@ module Aws::CloudFront
1472
1524
  end
1473
1525
  end
1474
1526
 
1527
+ class TooManyKeyGroups < ServiceError
1528
+
1529
+ # @param [Seahorse::Client::RequestContext] context
1530
+ # @param [String] message
1531
+ # @param [Aws::CloudFront::Types::TooManyKeyGroups] data
1532
+ def initialize(context, message, data = Aws::EmptyStructure.new)
1533
+ super(context, message, data)
1534
+ end
1535
+
1536
+ # @return [String]
1537
+ def message
1538
+ @message || @data[:message]
1539
+ end
1540
+ end
1541
+
1542
+ class TooManyKeyGroupsAssociatedToDistribution < ServiceError
1543
+
1544
+ # @param [Seahorse::Client::RequestContext] context
1545
+ # @param [String] message
1546
+ # @param [Aws::CloudFront::Types::TooManyKeyGroupsAssociatedToDistribution] data
1547
+ def initialize(context, message, data = Aws::EmptyStructure.new)
1548
+ super(context, message, data)
1549
+ end
1550
+
1551
+ # @return [String]
1552
+ def message
1553
+ @message || @data[:message]
1554
+ end
1555
+ end
1556
+
1475
1557
  class TooManyLambdaFunctionAssociations < ServiceError
1476
1558
 
1477
1559
  # @param [Seahorse::Client::RequestContext] context
@@ -1562,6 +1644,21 @@ module Aws::CloudFront
1562
1644
  end
1563
1645
  end
1564
1646
 
1647
+ class TooManyPublicKeysInKeyGroup < ServiceError
1648
+
1649
+ # @param [Seahorse::Client::RequestContext] context
1650
+ # @param [String] message
1651
+ # @param [Aws::CloudFront::Types::TooManyPublicKeysInKeyGroup] data
1652
+ def initialize(context, message, data = Aws::EmptyStructure.new)
1653
+ super(context, message, data)
1654
+ end
1655
+
1656
+ # @return [String]
1657
+ def message
1658
+ @message || @data[:message]
1659
+ end
1660
+ end
1661
+
1565
1662
  class TooManyQueryStringParameters < ServiceError
1566
1663
 
1567
1664
  # @param [Seahorse::Client::RequestContext] context
@@ -1667,6 +1764,21 @@ module Aws::CloudFront
1667
1764
  end
1668
1765
  end
1669
1766
 
1767
+ class TrustedKeyGroupDoesNotExist < ServiceError
1768
+
1769
+ # @param [Seahorse::Client::RequestContext] context
1770
+ # @param [String] message
1771
+ # @param [Aws::CloudFront::Types::TrustedKeyGroupDoesNotExist] data
1772
+ def initialize(context, message, data = Aws::EmptyStructure.new)
1773
+ super(context, message, data)
1774
+ end
1775
+
1776
+ # @return [String]
1777
+ def message
1778
+ @message || @data[:message]
1779
+ end
1780
+ end
1781
+
1670
1782
  class TrustedSignerDoesNotExist < ServiceError
1671
1783
 
1672
1784
  # @param [Seahorse::Client::RequestContext] context
@@ -23,40 +23,55 @@ module Aws::CloudFront
23
23
  include Aws::Structure
24
24
  end
25
25
 
26
- # A complex type that lists the AWS accounts, if any, that you included
27
- # in the `TrustedSigners` complex type for this distribution. These are
28
- # the accounts that you want to allow to create signed URLs for private
29
- # content.
26
+ # A list of key groups, and the public keys in each key group, that
27
+ # CloudFront can use to verify the signatures of signed URLs and signed
28
+ # cookies.
30
29
  #
31
- # The `Signer` complex type lists the AWS account number of the trusted
32
- # signer or `self` if the signer is the AWS account that created the
33
- # distribution. The `Signer` element also includes the IDs of any active
34
- # CloudFront key pairs that are associated with the trusted signer's
35
- # AWS account. If no `KeyPairId` element appears for a `Signer`, that
36
- # signer can't create signed URLs.
30
+ # @!attribute [rw] enabled
31
+ # This field is `true` if any of the key groups have public keys that
32
+ # CloudFront can use to verify the signatures of signed URLs and
33
+ # signed cookies. If not, this field is `false`.
34
+ # @return [Boolean]
37
35
  #
38
- # For more information, see [Serving Private Content through
39
- # CloudFront][1] in the *Amazon CloudFront Developer Guide*.
36
+ # @!attribute [rw] quantity
37
+ # The number of key groups in the list.
38
+ # @return [Integer]
40
39
  #
40
+ # @!attribute [rw] items
41
+ # A list of key groups, including the identifiers of the public keys
42
+ # in each key group that CloudFront can use to verify the signatures
43
+ # of signed URLs and signed cookies.
44
+ # @return [Array<Types::KGKeyPairIds>]
41
45
  #
46
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ActiveTrustedKeyGroups AWS API Documentation
42
47
  #
43
- # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
48
+ class ActiveTrustedKeyGroups < Struct.new(
49
+ :enabled,
50
+ :quantity,
51
+ :items)
52
+ SENSITIVE = []
53
+ include Aws::Structure
54
+ end
55
+
56
+ # A list of AWS accounts and the active CloudFront key pairs in each
57
+ # account that CloudFront can use to verify the signatures of signed
58
+ # URLs and signed cookies.
44
59
  #
45
60
  # @!attribute [rw] enabled
46
- # Enabled is `true` if any of the AWS accounts listed in the
47
- # `TrustedSigners` complex type for this distribution have active
48
- # CloudFront key pairs. If not, `Enabled` is `false`.
61
+ # This field is `true` if any of the AWS accounts in the list have
62
+ # active CloudFront key pairs that CloudFront can use to verify the
63
+ # signatures of signed URLs and signed cookies. If not, this field is
64
+ # `false`.
49
65
  # @return [Boolean]
50
66
  #
51
67
  # @!attribute [rw] quantity
52
- # The number of trusted signers specified in the `TrustedSigners`
53
- # complex type.
68
+ # The number of AWS accounts in the list.
54
69
  # @return [Integer]
55
70
  #
56
71
  # @!attribute [rw] items
57
- # A complex type that contains one `Signer` complex type for each
58
- # trusted signer that is specified in the `TrustedSigners` complex
59
- # type.
72
+ # A list of AWS accounts and the identifiers of active CloudFront key
73
+ # pairs in each account that CloudFront can use to verify the
74
+ # signatures of signed URLs and signed cookies.
60
75
  # @return [Array<Types::Signer>]
61
76
  #
62
77
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ActiveTrustedSigners AWS API Documentation
@@ -281,7 +296,12 @@ module Aws::CloudFront
281
296
  # {
282
297
  # path_pattern: "string", # required
283
298
  # target_origin_id: "string", # required
284
- # trusted_signers: { # required
299
+ # trusted_signers: {
300
+ # enabled: false, # required
301
+ # quantity: 1, # required
302
+ # items: ["string"],
303
+ # },
304
+ # trusted_key_groups: {
285
305
  # enabled: false, # required
286
306
  # quantity: 1, # required
287
307
  # items: ["string"],
@@ -365,29 +385,42 @@ module Aws::CloudFront
365
385
  # @return [String]
366
386
  #
367
387
  # @!attribute [rw] trusted_signers
368
- # A complex type that specifies the AWS accounts, if any, that you
369
- # want to allow to create signed URLs for private content.
388
+ # We recommend using `TrustedKeyGroups` instead of `TrustedSigners`.
389
+ #
390
+ # A list of AWS account IDs whose public keys CloudFront can use to
391
+ # validate signed URLs or signed cookies.
392
+ #
393
+ # When a cache behavior contains trusted signers, CloudFront requires
394
+ # signed URLs or signed cookies for all requests that match the cache
395
+ # behavior. The URLs or cookies must be signed with the private key of
396
+ # a CloudFront key pair in the trusted signer’s AWS account. The
397
+ # signed URL or cookie contains information about which public key
398
+ # CloudFront should use to verify the signature. For more information,
399
+ # see [Serving private content][1] in the *Amazon CloudFront Developer
400
+ # Guide*.
401
+ #
370
402
  #
371
- # If you want to require signed URLs in requests for objects in the
372
- # target origin that match the `PathPattern` for this cache behavior,
373
- # specify `true` for `Enabled`, and specify the applicable values for
374
- # `Quantity` and `Items`. For more information, see [Serving Private
375
- # Content with Signed URLs and Signed Cookies][1] in the *Amazon
376
- # CloudFront Developer Guide*.
377
403
  #
378
- # If you don’t want to require signed URLs in requests for objects
379
- # that match `PathPattern`, specify `false` for `Enabled` and `0` for
380
- # `Quantity`. Omit `Items`.
404
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
405
+ # @return [Types::TrustedSigners]
381
406
  #
382
- # To add, change, or remove one or more trusted signers, change
383
- # `Enabled` to `true` (if it’s currently `false`), change `Quantity`
384
- # as applicable, and specify all of the trusted signers that you want
385
- # to include in the updated distribution.
407
+ # @!attribute [rw] trusted_key_groups
408
+ # A list of key groups that CloudFront can use to validate signed URLs
409
+ # or signed cookies.
410
+ #
411
+ # When a cache behavior contains trusted key groups, CloudFront
412
+ # requires signed URLs or signed cookies for all requests that match
413
+ # the cache behavior. The URLs or cookies must be signed with a
414
+ # private key whose corresponding public key is in the key group. The
415
+ # signed URL or cookie contains information about which public key
416
+ # CloudFront should use to verify the signature. For more information,
417
+ # see [Serving private content][1] in the *Amazon CloudFront Developer
418
+ # Guide*.
386
419
  #
387
420
  #
388
421
  #
389
422
  # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
390
- # @return [Types::TrustedSigners]
423
+ # @return [Types::TrustedKeyGroups]
391
424
  #
392
425
  # @!attribute [rw] viewer_protocol_policy
393
426
  # The protocol that viewers can use to access the files in the origin
@@ -611,6 +644,7 @@ module Aws::CloudFront
611
644
  :path_pattern,
612
645
  :target_origin_id,
613
646
  :trusted_signers,
647
+ :trusted_key_groups,
614
648
  :viewer_protocol_policy,
615
649
  :allowed_methods,
616
650
  :smooth_streaming,
@@ -639,7 +673,12 @@ module Aws::CloudFront
639
673
  # {
640
674
  # path_pattern: "string", # required
641
675
  # target_origin_id: "string", # required
642
- # trusted_signers: { # required
676
+ # trusted_signers: {
677
+ # enabled: false, # required
678
+ # quantity: 1, # required
679
+ # items: ["string"],
680
+ # },
681
+ # trusted_key_groups: {
643
682
  # enabled: false, # required
644
683
  # quantity: 1, # required
645
684
  # items: ["string"],
@@ -1784,6 +1823,10 @@ module Aws::CloudFront
1784
1823
  # },
1785
1824
  # connection_attempts: 1,
1786
1825
  # connection_timeout: 1,
1826
+ # origin_shield: {
1827
+ # enabled: false, # required
1828
+ # origin_shield_region: "OriginShieldRegion",
1829
+ # },
1787
1830
  # },
1788
1831
  # ],
1789
1832
  # },
@@ -1811,7 +1854,12 @@ module Aws::CloudFront
1811
1854
  # },
1812
1855
  # default_cache_behavior: { # required
1813
1856
  # target_origin_id: "string", # required
1814
- # trusted_signers: { # required
1857
+ # trusted_signers: {
1858
+ # enabled: false, # required
1859
+ # quantity: 1, # required
1860
+ # items: ["string"],
1861
+ # },
1862
+ # trusted_key_groups: {
1815
1863
  # enabled: false, # required
1816
1864
  # quantity: 1, # required
1817
1865
  # items: ["string"],
@@ -1869,7 +1917,12 @@ module Aws::CloudFront
1869
1917
  # {
1870
1918
  # path_pattern: "string", # required
1871
1919
  # target_origin_id: "string", # required
1872
- # trusted_signers: { # required
1920
+ # trusted_signers: {
1921
+ # enabled: false, # required
1922
+ # quantity: 1, # required
1923
+ # items: ["string"],
1924
+ # },
1925
+ # trusted_key_groups: {
1873
1926
  # enabled: false, # required
1874
1927
  # quantity: 1, # required
1875
1928
  # items: ["string"],
@@ -2048,6 +2101,10 @@ module Aws::CloudFront
2048
2101
  # },
2049
2102
  # connection_attempts: 1,
2050
2103
  # connection_timeout: 1,
2104
+ # origin_shield: {
2105
+ # enabled: false, # required
2106
+ # origin_shield_region: "OriginShieldRegion",
2107
+ # },
2051
2108
  # },
2052
2109
  # ],
2053
2110
  # },
@@ -2075,7 +2132,12 @@ module Aws::CloudFront
2075
2132
  # },
2076
2133
  # default_cache_behavior: { # required
2077
2134
  # target_origin_id: "string", # required
2078
- # trusted_signers: { # required
2135
+ # trusted_signers: {
2136
+ # enabled: false, # required
2137
+ # quantity: 1, # required
2138
+ # items: ["string"],
2139
+ # },
2140
+ # trusted_key_groups: {
2079
2141
  # enabled: false, # required
2080
2142
  # quantity: 1, # required
2081
2143
  # items: ["string"],
@@ -2133,7 +2195,12 @@ module Aws::CloudFront
2133
2195
  # {
2134
2196
  # path_pattern: "string", # required
2135
2197
  # target_origin_id: "string", # required
2136
- # trusted_signers: { # required
2198
+ # trusted_signers: {
2199
+ # enabled: false, # required
2200
+ # quantity: 1, # required
2201
+ # items: ["string"],
2202
+ # },
2203
+ # trusted_key_groups: {
2137
2204
  # enabled: false, # required
2138
2205
  # quantity: 1, # required
2139
2206
  # items: ["string"],
@@ -2458,6 +2525,51 @@ module Aws::CloudFront
2458
2525
  include Aws::Structure
2459
2526
  end
2460
2527
 
2528
+ # @note When making an API call, you may pass CreateKeyGroupRequest
2529
+ # data as a hash:
2530
+ #
2531
+ # {
2532
+ # key_group_config: { # required
2533
+ # name: "string", # required
2534
+ # items: ["string"], # required
2535
+ # comment: "string",
2536
+ # },
2537
+ # }
2538
+ #
2539
+ # @!attribute [rw] key_group_config
2540
+ # A key group configuration.
2541
+ # @return [Types::KeyGroupConfig]
2542
+ #
2543
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateKeyGroupRequest AWS API Documentation
2544
+ #
2545
+ class CreateKeyGroupRequest < Struct.new(
2546
+ :key_group_config)
2547
+ SENSITIVE = []
2548
+ include Aws::Structure
2549
+ end
2550
+
2551
+ # @!attribute [rw] key_group
2552
+ # The key group that was just created.
2553
+ # @return [Types::KeyGroup]
2554
+ #
2555
+ # @!attribute [rw] location
2556
+ # The URL of the key group.
2557
+ # @return [String]
2558
+ #
2559
+ # @!attribute [rw] etag
2560
+ # The identifier for this version of the key group.
2561
+ # @return [String]
2562
+ #
2563
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateKeyGroupResult AWS API Documentation
2564
+ #
2565
+ class CreateKeyGroupResult < Struct.new(
2566
+ :key_group,
2567
+ :location,
2568
+ :etag)
2569
+ SENSITIVE = []
2570
+ include Aws::Structure
2571
+ end
2572
+
2461
2573
  # @note When making an API call, you may pass CreateMonitoringSubscriptionRequest
2462
2574
  # data as a hash:
2463
2575
  #
@@ -2581,7 +2693,7 @@ module Aws::CloudFront
2581
2693
  # }
2582
2694
  #
2583
2695
  # @!attribute [rw] public_key_config
2584
- # The request to add a public key to CloudFront.
2696
+ # A CloudFront public key configuration.
2585
2697
  # @return [Types::PublicKeyConfig]
2586
2698
  #
2587
2699
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreatePublicKeyRequest AWS API Documentation
@@ -2593,16 +2705,15 @@ module Aws::CloudFront
2593
2705
  end
2594
2706
 
2595
2707
  # @!attribute [rw] public_key
2596
- # Returned when you add a public key.
2708
+ # The public key.
2597
2709
  # @return [Types::PublicKey]
2598
2710
  #
2599
2711
  # @!attribute [rw] location
2600
- # The fully qualified URI of the new public key resource just created.
2712
+ # The URL of the public key.
2601
2713
  # @return [String]
2602
2714
  #
2603
2715
  # @!attribute [rw] etag
2604
- # The current version of the public key. For example:
2605
- # `E2QWRUHAPOMQZL`.
2716
+ # The identifier for this version of the public key.
2606
2717
  # @return [String]
2607
2718
  #
2608
2719
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreatePublicKeyResult AWS API Documentation
@@ -3137,7 +3248,12 @@ module Aws::CloudFront
3137
3248
  #
3138
3249
  # {
3139
3250
  # target_origin_id: "string", # required
3140
- # trusted_signers: { # required
3251
+ # trusted_signers: {
3252
+ # enabled: false, # required
3253
+ # quantity: 1, # required
3254
+ # items: ["string"],
3255
+ # },
3256
+ # trusted_key_groups: {
3141
3257
  # enabled: false, # required
3142
3258
  # quantity: 1, # required
3143
3259
  # items: ["string"],
@@ -3196,29 +3312,42 @@ module Aws::CloudFront
3196
3312
  # @return [String]
3197
3313
  #
3198
3314
  # @!attribute [rw] trusted_signers
3199
- # A complex type that specifies the AWS accounts, if any, that you
3200
- # want to allow to create signed URLs for private content.
3315
+ # We recommend using `TrustedKeyGroups` instead of `TrustedSigners`.
3316
+ #
3317
+ # A list of AWS account IDs whose public keys CloudFront can use to
3318
+ # validate signed URLs or signed cookies.
3319
+ #
3320
+ # When a cache behavior contains trusted signers, CloudFront requires
3321
+ # signed URLs or signed cookies for all requests that match the cache
3322
+ # behavior. The URLs or cookies must be signed with the private key of
3323
+ # a CloudFront key pair in a trusted signer’s AWS account. The signed
3324
+ # URL or cookie contains information about which public key CloudFront
3325
+ # should use to verify the signature. For more information, see
3326
+ # [Serving private content][1] in the *Amazon CloudFront Developer
3327
+ # Guide*.
3328
+ #
3201
3329
  #
3202
- # If you want to require signed URLs in requests for objects in the
3203
- # target origin that match the `PathPattern` for this cache behavior,
3204
- # specify `true` for `Enabled`, and specify the applicable values for
3205
- # `Quantity` and `Items`. For more information, see [Serving Private
3206
- # Content with Signed URLs and Signed Cookies][1] in the *Amazon
3207
- # CloudFront Developer Guide*.
3208
3330
  #
3209
- # If you don’t want to require signed URLs in requests for objects
3210
- # that match `PathPattern`, specify `false` for `Enabled` and `0` for
3211
- # `Quantity`. Omit `Items`.
3331
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
3332
+ # @return [Types::TrustedSigners]
3212
3333
  #
3213
- # To add, change, or remove one or more trusted signers, change
3214
- # `Enabled` to `true` (if it’s currently `false`), change `Quantity`
3215
- # as applicable, and specify all of the trusted signers that you want
3216
- # to include in the updated distribution.
3334
+ # @!attribute [rw] trusted_key_groups
3335
+ # A list of key groups that CloudFront can use to validate signed URLs
3336
+ # or signed cookies.
3337
+ #
3338
+ # When a cache behavior contains trusted key groups, CloudFront
3339
+ # requires signed URLs or signed cookies for all requests that match
3340
+ # the cache behavior. The URLs or cookies must be signed with a
3341
+ # private key whose corresponding public key is in the key group. The
3342
+ # signed URL or cookie contains information about which public key
3343
+ # CloudFront should use to verify the signature. For more information,
3344
+ # see [Serving private content][1] in the *Amazon CloudFront Developer
3345
+ # Guide*.
3217
3346
  #
3218
3347
  #
3219
3348
  #
3220
3349
  # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
3221
- # @return [Types::TrustedSigners]
3350
+ # @return [Types::TrustedKeyGroups]
3222
3351
  #
3223
3352
  # @!attribute [rw] viewer_protocol_policy
3224
3353
  # The protocol that viewers can use to access the files in the origin
@@ -3441,6 +3570,7 @@ module Aws::CloudFront
3441
3570
  class DefaultCacheBehavior < Struct.new(
3442
3571
  :target_origin_id,
3443
3572
  :trusted_signers,
3573
+ :trusted_key_groups,
3444
3574
  :viewer_protocol_policy,
3445
3575
  :allowed_methods,
3446
3576
  :smooth_streaming,
@@ -3636,6 +3766,34 @@ module Aws::CloudFront
3636
3766
  include Aws::Structure
3637
3767
  end
3638
3768
 
3769
+ # @note When making an API call, you may pass DeleteKeyGroupRequest
3770
+ # data as a hash:
3771
+ #
3772
+ # {
3773
+ # id: "string", # required
3774
+ # if_match: "string",
3775
+ # }
3776
+ #
3777
+ # @!attribute [rw] id
3778
+ # The identifier of the key group that you are deleting. To get the
3779
+ # identifier, use `ListKeyGroups`.
3780
+ # @return [String]
3781
+ #
3782
+ # @!attribute [rw] if_match
3783
+ # The version of the key group that you are deleting. The version is
3784
+ # the key group’s `ETag` value. To get the `ETag`, use `GetKeyGroup`
3785
+ # or `GetKeyGroupConfig`.
3786
+ # @return [String]
3787
+ #
3788
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteKeyGroupRequest AWS API Documentation
3789
+ #
3790
+ class DeleteKeyGroupRequest < Struct.new(
3791
+ :id,
3792
+ :if_match)
3793
+ SENSITIVE = []
3794
+ include Aws::Structure
3795
+ end
3796
+
3639
3797
  # @note When making an API call, you may pass DeleteMonitoringSubscriptionRequest
3640
3798
  # data as a hash:
3641
3799
  #
@@ -3802,17 +3960,24 @@ module Aws::CloudFront
3802
3960
  # @return [String]
3803
3961
  #
3804
3962
  # @!attribute [rw] active_trusted_signers
3805
- # CloudFront automatically adds this element to the response only if
3806
- # you've set up the distribution to serve private content with signed
3807
- # URLs. The element lists the key pair IDs that CloudFront is aware of
3808
- # for each trusted signer. The `Signer` child element lists the AWS
3809
- # account number of the trusted signer (or an empty `Self` element if
3810
- # the signer is you). The `Signer` element also includes the IDs of
3811
- # any active key pairs associated with the trusted signer's AWS
3812
- # account. If no `KeyPairId` element appears for a `Signer`, that
3813
- # signer can't create working signed URLs.
3963
+ # We recommend using `TrustedKeyGroups` instead of `TrustedSigners`.
3964
+ #
3965
+ # CloudFront automatically adds this field to the response if you’ve
3966
+ # configured a cache behavior in this distribution to serve private
3967
+ # content using trusted signers. This field contains a list of AWS
3968
+ # account IDs and the active CloudFront key pairs in each account that
3969
+ # CloudFront can use to verify the signatures of signed URLs or signed
3970
+ # cookies.
3814
3971
  # @return [Types::ActiveTrustedSigners]
3815
3972
  #
3973
+ # @!attribute [rw] active_trusted_key_groups
3974
+ # CloudFront automatically adds this field to the response if you’ve
3975
+ # configured a cache behavior in this distribution to serve private
3976
+ # content using key groups. This field contains a list of key groups
3977
+ # and the public keys in each key group that CloudFront can use to
3978
+ # verify the signatures of signed URLs or signed cookies.
3979
+ # @return [Types::ActiveTrustedKeyGroups]
3980
+ #
3816
3981
  # @!attribute [rw] distribution_config
3817
3982
  # The current configuration information for the distribution. Send a
3818
3983
  # `GET` request to the `/CloudFront API version/distribution
@@ -3844,6 +4009,7 @@ module Aws::CloudFront
3844
4009
  :in_progress_invalidation_batches,
3845
4010
  :domain_name,
3846
4011
  :active_trusted_signers,
4012
+ :active_trusted_key_groups,
3847
4013
  :distribution_config,
3848
4014
  :alias_icp_recordals)
3849
4015
  SENSITIVE = []
@@ -3908,6 +4074,10 @@ module Aws::CloudFront
3908
4074
  # },
3909
4075
  # connection_attempts: 1,
3910
4076
  # connection_timeout: 1,
4077
+ # origin_shield: {
4078
+ # enabled: false, # required
4079
+ # origin_shield_region: "OriginShieldRegion",
4080
+ # },
3911
4081
  # },
3912
4082
  # ],
3913
4083
  # },
@@ -3935,7 +4105,12 @@ module Aws::CloudFront
3935
4105
  # },
3936
4106
  # default_cache_behavior: { # required
3937
4107
  # target_origin_id: "string", # required
3938
- # trusted_signers: { # required
4108
+ # trusted_signers: {
4109
+ # enabled: false, # required
4110
+ # quantity: 1, # required
4111
+ # items: ["string"],
4112
+ # },
4113
+ # trusted_key_groups: {
3939
4114
  # enabled: false, # required
3940
4115
  # quantity: 1, # required
3941
4116
  # items: ["string"],
@@ -3993,7 +4168,12 @@ module Aws::CloudFront
3993
4168
  # {
3994
4169
  # path_pattern: "string", # required
3995
4170
  # target_origin_id: "string", # required
3996
- # trusted_signers: { # required
4171
+ # trusted_signers: {
4172
+ # enabled: false, # required
4173
+ # quantity: 1, # required
4174
+ # items: ["string"],
4175
+ # },
4176
+ # trusted_key_groups: {
3997
4177
  # enabled: false, # required
3998
4178
  # quantity: 1, # required
3999
4179
  # items: ["string"],
@@ -4389,6 +4569,10 @@ module Aws::CloudFront
4389
4569
  # },
4390
4570
  # connection_attempts: 1,
4391
4571
  # connection_timeout: 1,
4572
+ # origin_shield: {
4573
+ # enabled: false, # required
4574
+ # origin_shield_region: "OriginShieldRegion",
4575
+ # },
4392
4576
  # },
4393
4577
  # ],
4394
4578
  # },
@@ -4416,7 +4600,12 @@ module Aws::CloudFront
4416
4600
  # },
4417
4601
  # default_cache_behavior: { # required
4418
4602
  # target_origin_id: "string", # required
4419
- # trusted_signers: { # required
4603
+ # trusted_signers: {
4604
+ # enabled: false, # required
4605
+ # quantity: 1, # required
4606
+ # items: ["string"],
4607
+ # },
4608
+ # trusted_key_groups: {
4420
4609
  # enabled: false, # required
4421
4610
  # quantity: 1, # required
4422
4611
  # items: ["string"],
@@ -4474,7 +4663,12 @@ module Aws::CloudFront
4474
4663
  # {
4475
4664
  # path_pattern: "string", # required
4476
4665
  # target_origin_id: "string", # required
4477
- # trusted_signers: { # required
4666
+ # trusted_signers: {
4667
+ # enabled: false, # required
4668
+ # quantity: 1, # required
4669
+ # items: ["string"],
4670
+ # },
4671
+ # trusted_key_groups: {
4478
4672
  # enabled: false, # required
4479
4673
  # quantity: 1, # required
4480
4674
  # items: ["string"],
@@ -6046,6 +6240,80 @@ module Aws::CloudFront
6046
6240
  include Aws::Structure
6047
6241
  end
6048
6242
 
6243
+ # @note When making an API call, you may pass GetKeyGroupConfigRequest
6244
+ # data as a hash:
6245
+ #
6246
+ # {
6247
+ # id: "string", # required
6248
+ # }
6249
+ #
6250
+ # @!attribute [rw] id
6251
+ # The identifier of the key group whose configuration you are getting.
6252
+ # To get the identifier, use `ListKeyGroups`.
6253
+ # @return [String]
6254
+ #
6255
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetKeyGroupConfigRequest AWS API Documentation
6256
+ #
6257
+ class GetKeyGroupConfigRequest < Struct.new(
6258
+ :id)
6259
+ SENSITIVE = []
6260
+ include Aws::Structure
6261
+ end
6262
+
6263
+ # @!attribute [rw] key_group_config
6264
+ # The key group configuration.
6265
+ # @return [Types::KeyGroupConfig]
6266
+ #
6267
+ # @!attribute [rw] etag
6268
+ # The identifier for this version of the key group.
6269
+ # @return [String]
6270
+ #
6271
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetKeyGroupConfigResult AWS API Documentation
6272
+ #
6273
+ class GetKeyGroupConfigResult < Struct.new(
6274
+ :key_group_config,
6275
+ :etag)
6276
+ SENSITIVE = []
6277
+ include Aws::Structure
6278
+ end
6279
+
6280
+ # @note When making an API call, you may pass GetKeyGroupRequest
6281
+ # data as a hash:
6282
+ #
6283
+ # {
6284
+ # id: "string", # required
6285
+ # }
6286
+ #
6287
+ # @!attribute [rw] id
6288
+ # The identifier of the key group that you are getting. To get the
6289
+ # identifier, use `ListKeyGroups`.
6290
+ # @return [String]
6291
+ #
6292
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetKeyGroupRequest AWS API Documentation
6293
+ #
6294
+ class GetKeyGroupRequest < Struct.new(
6295
+ :id)
6296
+ SENSITIVE = []
6297
+ include Aws::Structure
6298
+ end
6299
+
6300
+ # @!attribute [rw] key_group
6301
+ # The key group.
6302
+ # @return [Types::KeyGroup]
6303
+ #
6304
+ # @!attribute [rw] etag
6305
+ # The identifier for this version of the key group.
6306
+ # @return [String]
6307
+ #
6308
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetKeyGroupResult AWS API Documentation
6309
+ #
6310
+ class GetKeyGroupResult < Struct.new(
6311
+ :key_group,
6312
+ :etag)
6313
+ SENSITIVE = []
6314
+ include Aws::Structure
6315
+ end
6316
+
6049
6317
  # @note When making an API call, you may pass GetMonitoringSubscriptionRequest
6050
6318
  # data as a hash:
6051
6319
  #
@@ -6170,7 +6438,8 @@ module Aws::CloudFront
6170
6438
  # }
6171
6439
  #
6172
6440
  # @!attribute [rw] id
6173
- # Request the ID for the public key configuration.
6441
+ # The identifier of the public key whose configuration you are
6442
+ # getting.
6174
6443
  # @return [String]
6175
6444
  #
6176
6445
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKeyConfigRequest AWS API Documentation
@@ -6182,12 +6451,11 @@ module Aws::CloudFront
6182
6451
  end
6183
6452
 
6184
6453
  # @!attribute [rw] public_key_config
6185
- # Return the result for the public key configuration.
6454
+ # A public key configuration.
6186
6455
  # @return [Types::PublicKeyConfig]
6187
6456
  #
6188
6457
  # @!attribute [rw] etag
6189
- # The current version of the public key configuration. For example:
6190
- # `E2QWRUHAPOMQZL`.
6458
+ # The identifier for this version of the public key configuration.
6191
6459
  # @return [String]
6192
6460
  #
6193
6461
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKeyConfigResult AWS API Documentation
@@ -6207,7 +6475,7 @@ module Aws::CloudFront
6207
6475
  # }
6208
6476
  #
6209
6477
  # @!attribute [rw] id
6210
- # Request the ID for the public key.
6478
+ # The identifier of the public key you are getting.
6211
6479
  # @return [String]
6212
6480
  #
6213
6481
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKeyRequest AWS API Documentation
@@ -6219,12 +6487,11 @@ module Aws::CloudFront
6219
6487
  end
6220
6488
 
6221
6489
  # @!attribute [rw] public_key
6222
- # Return the public key.
6490
+ # The public key.
6223
6491
  # @return [Types::PublicKey]
6224
6492
  #
6225
6493
  # @!attribute [rw] etag
6226
- # The current version of the public key. For example:
6227
- # `E2QWRUHAPOMQZL`.
6494
+ # The identifier for this version of the public key.
6228
6495
  # @return [String]
6229
6496
  #
6230
6497
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKeyResult AWS API Documentation
@@ -6911,84 +7178,215 @@ module Aws::CloudFront
6911
7178
  include Aws::Structure
6912
7179
  end
6913
7180
 
6914
- # A complex type that lists the active CloudFront key pairs, if any,
6915
- # that are associated with `AwsAccountNumber`.
7181
+ # A list of identifiers for the public keys that CloudFront can use to
7182
+ # verify the signatures of signed URLs and signed cookies.
6916
7183
  #
6917
- # For more information, see [ActiveTrustedSigners][1].
7184
+ # @!attribute [rw] key_group_id
7185
+ # The identifier of the key group that contains the public keys.
7186
+ # @return [String]
6918
7187
  #
7188
+ # @!attribute [rw] key_pair_ids
7189
+ # A list of CloudFront key pair identifiers.
7190
+ # @return [Types::KeyPairIds]
6919
7191
  #
7192
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KGKeyPairIds AWS API Documentation
6920
7193
  #
6921
- # [1]: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ActiveTrustedSigners.html
7194
+ class KGKeyPairIds < Struct.new(
7195
+ :key_group_id,
7196
+ :key_pair_ids)
7197
+ SENSITIVE = []
7198
+ include Aws::Structure
7199
+ end
7200
+
7201
+ # A key group.
6922
7202
  #
6923
- # @!attribute [rw] quantity
6924
- # The number of active CloudFront key pairs for `AwsAccountNumber`.
7203
+ # A key group contains a list of public keys that you can use with
7204
+ # [CloudFront signed URLs and signed cookies][1].
6925
7205
  #
6926
- # For more information, see [ActiveTrustedSigners][1].
6927
7206
  #
6928
7207
  #
7208
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
6929
7209
  #
6930
- # [1]: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ActiveTrustedSigners.html
6931
- # @return [Integer]
7210
+ # @!attribute [rw] id
7211
+ # The identifier for the key group.
7212
+ # @return [String]
6932
7213
  #
6933
- # @!attribute [rw] items
6934
- # A complex type that lists the active CloudFront key pairs, if any,
6935
- # that are associated with `AwsAccountNumber`.
7214
+ # @!attribute [rw] last_modified_time
7215
+ # The date and time when the key group was last modified.
7216
+ # @return [Time]
6936
7217
  #
6937
- # For more information, see [ActiveTrustedSigners][1].
7218
+ # @!attribute [rw] key_group_config
7219
+ # The key group configuration.
7220
+ # @return [Types::KeyGroupConfig]
6938
7221
  #
7222
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KeyGroup AWS API Documentation
6939
7223
  #
7224
+ class KeyGroup < Struct.new(
7225
+ :id,
7226
+ :last_modified_time,
7227
+ :key_group_config)
7228
+ SENSITIVE = []
7229
+ include Aws::Structure
7230
+ end
7231
+
7232
+ # A key group with this name already exists. You must provide a unique
7233
+ # name. To modify an existing key group, use `UpdateKeyGroup`.
6940
7234
  #
6941
- # [1]: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ActiveTrustedSigners.html
6942
- # @return [Array<String>]
7235
+ # @!attribute [rw] message
7236
+ # @return [String]
6943
7237
  #
6944
- # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KeyPairIds AWS API Documentation
7238
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KeyGroupAlreadyExists AWS API Documentation
6945
7239
  #
6946
- class KeyPairIds < Struct.new(
6947
- :quantity,
6948
- :items)
7240
+ class KeyGroupAlreadyExists < Struct.new(
7241
+ :message)
6949
7242
  SENSITIVE = []
6950
7243
  include Aws::Structure
6951
7244
  end
6952
7245
 
6953
- # Contains information about the Amazon Kinesis data stream where you
6954
- # are sending real-time log data.
7246
+ # A key group configuration.
6955
7247
  #
6956
- # @note When making an API call, you may pass KinesisStreamConfig
6957
- # data as a hash:
7248
+ # A key group contains a list of public keys that you can use with
7249
+ # [CloudFront signed URLs and signed cookies][1].
6958
7250
  #
6959
- # {
6960
- # role_arn: "string", # required
6961
- # stream_arn: "string", # required
6962
- # }
6963
7251
  #
6964
- # @!attribute [rw] role_arn
6965
- # The Amazon Resource Name (ARN) of an AWS Identity and Access
6966
- # Management (IAM) role that CloudFront can use to send real-time log
6967
- # data to your Kinesis data stream.
6968
7252
  #
6969
- # For more information the IAM role, see [Real-time log configuration
6970
- # IAM role][1] in the *Amazon CloudFront Developer Guide*.
7253
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
6971
7254
  #
7255
+ # @note When making an API call, you may pass KeyGroupConfig
7256
+ # data as a hash:
6972
7257
  #
7258
+ # {
7259
+ # name: "string", # required
7260
+ # items: ["string"], # required
7261
+ # comment: "string",
7262
+ # }
6973
7263
  #
6974
- # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-iam-role
7264
+ # @!attribute [rw] name
7265
+ # A name to identify the key group.
6975
7266
  # @return [String]
6976
7267
  #
6977
- # @!attribute [rw] stream_arn
6978
- # The Amazon Resource Name (ARN) of the Kinesis data stream where you
6979
- # are sending real-time log data.
7268
+ # @!attribute [rw] items
7269
+ # A list of the identifiers of the public keys in the key group.
7270
+ # @return [Array<String>]
7271
+ #
7272
+ # @!attribute [rw] comment
7273
+ # A comment to describe the key group.
6980
7274
  # @return [String]
6981
7275
  #
6982
- # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KinesisStreamConfig AWS API Documentation
7276
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KeyGroupConfig AWS API Documentation
6983
7277
  #
6984
- class KinesisStreamConfig < Struct.new(
6985
- :role_arn,
6986
- :stream_arn)
7278
+ class KeyGroupConfig < Struct.new(
7279
+ :name,
7280
+ :items,
7281
+ :comment)
6987
7282
  SENSITIVE = []
6988
7283
  include Aws::Structure
6989
7284
  end
6990
7285
 
6991
- # A complex type that contains a Lambda function association.
7286
+ # A list of key groups.
7287
+ #
7288
+ # @!attribute [rw] next_marker
7289
+ # If there are more items in the list than are in this response, this
7290
+ # element is present. It contains the value that you should use in the
7291
+ # `Marker` field of a subsequent request to continue listing key
7292
+ # groups.
7293
+ # @return [String]
7294
+ #
7295
+ # @!attribute [rw] max_items
7296
+ # The maximum number of key groups requested.
7297
+ # @return [Integer]
7298
+ #
7299
+ # @!attribute [rw] quantity
7300
+ # The number of key groups returned in the response.
7301
+ # @return [Integer]
7302
+ #
7303
+ # @!attribute [rw] items
7304
+ # A list of key groups.
7305
+ # @return [Array<Types::KeyGroupSummary>]
7306
+ #
7307
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KeyGroupList AWS API Documentation
7308
+ #
7309
+ class KeyGroupList < Struct.new(
7310
+ :next_marker,
7311
+ :max_items,
7312
+ :quantity,
7313
+ :items)
7314
+ SENSITIVE = []
7315
+ include Aws::Structure
7316
+ end
7317
+
7318
+ # Contains information about a key group.
7319
+ #
7320
+ # @!attribute [rw] key_group
7321
+ # A key group.
7322
+ # @return [Types::KeyGroup]
7323
+ #
7324
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KeyGroupSummary AWS API Documentation
7325
+ #
7326
+ class KeyGroupSummary < Struct.new(
7327
+ :key_group)
7328
+ SENSITIVE = []
7329
+ include Aws::Structure
7330
+ end
7331
+
7332
+ # A list of CloudFront key pair identifiers.
7333
+ #
7334
+ # @!attribute [rw] quantity
7335
+ # The number of key pair identifiers in the list.
7336
+ # @return [Integer]
7337
+ #
7338
+ # @!attribute [rw] items
7339
+ # A list of CloudFront key pair identifiers.
7340
+ # @return [Array<String>]
7341
+ #
7342
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KeyPairIds AWS API Documentation
7343
+ #
7344
+ class KeyPairIds < Struct.new(
7345
+ :quantity,
7346
+ :items)
7347
+ SENSITIVE = []
7348
+ include Aws::Structure
7349
+ end
7350
+
7351
+ # Contains information about the Amazon Kinesis data stream where you
7352
+ # are sending real-time log data.
7353
+ #
7354
+ # @note When making an API call, you may pass KinesisStreamConfig
7355
+ # data as a hash:
7356
+ #
7357
+ # {
7358
+ # role_arn: "string", # required
7359
+ # stream_arn: "string", # required
7360
+ # }
7361
+ #
7362
+ # @!attribute [rw] role_arn
7363
+ # The Amazon Resource Name (ARN) of an AWS Identity and Access
7364
+ # Management (IAM) role that CloudFront can use to send real-time log
7365
+ # data to your Kinesis data stream.
7366
+ #
7367
+ # For more information the IAM role, see [Real-time log configuration
7368
+ # IAM role][1] in the *Amazon CloudFront Developer Guide*.
7369
+ #
7370
+ #
7371
+ #
7372
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-iam-role
7373
+ # @return [String]
7374
+ #
7375
+ # @!attribute [rw] stream_arn
7376
+ # The Amazon Resource Name (ARN) of the Kinesis data stream where you
7377
+ # are sending real-time log data.
7378
+ # @return [String]
7379
+ #
7380
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KinesisStreamConfig AWS API Documentation
7381
+ #
7382
+ class KinesisStreamConfig < Struct.new(
7383
+ :role_arn,
7384
+ :stream_arn)
7385
+ SENSITIVE = []
7386
+ include Aws::Structure
7387
+ end
7388
+
7389
+ # A complex type that contains a Lambda function association.
6992
7390
  #
6993
7391
  # @note When making an API call, you may pass LambdaFunctionAssociation
6994
7392
  # data as a hash:
@@ -7245,6 +7643,55 @@ module Aws::CloudFront
7245
7643
  include Aws::Structure
7246
7644
  end
7247
7645
 
7646
+ # @note When making an API call, you may pass ListDistributionsByKeyGroupRequest
7647
+ # data as a hash:
7648
+ #
7649
+ # {
7650
+ # marker: "string",
7651
+ # max_items: 1,
7652
+ # key_group_id: "string", # required
7653
+ # }
7654
+ #
7655
+ # @!attribute [rw] marker
7656
+ # Use this field when paginating results to indicate where to begin in
7657
+ # your list of distribution IDs. The response includes distribution
7658
+ # IDs in the list that occur after the marker. To get the next page of
7659
+ # the list, set this field’s value to the value of `NextMarker` from
7660
+ # the current page’s response.
7661
+ # @return [String]
7662
+ #
7663
+ # @!attribute [rw] max_items
7664
+ # The maximum number of distribution IDs that you want in the
7665
+ # response.
7666
+ # @return [Integer]
7667
+ #
7668
+ # @!attribute [rw] key_group_id
7669
+ # The ID of the key group whose associated distribution IDs you are
7670
+ # listing.
7671
+ # @return [String]
7672
+ #
7673
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByKeyGroupRequest AWS API Documentation
7674
+ #
7675
+ class ListDistributionsByKeyGroupRequest < Struct.new(
7676
+ :marker,
7677
+ :max_items,
7678
+ :key_group_id)
7679
+ SENSITIVE = []
7680
+ include Aws::Structure
7681
+ end
7682
+
7683
+ # @!attribute [rw] distribution_id_list
7684
+ # A list of distribution IDs.
7685
+ # @return [Types::DistributionIdList]
7686
+ #
7687
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByKeyGroupResult AWS API Documentation
7688
+ #
7689
+ class ListDistributionsByKeyGroupResult < Struct.new(
7690
+ :distribution_id_list)
7691
+ SENSITIVE = []
7692
+ include Aws::Structure
7693
+ end
7694
+
7248
7695
  # @note When making an API call, you may pass ListDistributionsByOriginRequestPolicyIdRequest
7249
7696
  # data as a hash:
7250
7697
  #
@@ -7596,6 +8043,47 @@ module Aws::CloudFront
7596
8043
  include Aws::Structure
7597
8044
  end
7598
8045
 
8046
+ # @note When making an API call, you may pass ListKeyGroupsRequest
8047
+ # data as a hash:
8048
+ #
8049
+ # {
8050
+ # marker: "string",
8051
+ # max_items: 1,
8052
+ # }
8053
+ #
8054
+ # @!attribute [rw] marker
8055
+ # Use this field when paginating results to indicate where to begin in
8056
+ # your list of key groups. The response includes key groups in the
8057
+ # list that occur after the marker. To get the next page of the list,
8058
+ # set this field’s value to the value of `NextMarker` from the current
8059
+ # page’s response.
8060
+ # @return [String]
8061
+ #
8062
+ # @!attribute [rw] max_items
8063
+ # The maximum number of key groups that you want in the response.
8064
+ # @return [Integer]
8065
+ #
8066
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListKeyGroupsRequest AWS API Documentation
8067
+ #
8068
+ class ListKeyGroupsRequest < Struct.new(
8069
+ :marker,
8070
+ :max_items)
8071
+ SENSITIVE = []
8072
+ include Aws::Structure
8073
+ end
8074
+
8075
+ # @!attribute [rw] key_group_list
8076
+ # A list of key groups.
8077
+ # @return [Types::KeyGroupList]
8078
+ #
8079
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListKeyGroupsResult AWS API Documentation
8080
+ #
8081
+ class ListKeyGroupsResult < Struct.new(
8082
+ :key_group_list)
8083
+ SENSITIVE = []
8084
+ include Aws::Structure
8085
+ end
8086
+
7599
8087
  # @note When making an API call, you may pass ListOriginRequestPoliciesRequest
7600
8088
  # data as a hash:
7601
8089
  #
@@ -8068,17 +8556,17 @@ module Aws::CloudFront
8068
8556
  # An origin is the location where content is stored, and from which
8069
8557
  # CloudFront gets content to serve to viewers. To specify an origin:
8070
8558
  #
8071
- # * Use the `S3OriginConfig` type to specify an Amazon S3 bucket that is
8072
- # <i> <b>not</b> </i> configured with static website hosting.
8559
+ # * Use `S3OriginConfig` to specify an Amazon S3 bucket that is not
8560
+ # configured with static website hosting.
8073
8561
  #
8074
- # * Use the `CustomOriginConfig` type to specify various other kinds of
8075
- # content containers or HTTP servers, including:
8562
+ # * Use `CustomOriginConfig` to specify all other kinds of origins,
8563
+ # including:
8076
8564
  #
8077
8565
  # * An Amazon S3 bucket that is configured with static website hosting
8078
8566
  #
8079
8567
  # * An Elastic Load Balancing load balancer
8080
8568
  #
8081
- # * An AWS Elemental MediaPackage origin
8569
+ # * An AWS Elemental MediaPackage endpoint
8082
8570
  #
8083
8571
  # * An AWS Elemental MediaStore container
8084
8572
  #
@@ -8126,6 +8614,10 @@ module Aws::CloudFront
8126
8614
  # },
8127
8615
  # connection_attempts: 1,
8128
8616
  # connection_timeout: 1,
8617
+ # origin_shield: {
8618
+ # enabled: false, # required
8619
+ # origin_shield_region: "OriginShieldRegion",
8620
+ # },
8129
8621
  # }
8130
8622
  #
8131
8623
  # @!attribute [rw] id
@@ -8160,8 +8652,8 @@ module Aws::CloudFront
8160
8652
  # @return [String]
8161
8653
  #
8162
8654
  # @!attribute [rw] custom_headers
8163
- # A list of HTTP header names and values that CloudFront adds to
8164
- # requests it sends to the origin.
8655
+ # A list of HTTP header names and values that CloudFront adds to the
8656
+ # requests that it sends to the origin.
8165
8657
  #
8166
8658
  # For more information, see [Adding Custom Headers to Origin
8167
8659
  # Requests][1] in the *Amazon CloudFront Developer Guide*.
@@ -8173,18 +8665,18 @@ module Aws::CloudFront
8173
8665
  #
8174
8666
  # @!attribute [rw] s3_origin_config
8175
8667
  # Use this type to specify an origin that is an Amazon S3 bucket that
8176
- # is <i> <b>not</b> </i> configured with static website hosting. To
8177
- # specify any other type of origin, including an Amazon S3 bucket that
8178
- # is configured with static website hosting, use the
8179
- # `CustomOriginConfig` type instead.
8668
+ # is not configured with static website hosting. To specify any other
8669
+ # type of origin, including an Amazon S3 bucket that is configured
8670
+ # with static website hosting, use the `CustomOriginConfig` type
8671
+ # instead.
8180
8672
  # @return [Types::S3OriginConfig]
8181
8673
  #
8182
8674
  # @!attribute [rw] custom_origin_config
8183
- # Use this type to specify an origin that is a content container or
8184
- # HTTP server, including an Amazon S3 bucket that is configured with
8185
- # static website hosting. To specify an Amazon S3 bucket that is <i>
8186
- # <b>not</b> </i> configured with static website hosting, use the
8187
- # `S3OriginConfig` type instead.
8675
+ # Use this type to specify an origin that is not an Amazon S3 bucket,
8676
+ # with one exception. If the Amazon S3 bucket is configured with
8677
+ # static website hosting, use this type. If the Amazon S3 bucket is
8678
+ # not configured with static website hosting, use the `S3OriginConfig`
8679
+ # type instead.
8188
8680
  # @return [Types::CustomOriginConfig]
8189
8681
  #
8190
8682
  # @!attribute [rw] connection_attempts
@@ -8220,6 +8712,18 @@ module Aws::CloudFront
8220
8712
  # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-timeout
8221
8713
  # @return [Integer]
8222
8714
  #
8715
+ # @!attribute [rw] origin_shield
8716
+ # CloudFront Origin Shield. Using Origin Shield can help reduce the
8717
+ # load on your origin.
8718
+ #
8719
+ # For more information, see [Using Origin Shield][1] in the *Amazon
8720
+ # CloudFront Developer Guide*.
8721
+ #
8722
+ #
8723
+ #
8724
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html
8725
+ # @return [Types::OriginShield]
8726
+ #
8223
8727
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/Origin AWS API Documentation
8224
8728
  #
8225
8729
  class Origin < Struct.new(
@@ -8230,7 +8734,8 @@ module Aws::CloudFront
8230
8734
  :s3_origin_config,
8231
8735
  :custom_origin_config,
8232
8736
  :connection_attempts,
8233
- :connection_timeout)
8737
+ :connection_timeout,
8738
+ :origin_shield)
8234
8739
  SENSITIVE = []
8235
8740
  include Aws::Structure
8236
8741
  end
@@ -8799,6 +9304,60 @@ module Aws::CloudFront
8799
9304
  include Aws::Structure
8800
9305
  end
8801
9306
 
9307
+ # CloudFront Origin Shield.
9308
+ #
9309
+ # Using Origin Shield can help reduce the load on your origin. For more
9310
+ # information, see [Using Origin Shield][1] in the *Amazon CloudFront
9311
+ # Developer Guide*.
9312
+ #
9313
+ #
9314
+ #
9315
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html
9316
+ #
9317
+ # @note When making an API call, you may pass OriginShield
9318
+ # data as a hash:
9319
+ #
9320
+ # {
9321
+ # enabled: false, # required
9322
+ # origin_shield_region: "OriginShieldRegion",
9323
+ # }
9324
+ #
9325
+ # @!attribute [rw] enabled
9326
+ # A flag that specifies whether Origin Shield is enabled.
9327
+ #
9328
+ # When it’s enabled, CloudFront routes all requests through Origin
9329
+ # Shield, which can help protect your origin. When it’s disabled,
9330
+ # CloudFront might send requests directly to your origin from multiple
9331
+ # edge locations or regional edge caches.
9332
+ # @return [Boolean]
9333
+ #
9334
+ # @!attribute [rw] origin_shield_region
9335
+ # The AWS Region for Origin Shield.
9336
+ #
9337
+ # Specify the AWS Region that has the lowest latency to your origin.
9338
+ # To specify a region, use the region code, not the region name. For
9339
+ # example, specify the US East (Ohio) region as `us-east-2`.
9340
+ #
9341
+ # When you enable CloudFront Origin Shield, you must specify the AWS
9342
+ # Region for Origin Shield. For the list of AWS Regions that you can
9343
+ # specify, and for help choosing the best Region for your origin, see
9344
+ # [Choosing the AWS Region for Origin Shield][1] in the *Amazon
9345
+ # CloudFront Developer Guide*.
9346
+ #
9347
+ #
9348
+ #
9349
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region
9350
+ # @return [String]
9351
+ #
9352
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/OriginShield AWS API Documentation
9353
+ #
9354
+ class OriginShield < Struct.new(
9355
+ :enabled,
9356
+ :origin_shield_region)
9357
+ SENSITIVE = []
9358
+ include Aws::Structure
9359
+ end
9360
+
8802
9361
  # A complex type that contains information about the SSL/TLS protocols
8803
9362
  # that CloudFront can use when establishing an HTTPS connection with
8804
9363
  # your origin.
@@ -8830,8 +9389,7 @@ module Aws::CloudFront
8830
9389
  include Aws::Structure
8831
9390
  end
8832
9391
 
8833
- # A complex type that contains information about origins and origin
8834
- # groups for this distribution.
9392
+ # Contains information about the origins for this distribution.
8835
9393
  #
8836
9394
  # @note When making an API call, you may pass Origins
8837
9395
  # data as a hash:
@@ -8868,17 +9426,20 @@ module Aws::CloudFront
8868
9426
  # },
8869
9427
  # connection_attempts: 1,
8870
9428
  # connection_timeout: 1,
9429
+ # origin_shield: {
9430
+ # enabled: false, # required
9431
+ # origin_shield_region: "OriginShieldRegion",
9432
+ # },
8871
9433
  # },
8872
9434
  # ],
8873
9435
  # }
8874
9436
  #
8875
9437
  # @!attribute [rw] quantity
8876
- # The number of origins or origin groups for this distribution.
9438
+ # The number of origins for this distribution.
8877
9439
  # @return [Integer]
8878
9440
  #
8879
9441
  # @!attribute [rw] items
8880
- # A complex type that contains origins or origin groups for this
8881
- # distribution.
9442
+ # A list of origins.
8882
9443
  # @return [Array<Types::Origin>]
8883
9444
  #
8884
9445
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/Origins AWS API Documentation
@@ -8948,8 +9509,8 @@ module Aws::CloudFront
8948
9509
  # * Includes the normalized header in the request to the origin, if a
8949
9510
  # request is necessary
8950
9511
  #
8951
- # For more information, see [Cache compressed objects][1] in the
8952
- # *Amazon CloudFront Developer Guide*.
9512
+ # For more information, see [Compression support][1] in the *Amazon
9513
+ # CloudFront Developer Guide*.
8953
9514
  #
8954
9515
  # If you set this value to `true`, and this cache behavior also has an
8955
9516
  # origin request policy attached, do not include the `Accept-Encoding`
@@ -8987,8 +9548,8 @@ module Aws::CloudFront
8987
9548
  # * Includes the normalized header in the request to the origin, if a
8988
9549
  # request is necessary
8989
9550
  #
8990
- # For more information, see [Cache compressed objects][1] in the
8991
- # *Amazon CloudFront Developer Guide*.
9551
+ # For more information, see [Compression support][1] in the *Amazon
9552
+ # CloudFront Developer Guide*.
8992
9553
  #
8993
9554
  # If you set this value to `true`, and this cache behavior also has an
8994
9555
  # origin request policy attached, do not include the `Accept-Encoding`
@@ -9090,20 +9651,31 @@ module Aws::CloudFront
9090
9651
  include Aws::Structure
9091
9652
  end
9092
9653
 
9093
- # A complex data type of public keys you add to CloudFront to use with
9094
- # features like field-level encryption.
9654
+ # A public key that you can use with [signed URLs and signed
9655
+ # cookies][1], or with [field-level encryption][2].
9656
+ #
9657
+ #
9658
+ #
9659
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
9660
+ # [2]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html
9095
9661
  #
9096
9662
  # @!attribute [rw] id
9097
- # A unique ID assigned to a public key you've added to CloudFront.
9663
+ # The identifier of the public key.
9098
9664
  # @return [String]
9099
9665
  #
9100
9666
  # @!attribute [rw] created_time
9101
- # A time you added a public key to CloudFront.
9667
+ # The date and time when the public key was uploaded.
9102
9668
  # @return [Time]
9103
9669
  #
9104
9670
  # @!attribute [rw] public_key_config
9105
- # A complex data type for a public key you add to CloudFront to use
9106
- # with features like field-level encryption.
9671
+ # Configuration information about a public key that you can use with
9672
+ # [signed URLs and signed cookies][1], or with [field-level
9673
+ # encryption][2].
9674
+ #
9675
+ #
9676
+ #
9677
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
9678
+ # [2]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html
9107
9679
  # @return [Types::PublicKeyConfig]
9108
9680
  #
9109
9681
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/PublicKey AWS API Documentation
@@ -9129,8 +9701,14 @@ module Aws::CloudFront
9129
9701
  include Aws::Structure
9130
9702
  end
9131
9703
 
9132
- # Information about a public key you add to CloudFront to use with
9133
- # features like field-level encryption.
9704
+ # Configuration information about a public key that you can use with
9705
+ # [signed URLs and signed cookies][1], or with [field-level
9706
+ # encryption][2].
9707
+ #
9708
+ #
9709
+ #
9710
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
9711
+ # [2]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html
9134
9712
  #
9135
9713
  # @note When making an API call, you may pass PublicKeyConfig
9136
9714
  # data as a hash:
@@ -9143,21 +9721,26 @@ module Aws::CloudFront
9143
9721
  # }
9144
9722
  #
9145
9723
  # @!attribute [rw] caller_reference
9146
- # A unique number that ensures that the request can't be replayed.
9724
+ # A string included in the request to help make sure that the request
9725
+ # can’t be replayed.
9147
9726
  # @return [String]
9148
9727
  #
9149
9728
  # @!attribute [rw] name
9150
- # The name for a public key you add to CloudFront to use with features
9151
- # like field-level encryption.
9729
+ # A name to help identify the public key.
9152
9730
  # @return [String]
9153
9731
  #
9154
9732
  # @!attribute [rw] encoded_key
9155
- # The encoded public key that you want to add to CloudFront to use
9156
- # with features like field-level encryption.
9733
+ # The public key that you can use with [signed URLs and signed
9734
+ # cookies][1], or with [field-level encryption][2].
9735
+ #
9736
+ #
9737
+ #
9738
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
9739
+ # [2]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html
9157
9740
  # @return [String]
9158
9741
  #
9159
9742
  # @!attribute [rw] comment
9160
- # An optional comment about a public key.
9743
+ # A comment to describe the public key.
9161
9744
  # @return [String]
9162
9745
  #
9163
9746
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/PublicKeyConfig AWS API Documentation
@@ -9184,8 +9767,13 @@ module Aws::CloudFront
9184
9767
  include Aws::Structure
9185
9768
  end
9186
9769
 
9187
- # A list of public keys you've added to CloudFront to use with features
9188
- # like field-level encryption.
9770
+ # A list of public keys that you can use with [signed URLs and signed
9771
+ # cookies][1], or with [field-level encryption][2].
9772
+ #
9773
+ #
9774
+ #
9775
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
9776
+ # [2]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html
9189
9777
  #
9190
9778
  # @!attribute [rw] next_marker
9191
9779
  # If there are more elements to be listed, this element is present and
@@ -9194,17 +9782,15 @@ module Aws::CloudFront
9194
9782
  # @return [String]
9195
9783
  #
9196
9784
  # @!attribute [rw] max_items
9197
- # The maximum number of public keys you want in the response body.
9785
+ # The maximum number of public keys you want in the response.
9198
9786
  # @return [Integer]
9199
9787
  #
9200
9788
  # @!attribute [rw] quantity
9201
- # The number of public keys you added to CloudFront to use with
9202
- # features like field-level encryption.
9789
+ # The number of public keys in the list.
9203
9790
  # @return [Integer]
9204
9791
  #
9205
9792
  # @!attribute [rw] items
9206
- # An array of information about a public key you add to CloudFront to
9207
- # use with features like field-level encryption.
9793
+ # A list of public keys.
9208
9794
  # @return [Array<Types::PublicKeySummary>]
9209
9795
  #
9210
9796
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/PublicKeyList AWS API Documentation
@@ -9218,26 +9804,26 @@ module Aws::CloudFront
9218
9804
  include Aws::Structure
9219
9805
  end
9220
9806
 
9221
- # A complex data type for public key information.
9807
+ # Contains information about a public key.
9222
9808
  #
9223
9809
  # @!attribute [rw] id
9224
- # ID for public key information summary.
9810
+ # The identifier of the public key.
9225
9811
  # @return [String]
9226
9812
  #
9227
9813
  # @!attribute [rw] name
9228
- # Name for public key information summary.
9814
+ # A name to help identify the public key.
9229
9815
  # @return [String]
9230
9816
  #
9231
9817
  # @!attribute [rw] created_time
9232
- # Creation time for public key information summary.
9818
+ # The date and time when the public key was uploaded.
9233
9819
  # @return [Time]
9234
9820
  #
9235
9821
  # @!attribute [rw] encoded_key
9236
- # Encoded key for public key information summary.
9822
+ # The public key.
9237
9823
  # @return [String]
9238
9824
  #
9239
9825
  # @!attribute [rw] comment
9240
- # Comment for public key information summary.
9826
+ # A comment to describe the public key.
9241
9827
  # @return [String]
9242
9828
  #
9243
9829
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/PublicKeySummary AWS API Documentation
@@ -9574,6 +10160,19 @@ module Aws::CloudFront
9574
10160
  include Aws::Structure
9575
10161
  end
9576
10162
 
10163
+ # Cannot delete this resource because it is in use.
10164
+ #
10165
+ # @!attribute [rw] message
10166
+ # @return [String]
10167
+ #
10168
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ResourceInUse AWS API Documentation
10169
+ #
10170
+ class ResourceInUse < Struct.new(
10171
+ :message)
10172
+ SENSITIVE = []
10173
+ include Aws::Structure
10174
+ end
10175
+
9577
10176
  # A complex type that identifies ways in which you want to restrict
9578
10177
  # distribution of your content.
9579
10178
  #
@@ -9704,22 +10303,20 @@ module Aws::CloudFront
9704
10303
  include Aws::Structure
9705
10304
  end
9706
10305
 
9707
- # A complex type that lists the AWS accounts that were included in the
9708
- # `TrustedSigners` complex type, as well as their active CloudFront key
9709
- # pair IDs, if any.
10306
+ # A list of AWS accounts and the active CloudFront key pairs in each
10307
+ # account that CloudFront can use to verify the signatures of signed
10308
+ # URLs and signed cookies.
9710
10309
  #
9711
10310
  # @!attribute [rw] aws_account_number
9712
- # An AWS account that is included in the `TrustedSigners` complex type
9713
- # for this distribution. Valid values include:
9714
- #
9715
- # * `self`, which is the AWS account used to create the distribution.
9716
- #
9717
- # * An AWS account number.
10311
+ # An AWS account number that contains active CloudFront key pairs that
10312
+ # CloudFront can use to verify the signatures of signed URLs and
10313
+ # signed cookies. If the AWS account that owns the key pairs is the
10314
+ # same account that owns the CloudFront distribution, the value of
10315
+ # this field is `self`.
9718
10316
  # @return [String]
9719
10317
  #
9720
10318
  # @!attribute [rw] key_pair_ids
9721
- # A complex type that lists the active CloudFront key pairs, if any,
9722
- # that are associated with `AwsAccountNumber`.
10319
+ # A list of CloudFront key pair identifiers.
9723
10320
  # @return [Types::KeyPairIds]
9724
10321
  #
9725
10322
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/Signer AWS API Documentation
@@ -10488,6 +11085,25 @@ module Aws::CloudFront
10488
11085
  include Aws::Structure
10489
11086
  end
10490
11087
 
11088
+ # The number of distributions that reference this key group is more than
11089
+ # the maximum allowed. For more information, see [Quotas][1] (formerly
11090
+ # known as limits) in the *Amazon CloudFront Developer Guide*.
11091
+ #
11092
+ #
11093
+ #
11094
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html
11095
+ #
11096
+ # @!attribute [rw] message
11097
+ # @return [String]
11098
+ #
11099
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TooManyDistributionsAssociatedToKeyGroup AWS API Documentation
11100
+ #
11101
+ class TooManyDistributionsAssociatedToKeyGroup < Struct.new(
11102
+ :message)
11103
+ SENSITIVE = []
11104
+ include Aws::Structure
11105
+ end
11106
+
10491
11107
  # The maximum number of distributions have been associated with the
10492
11108
  # specified origin request policy. For more information, see [Quotas][1]
10493
11109
  # (formerly known as limits) in the *Amazon CloudFront Developer Guide*.
@@ -10685,6 +11301,44 @@ module Aws::CloudFront
10685
11301
  include Aws::Structure
10686
11302
  end
10687
11303
 
11304
+ # You have reached the maximum number of key groups for this AWS
11305
+ # account. For more information, see [Quotas][1] (formerly known as
11306
+ # limits) in the *Amazon CloudFront Developer Guide*.
11307
+ #
11308
+ #
11309
+ #
11310
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html
11311
+ #
11312
+ # @!attribute [rw] message
11313
+ # @return [String]
11314
+ #
11315
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TooManyKeyGroups AWS API Documentation
11316
+ #
11317
+ class TooManyKeyGroups < Struct.new(
11318
+ :message)
11319
+ SENSITIVE = []
11320
+ include Aws::Structure
11321
+ end
11322
+
11323
+ # The number of key groups referenced by this distribution is more than
11324
+ # the maximum allowed. For more information, see [Quotas][1] (formerly
11325
+ # known as limits) in the *Amazon CloudFront Developer Guide*.
11326
+ #
11327
+ #
11328
+ #
11329
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html
11330
+ #
11331
+ # @!attribute [rw] message
11332
+ # @return [String]
11333
+ #
11334
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TooManyKeyGroupsAssociatedToDistribution AWS API Documentation
11335
+ #
11336
+ class TooManyKeyGroupsAssociatedToDistribution < Struct.new(
11337
+ :message)
11338
+ SENSITIVE = []
11339
+ include Aws::Structure
11340
+ end
11341
+
10688
11342
  # Your request contains more Lambda function associations than are
10689
11343
  # allowed per distribution.
10690
11344
  #
@@ -10772,6 +11426,25 @@ module Aws::CloudFront
10772
11426
  include Aws::Structure
10773
11427
  end
10774
11428
 
11429
+ # The number of public keys in this key group is more than the maximum
11430
+ # allowed. For more information, see [Quotas][1] (formerly known as
11431
+ # limits) in the *Amazon CloudFront Developer Guide*.
11432
+ #
11433
+ #
11434
+ #
11435
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html
11436
+ #
11437
+ # @!attribute [rw] message
11438
+ # @return [String]
11439
+ #
11440
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TooManyPublicKeysInKeyGroup AWS API Documentation
11441
+ #
11442
+ class TooManyPublicKeysInKeyGroup < Struct.new(
11443
+ :message)
11444
+ SENSITIVE = []
11445
+ include Aws::Structure
11446
+ end
11447
+
10775
11448
  # Your request contains too many query string parameters.
10776
11449
  #
10777
11450
  # @!attribute [rw] message
@@ -10883,45 +11556,70 @@ module Aws::CloudFront
10883
11556
  include Aws::Structure
10884
11557
  end
10885
11558
 
10886
- # One or more of your trusted signers don't exist.
11559
+ # The specified key group does not exist.
10887
11560
  #
10888
11561
  # @!attribute [rw] message
10889
11562
  # @return [String]
10890
11563
  #
10891
- # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TrustedSignerDoesNotExist AWS API Documentation
11564
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TrustedKeyGroupDoesNotExist AWS API Documentation
10892
11565
  #
10893
- class TrustedSignerDoesNotExist < Struct.new(
11566
+ class TrustedKeyGroupDoesNotExist < Struct.new(
10894
11567
  :message)
10895
11568
  SENSITIVE = []
10896
11569
  include Aws::Structure
10897
11570
  end
10898
11571
 
10899
- # A complex type that specifies the AWS accounts, if any, that you want
10900
- # to allow to create signed URLs for private content.
11572
+ # A list of key groups whose public keys CloudFront can use to verify
11573
+ # the signatures of signed URLs and signed cookies.
10901
11574
  #
10902
- # If you want to require signed URLs in requests for objects in the
10903
- # target origin that match the `PathPattern` for this cache behavior,
10904
- # specify `true` for `Enabled`, and specify the applicable values for
10905
- # `Quantity` and `Items`. For more information, see [Serving Private
10906
- # Content through CloudFront][1] in the <i> Amazon CloudFront Developer
10907
- # Guide</i>.
11575
+ # @note When making an API call, you may pass TrustedKeyGroups
11576
+ # data as a hash:
10908
11577
  #
10909
- # If you don't want to require signed URLs in requests for objects that
10910
- # match `PathPattern`, specify `false` for `Enabled` and `0` for
10911
- # `Quantity`. Omit `Items`.
11578
+ # {
11579
+ # enabled: false, # required
11580
+ # quantity: 1, # required
11581
+ # items: ["string"],
11582
+ # }
10912
11583
  #
10913
- # To add, change, or remove one or more trusted signers, change
10914
- # `Enabled` to `true` (if it's currently `false`), change `Quantity` as
10915
- # applicable, and specify all of the trusted signers that you want to
10916
- # include in the updated distribution.
11584
+ # @!attribute [rw] enabled
11585
+ # This field is `true` if any of the key groups in the list have
11586
+ # public keys that CloudFront can use to verify the signatures of
11587
+ # signed URLs and signed cookies. If not, this field is `false`.
11588
+ # @return [Boolean]
10917
11589
  #
10918
- # For more information about updating the distribution configuration,
10919
- # see [DistributionConfig][2] in the *Amazon CloudFront API Reference*.
11590
+ # @!attribute [rw] quantity
11591
+ # The number of key groups in the list.
11592
+ # @return [Integer]
10920
11593
  #
11594
+ # @!attribute [rw] items
11595
+ # A list of key groups identifiers.
11596
+ # @return [Array<String>]
10921
11597
  #
11598
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TrustedKeyGroups AWS API Documentation
10922
11599
  #
10923
- # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
10924
- # [2]: https://docs.aws.amazon.com/cloudfront/latest/APIReference/DistributionConfig.html
11600
+ class TrustedKeyGroups < Struct.new(
11601
+ :enabled,
11602
+ :quantity,
11603
+ :items)
11604
+ SENSITIVE = []
11605
+ include Aws::Structure
11606
+ end
11607
+
11608
+ # One or more of your trusted signers don't exist.
11609
+ #
11610
+ # @!attribute [rw] message
11611
+ # @return [String]
11612
+ #
11613
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TrustedSignerDoesNotExist AWS API Documentation
11614
+ #
11615
+ class TrustedSignerDoesNotExist < Struct.new(
11616
+ :message)
11617
+ SENSITIVE = []
11618
+ include Aws::Structure
11619
+ end
11620
+
11621
+ # A list of AWS accounts whose public keys CloudFront can use to verify
11622
+ # the signatures of signed URLs and signed cookies.
10925
11623
  #
10926
11624
  # @note When making an API call, you may pass TrustedSigners
10927
11625
  # data as a hash:
@@ -10933,17 +11631,17 @@ module Aws::CloudFront
10933
11631
  # }
10934
11632
  #
10935
11633
  # @!attribute [rw] enabled
10936
- # Specifies whether you want to require viewers to use signed URLs to
10937
- # access the files specified by `PathPattern` and `TargetOriginId`.
11634
+ # This field is `true` if any of the AWS accounts have public keys
11635
+ # that CloudFront can use to verify the signatures of signed URLs and
11636
+ # signed cookies. If not, this field is `false`.
10938
11637
  # @return [Boolean]
10939
11638
  #
10940
11639
  # @!attribute [rw] quantity
10941
- # The number of trusted signers for this cache behavior.
11640
+ # The number of AWS accounts in the list.
10942
11641
  # @return [Integer]
10943
11642
  #
10944
11643
  # @!attribute [rw] items
10945
- # **Optional**\: A complex type that contains trusted signers for this
10946
- # cache behavior. If `Quantity` is `0`, you can omit `Items`.
11644
+ # A list of AWS account identifiers.
10947
11645
  # @return [Array<String>]
10948
11646
  #
10949
11647
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TrustedSigners AWS API Documentation
@@ -11170,6 +11868,10 @@ module Aws::CloudFront
11170
11868
  # },
11171
11869
  # connection_attempts: 1,
11172
11870
  # connection_timeout: 1,
11871
+ # origin_shield: {
11872
+ # enabled: false, # required
11873
+ # origin_shield_region: "OriginShieldRegion",
11874
+ # },
11173
11875
  # },
11174
11876
  # ],
11175
11877
  # },
@@ -11197,7 +11899,12 @@ module Aws::CloudFront
11197
11899
  # },
11198
11900
  # default_cache_behavior: { # required
11199
11901
  # target_origin_id: "string", # required
11200
- # trusted_signers: { # required
11902
+ # trusted_signers: {
11903
+ # enabled: false, # required
11904
+ # quantity: 1, # required
11905
+ # items: ["string"],
11906
+ # },
11907
+ # trusted_key_groups: {
11201
11908
  # enabled: false, # required
11202
11909
  # quantity: 1, # required
11203
11910
  # items: ["string"],
@@ -11255,7 +11962,12 @@ module Aws::CloudFront
11255
11962
  # {
11256
11963
  # path_pattern: "string", # required
11257
11964
  # target_origin_id: "string", # required
11258
- # trusted_signers: { # required
11965
+ # trusted_signers: {
11966
+ # enabled: false, # required
11967
+ # quantity: 1, # required
11968
+ # items: ["string"],
11969
+ # },
11970
+ # trusted_key_groups: {
11259
11971
  # enabled: false, # required
11260
11972
  # quantity: 1, # required
11261
11973
  # items: ["string"],
@@ -11540,6 +12252,59 @@ module Aws::CloudFront
11540
12252
  include Aws::Structure
11541
12253
  end
11542
12254
 
12255
+ # @note When making an API call, you may pass UpdateKeyGroupRequest
12256
+ # data as a hash:
12257
+ #
12258
+ # {
12259
+ # key_group_config: { # required
12260
+ # name: "string", # required
12261
+ # items: ["string"], # required
12262
+ # comment: "string",
12263
+ # },
12264
+ # id: "string", # required
12265
+ # if_match: "string",
12266
+ # }
12267
+ #
12268
+ # @!attribute [rw] key_group_config
12269
+ # The key group configuration.
12270
+ # @return [Types::KeyGroupConfig]
12271
+ #
12272
+ # @!attribute [rw] id
12273
+ # The identifier of the key group that you are updating.
12274
+ # @return [String]
12275
+ #
12276
+ # @!attribute [rw] if_match
12277
+ # The version of the key group that you are updating. The version is
12278
+ # the key group’s `ETag` value.
12279
+ # @return [String]
12280
+ #
12281
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateKeyGroupRequest AWS API Documentation
12282
+ #
12283
+ class UpdateKeyGroupRequest < Struct.new(
12284
+ :key_group_config,
12285
+ :id,
12286
+ :if_match)
12287
+ SENSITIVE = []
12288
+ include Aws::Structure
12289
+ end
12290
+
12291
+ # @!attribute [rw] key_group
12292
+ # The key group that was just updated.
12293
+ # @return [Types::KeyGroup]
12294
+ #
12295
+ # @!attribute [rw] etag
12296
+ # The identifier for this version of the key group.
12297
+ # @return [String]
12298
+ #
12299
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateKeyGroupResult AWS API Documentation
12300
+ #
12301
+ class UpdateKeyGroupResult < Struct.new(
12302
+ :key_group,
12303
+ :etag)
12304
+ SENSITIVE = []
12305
+ include Aws::Structure
12306
+ end
12307
+
11543
12308
  # @note When making an API call, you may pass UpdateOriginRequestPolicyRequest
11544
12309
  # data as a hash:
11545
12310
  #
@@ -11632,11 +12397,11 @@ module Aws::CloudFront
11632
12397
  # }
11633
12398
  #
11634
12399
  # @!attribute [rw] public_key_config
11635
- # Request to update public key information.
12400
+ # A public key configuration.
11636
12401
  # @return [Types::PublicKeyConfig]
11637
12402
  #
11638
12403
  # @!attribute [rw] id
11639
- # ID of the public key to be updated.
12404
+ # The identifier of the public key that you are updating.
11640
12405
  # @return [String]
11641
12406
  #
11642
12407
  # @!attribute [rw] if_match
@@ -11655,12 +12420,11 @@ module Aws::CloudFront
11655
12420
  end
11656
12421
 
11657
12422
  # @!attribute [rw] public_key
11658
- # Return the results of updating the public key.
12423
+ # The public key.
11659
12424
  # @return [Types::PublicKey]
11660
12425
  #
11661
12426
  # @!attribute [rw] etag
11662
- # The current version of the update public key result. For example:
11663
- # `E2QWRUHAPOMQZL`.
12427
+ # The identifier of the current version of the public key.
11664
12428
  # @return [String]
11665
12429
  #
11666
12430
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdatePublicKeyResult AWS API Documentation
@@ -11919,7 +12683,7 @@ module Aws::CloudFront
11919
12683
  # certificate.
11920
12684
  #
11921
12685
  # If you specify an IAM certificate ID, you must also specify values
11922
- # for `MinimumProtocolVerison` and `SSLSupportMethod`.
12686
+ # for `MinimumProtocolVersion` and `SSLSupportMethod`.
11923
12687
  #
11924
12688
  #
11925
12689
  #
@@ -11934,7 +12698,7 @@ module Aws::CloudFront
11934
12698
  # East (N. Virginia) Region (`us-east-1`).
11935
12699
  #
11936
12700
  # If you specify an ACM certificate ARN, you must also specify values
11937
- # for `MinimumProtocolVerison` and `SSLSupportMethod`.
12701
+ # for `MinimumProtocolVersion` and `SSLSupportMethod`.
11938
12702
  #
11939
12703
  #
11940
12704
  #