aws-sdk-cloudfront 1.42.0 → 1.47.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
  #