aws-sdk-cloudfront 1.41.0 → 1.46.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.
@@ -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"],
@@ -4215,9 +4395,7 @@ module Aws::CloudFront
4215
4395
  # Class for a CloudFront Distribution][1] in the *Amazon CloudFront
4216
4396
  # Developer Guide*. For information about CloudFront pricing,
4217
4397
  # including how price classes (such as Price Class 100) map to
4218
- # CloudFront regions, see [Amazon CloudFront Pricing][2]. For price
4219
- # class information, scroll down to see the table at the bottom of the
4220
- # page.
4398
+ # CloudFront regions, see [Amazon CloudFront Pricing][2].
4221
4399
  #
4222
4400
  #
4223
4401
  #
@@ -4391,6 +4569,10 @@ module Aws::CloudFront
4391
4569
  # },
4392
4570
  # connection_attempts: 1,
4393
4571
  # connection_timeout: 1,
4572
+ # origin_shield: {
4573
+ # enabled: false, # required
4574
+ # origin_shield_region: "OriginShieldRegion",
4575
+ # },
4394
4576
  # },
4395
4577
  # ],
4396
4578
  # },
@@ -4418,7 +4600,12 @@ module Aws::CloudFront
4418
4600
  # },
4419
4601
  # default_cache_behavior: { # required
4420
4602
  # target_origin_id: "string", # required
4421
- # trusted_signers: { # required
4603
+ # trusted_signers: {
4604
+ # enabled: false, # required
4605
+ # quantity: 1, # required
4606
+ # items: ["string"],
4607
+ # },
4608
+ # trusted_key_groups: {
4422
4609
  # enabled: false, # required
4423
4610
  # quantity: 1, # required
4424
4611
  # items: ["string"],
@@ -4476,7 +4663,12 @@ module Aws::CloudFront
4476
4663
  # {
4477
4664
  # path_pattern: "string", # required
4478
4665
  # target_origin_id: "string", # required
4479
- # trusted_signers: { # required
4666
+ # trusted_signers: {
4667
+ # enabled: false, # required
4668
+ # quantity: 1, # required
4669
+ # items: ["string"],
4670
+ # },
4671
+ # trusted_key_groups: {
4480
4672
  # enabled: false, # required
4481
4673
  # quantity: 1, # required
4482
4674
  # items: ["string"],
@@ -6048,6 +6240,80 @@ module Aws::CloudFront
6048
6240
  include Aws::Structure
6049
6241
  end
6050
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
+
6051
6317
  # @note When making an API call, you may pass GetMonitoringSubscriptionRequest
6052
6318
  # data as a hash:
6053
6319
  #
@@ -6172,7 +6438,8 @@ module Aws::CloudFront
6172
6438
  # }
6173
6439
  #
6174
6440
  # @!attribute [rw] id
6175
- # Request the ID for the public key configuration.
6441
+ # The identifier of the public key whose configuration you are
6442
+ # getting.
6176
6443
  # @return [String]
6177
6444
  #
6178
6445
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKeyConfigRequest AWS API Documentation
@@ -6184,12 +6451,11 @@ module Aws::CloudFront
6184
6451
  end
6185
6452
 
6186
6453
  # @!attribute [rw] public_key_config
6187
- # Return the result for the public key configuration.
6454
+ # A public key configuration.
6188
6455
  # @return [Types::PublicKeyConfig]
6189
6456
  #
6190
6457
  # @!attribute [rw] etag
6191
- # The current version of the public key configuration. For example:
6192
- # `E2QWRUHAPOMQZL`.
6458
+ # The identifier for this version of the public key configuration.
6193
6459
  # @return [String]
6194
6460
  #
6195
6461
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKeyConfigResult AWS API Documentation
@@ -6209,7 +6475,7 @@ module Aws::CloudFront
6209
6475
  # }
6210
6476
  #
6211
6477
  # @!attribute [rw] id
6212
- # Request the ID for the public key.
6478
+ # The identifier of the public key you are getting.
6213
6479
  # @return [String]
6214
6480
  #
6215
6481
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKeyRequest AWS API Documentation
@@ -6221,12 +6487,11 @@ module Aws::CloudFront
6221
6487
  end
6222
6488
 
6223
6489
  # @!attribute [rw] public_key
6224
- # Return the public key.
6490
+ # The public key.
6225
6491
  # @return [Types::PublicKey]
6226
6492
  #
6227
6493
  # @!attribute [rw] etag
6228
- # The current version of the public key. For example:
6229
- # `E2QWRUHAPOMQZL`.
6494
+ # The identifier for this version of the public key.
6230
6495
  # @return [String]
6231
6496
  #
6232
6497
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKeyResult AWS API Documentation
@@ -6913,84 +7178,215 @@ module Aws::CloudFront
6913
7178
  include Aws::Structure
6914
7179
  end
6915
7180
 
6916
- # A complex type that lists the active CloudFront key pairs, if any,
6917
- # 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.
6918
7183
  #
6919
- # 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]
6920
7187
  #
7188
+ # @!attribute [rw] key_pair_ids
7189
+ # A list of CloudFront key pair identifiers.
7190
+ # @return [Types::KeyPairIds]
6921
7191
  #
7192
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KGKeyPairIds AWS API Documentation
6922
7193
  #
6923
- # [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.
6924
7202
  #
6925
- # @!attribute [rw] quantity
6926
- # 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].
6927
7205
  #
6928
- # For more information, see [ActiveTrustedSigners][1].
6929
7206
  #
6930
7207
  #
7208
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
6931
7209
  #
6932
- # [1]: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ActiveTrustedSigners.html
6933
- # @return [Integer]
7210
+ # @!attribute [rw] id
7211
+ # The identifier for the key group.
7212
+ # @return [String]
6934
7213
  #
6935
- # @!attribute [rw] items
6936
- # A complex type that lists the active CloudFront key pairs, if any,
6937
- # 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]
6938
7217
  #
6939
- # For more information, see [ActiveTrustedSigners][1].
7218
+ # @!attribute [rw] key_group_config
7219
+ # The key group configuration.
7220
+ # @return [Types::KeyGroupConfig]
6940
7221
  #
7222
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/KeyGroup AWS API Documentation
6941
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`.
6942
7234
  #
6943
- # [1]: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ActiveTrustedSigners.html
6944
- # @return [Array<String>]
7235
+ # @!attribute [rw] message
7236
+ # @return [String]
6945
7237
  #
6946
- # @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
6947
7239
  #
6948
- class KeyPairIds < Struct.new(
6949
- :quantity,
6950
- :items)
7240
+ class KeyGroupAlreadyExists < Struct.new(
7241
+ :message)
6951
7242
  SENSITIVE = []
6952
7243
  include Aws::Structure
6953
7244
  end
6954
7245
 
6955
- # Contains information about the Amazon Kinesis data stream where you
6956
- # are sending real-time log data.
7246
+ # A key group configuration.
6957
7247
  #
6958
- # @note When making an API call, you may pass KinesisStreamConfig
6959
- # 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].
6960
7250
  #
6961
- # {
6962
- # role_arn: "string", # required
6963
- # stream_arn: "string", # required
6964
- # }
6965
7251
  #
6966
- # @!attribute [rw] role_arn
6967
- # The Amazon Resource Name (ARN) of an AWS Identity and Access
6968
- # Management (IAM) role that CloudFront can use to send real-time log
6969
- # data to your Kinesis data stream.
6970
7252
  #
6971
- # For more information the IAM role, see [Real-time log configuration
6972
- # IAM role][1] in the *Amazon CloudFront Developer Guide*.
7253
+ # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
6973
7254
  #
7255
+ # @note When making an API call, you may pass KeyGroupConfig
7256
+ # data as a hash:
6974
7257
  #
7258
+ # {
7259
+ # name: "string", # required
7260
+ # items: ["string"], # required
7261
+ # comment: "string",
7262
+ # }
6975
7263
  #
6976
- # [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.
6977
7266
  # @return [String]
6978
7267
  #
6979
- # @!attribute [rw] stream_arn
6980
- # The Amazon Resource Name (ARN) of the Kinesis data stream where you
6981
- # 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.
6982
7274
  # @return [String]
6983
7275
  #
6984
- # @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
6985
7277
  #
6986
- class KinesisStreamConfig < Struct.new(
6987
- :role_arn,
6988
- :stream_arn)
7278
+ class KeyGroupConfig < Struct.new(
7279
+ :name,
7280
+ :items,
7281
+ :comment)
6989
7282
  SENSITIVE = []
6990
7283
  include Aws::Structure
6991
7284
  end
6992
7285
 
6993
- # 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.
6994
7390
  #
6995
7391
  # @note When making an API call, you may pass LambdaFunctionAssociation
6996
7392
  # data as a hash:
@@ -7247,6 +7643,55 @@ module Aws::CloudFront
7247
7643
  include Aws::Structure
7248
7644
  end
7249
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
+
7250
7695
  # @note When making an API call, you may pass ListDistributionsByOriginRequestPolicyIdRequest
7251
7696
  # data as a hash:
7252
7697
  #
@@ -7598,6 +8043,47 @@ module Aws::CloudFront
7598
8043
  include Aws::Structure
7599
8044
  end
7600
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
+
7601
8087
  # @note When making an API call, you may pass ListOriginRequestPoliciesRequest
7602
8088
  # data as a hash:
7603
8089
  #
@@ -8070,17 +8556,17 @@ module Aws::CloudFront
8070
8556
  # An origin is the location where content is stored, and from which
8071
8557
  # CloudFront gets content to serve to viewers. To specify an origin:
8072
8558
  #
8073
- # * Use the `S3OriginConfig` type to specify an Amazon S3 bucket that is
8074
- # <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.
8075
8561
  #
8076
- # * Use the `CustomOriginConfig` type to specify various other kinds of
8077
- # content containers or HTTP servers, including:
8562
+ # * Use `CustomOriginConfig` to specify all other kinds of origins,
8563
+ # including:
8078
8564
  #
8079
8565
  # * An Amazon S3 bucket that is configured with static website hosting
8080
8566
  #
8081
8567
  # * An Elastic Load Balancing load balancer
8082
8568
  #
8083
- # * An AWS Elemental MediaPackage origin
8569
+ # * An AWS Elemental MediaPackage endpoint
8084
8570
  #
8085
8571
  # * An AWS Elemental MediaStore container
8086
8572
  #
@@ -8128,6 +8614,10 @@ module Aws::CloudFront
8128
8614
  # },
8129
8615
  # connection_attempts: 1,
8130
8616
  # connection_timeout: 1,
8617
+ # origin_shield: {
8618
+ # enabled: false, # required
8619
+ # origin_shield_region: "OriginShieldRegion",
8620
+ # },
8131
8621
  # }
8132
8622
  #
8133
8623
  # @!attribute [rw] id
@@ -8162,8 +8652,8 @@ module Aws::CloudFront
8162
8652
  # @return [String]
8163
8653
  #
8164
8654
  # @!attribute [rw] custom_headers
8165
- # A list of HTTP header names and values that CloudFront adds to
8166
- # 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.
8167
8657
  #
8168
8658
  # For more information, see [Adding Custom Headers to Origin
8169
8659
  # Requests][1] in the *Amazon CloudFront Developer Guide*.
@@ -8175,18 +8665,18 @@ module Aws::CloudFront
8175
8665
  #
8176
8666
  # @!attribute [rw] s3_origin_config
8177
8667
  # Use this type to specify an origin that is an Amazon S3 bucket that
8178
- # is <i> <b>not</b> </i> configured with static website hosting. To
8179
- # specify any other type of origin, including an Amazon S3 bucket that
8180
- # is configured with static website hosting, use the
8181
- # `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.
8182
8672
  # @return [Types::S3OriginConfig]
8183
8673
  #
8184
8674
  # @!attribute [rw] custom_origin_config
8185
- # Use this type to specify an origin that is a content container or
8186
- # HTTP server, including an Amazon S3 bucket that is configured with
8187
- # static website hosting. To specify an Amazon S3 bucket that is <i>
8188
- # <b>not</b> </i> configured with static website hosting, use the
8189
- # `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.
8190
8680
  # @return [Types::CustomOriginConfig]
8191
8681
  #
8192
8682
  # @!attribute [rw] connection_attempts
@@ -8222,6 +8712,18 @@ module Aws::CloudFront
8222
8712
  # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-timeout
8223
8713
  # @return [Integer]
8224
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
+ #
8225
8727
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/Origin AWS API Documentation
8226
8728
  #
8227
8729
  class Origin < Struct.new(
@@ -8232,7 +8734,8 @@ module Aws::CloudFront
8232
8734
  :s3_origin_config,
8233
8735
  :custom_origin_config,
8234
8736
  :connection_attempts,
8235
- :connection_timeout)
8737
+ :connection_timeout,
8738
+ :origin_shield)
8236
8739
  SENSITIVE = []
8237
8740
  include Aws::Structure
8238
8741
  end
@@ -8801,6 +9304,60 @@ module Aws::CloudFront
8801
9304
  include Aws::Structure
8802
9305
  end
8803
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
+
8804
9361
  # A complex type that contains information about the SSL/TLS protocols
8805
9362
  # that CloudFront can use when establishing an HTTPS connection with
8806
9363
  # your origin.
@@ -8832,8 +9389,7 @@ module Aws::CloudFront
8832
9389
  include Aws::Structure
8833
9390
  end
8834
9391
 
8835
- # A complex type that contains information about origins and origin
8836
- # groups for this distribution.
9392
+ # Contains information about the origins for this distribution.
8837
9393
  #
8838
9394
  # @note When making an API call, you may pass Origins
8839
9395
  # data as a hash:
@@ -8870,17 +9426,20 @@ module Aws::CloudFront
8870
9426
  # },
8871
9427
  # connection_attempts: 1,
8872
9428
  # connection_timeout: 1,
9429
+ # origin_shield: {
9430
+ # enabled: false, # required
9431
+ # origin_shield_region: "OriginShieldRegion",
9432
+ # },
8873
9433
  # },
8874
9434
  # ],
8875
9435
  # }
8876
9436
  #
8877
9437
  # @!attribute [rw] quantity
8878
- # The number of origins or origin groups for this distribution.
9438
+ # The number of origins for this distribution.
8879
9439
  # @return [Integer]
8880
9440
  #
8881
9441
  # @!attribute [rw] items
8882
- # A complex type that contains origins or origin groups for this
8883
- # distribution.
9442
+ # A list of origins.
8884
9443
  # @return [Array<Types::Origin>]
8885
9444
  #
8886
9445
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/Origins AWS API Documentation
@@ -8947,14 +9506,18 @@ module Aws::CloudFront
8947
9506
  #
8948
9507
  # * Includes the normalized header in the cache key
8949
9508
  #
8950
- # * Includes the normalized header in the request to the origin
9509
+ # * Includes the normalized header in the request to the origin, if a
9510
+ # request is necessary
8951
9511
  #
8952
- # If one or both of these fields are `true`, you should not whitelist
8953
- # the `Accept-Encoding` header in the cache policy or in an origin
8954
- # request policy attached to the same cache behavior.
9512
+ # For more information, see [Compression support][1] in the *Amazon
9513
+ # CloudFront Developer Guide*.
8955
9514
  #
8956
- # For more information, see [Cache compressed objects][1] in the
8957
- # *Amazon CloudFront Developer Guide*.
9515
+ # If you set this value to `true`, and this cache behavior also has an
9516
+ # origin request policy attached, do not include the `Accept-Encoding`
9517
+ # header in the origin request policy. CloudFront always includes the
9518
+ # `Accept-Encoding` header in origin requests when the value of this
9519
+ # field is `true`, so including this header in an origin request
9520
+ # policy has no effect.
8958
9521
  #
8959
9522
  # If both of these fields are `false`, then CloudFront treats the
8960
9523
  # `Accept-Encoding` header the same as any other HTTP header in the
@@ -8982,14 +9545,18 @@ module Aws::CloudFront
8982
9545
  #
8983
9546
  # * Includes the normalized header in the cache key
8984
9547
  #
8985
- # * Includes the normalized header in the request to the origin
9548
+ # * Includes the normalized header in the request to the origin, if a
9549
+ # request is necessary
8986
9550
  #
8987
- # If one or both of these fields are `true`, you should not whitelist
8988
- # the `Accept-Encoding` header in the cache policy or in an origin
8989
- # request policy attached to the same cache behavior.
9551
+ # For more information, see [Compression support][1] in the *Amazon
9552
+ # CloudFront Developer Guide*.
8990
9553
  #
8991
- # For more information, see [Cache compressed objects][1] in the
8992
- # *Amazon CloudFront Developer Guide*.
9554
+ # If you set this value to `true`, and this cache behavior also has an
9555
+ # origin request policy attached, do not include the `Accept-Encoding`
9556
+ # header in the origin request policy. CloudFront always includes the
9557
+ # `Accept-Encoding` header in origin requests when the value of this
9558
+ # field is `true`, so including this header in an origin request
9559
+ # policy has no effect.
8993
9560
  #
8994
9561
  # If both of these fields are `false`, then CloudFront treats the
8995
9562
  # `Accept-Encoding` header the same as any other HTTP header in the
@@ -9084,20 +9651,31 @@ module Aws::CloudFront
9084
9651
  include Aws::Structure
9085
9652
  end
9086
9653
 
9087
- # A complex data type of public keys you add to CloudFront to use with
9088
- # 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
9089
9661
  #
9090
9662
  # @!attribute [rw] id
9091
- # A unique ID assigned to a public key you've added to CloudFront.
9663
+ # The identifier of the public key.
9092
9664
  # @return [String]
9093
9665
  #
9094
9666
  # @!attribute [rw] created_time
9095
- # A time you added a public key to CloudFront.
9667
+ # The date and time when the public key was uploaded.
9096
9668
  # @return [Time]
9097
9669
  #
9098
9670
  # @!attribute [rw] public_key_config
9099
- # A complex data type for a public key you add to CloudFront to use
9100
- # 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
9101
9679
  # @return [Types::PublicKeyConfig]
9102
9680
  #
9103
9681
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/PublicKey AWS API Documentation
@@ -9123,8 +9701,14 @@ module Aws::CloudFront
9123
9701
  include Aws::Structure
9124
9702
  end
9125
9703
 
9126
- # Information about a public key you add to CloudFront to use with
9127
- # 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
9128
9712
  #
9129
9713
  # @note When making an API call, you may pass PublicKeyConfig
9130
9714
  # data as a hash:
@@ -9137,21 +9721,26 @@ module Aws::CloudFront
9137
9721
  # }
9138
9722
  #
9139
9723
  # @!attribute [rw] caller_reference
9140
- # 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.
9141
9726
  # @return [String]
9142
9727
  #
9143
9728
  # @!attribute [rw] name
9144
- # The name for a public key you add to CloudFront to use with features
9145
- # like field-level encryption.
9729
+ # A name to help identify the public key.
9146
9730
  # @return [String]
9147
9731
  #
9148
9732
  # @!attribute [rw] encoded_key
9149
- # The encoded public key that you want to add to CloudFront to use
9150
- # 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
9151
9740
  # @return [String]
9152
9741
  #
9153
9742
  # @!attribute [rw] comment
9154
- # An optional comment about a public key.
9743
+ # A comment to describe the public key.
9155
9744
  # @return [String]
9156
9745
  #
9157
9746
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/PublicKeyConfig AWS API Documentation
@@ -9178,8 +9767,13 @@ module Aws::CloudFront
9178
9767
  include Aws::Structure
9179
9768
  end
9180
9769
 
9181
- # A list of public keys you've added to CloudFront to use with features
9182
- # 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
9183
9777
  #
9184
9778
  # @!attribute [rw] next_marker
9185
9779
  # If there are more elements to be listed, this element is present and
@@ -9188,17 +9782,15 @@ module Aws::CloudFront
9188
9782
  # @return [String]
9189
9783
  #
9190
9784
  # @!attribute [rw] max_items
9191
- # The maximum number of public keys you want in the response body.
9785
+ # The maximum number of public keys you want in the response.
9192
9786
  # @return [Integer]
9193
9787
  #
9194
9788
  # @!attribute [rw] quantity
9195
- # The number of public keys you added to CloudFront to use with
9196
- # features like field-level encryption.
9789
+ # The number of public keys in the list.
9197
9790
  # @return [Integer]
9198
9791
  #
9199
9792
  # @!attribute [rw] items
9200
- # An array of information about a public key you add to CloudFront to
9201
- # use with features like field-level encryption.
9793
+ # A list of public keys.
9202
9794
  # @return [Array<Types::PublicKeySummary>]
9203
9795
  #
9204
9796
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/PublicKeyList AWS API Documentation
@@ -9212,26 +9804,26 @@ module Aws::CloudFront
9212
9804
  include Aws::Structure
9213
9805
  end
9214
9806
 
9215
- # A complex data type for public key information.
9807
+ # Contains information about a public key.
9216
9808
  #
9217
9809
  # @!attribute [rw] id
9218
- # ID for public key information summary.
9810
+ # The identifier of the public key.
9219
9811
  # @return [String]
9220
9812
  #
9221
9813
  # @!attribute [rw] name
9222
- # Name for public key information summary.
9814
+ # A name to help identify the public key.
9223
9815
  # @return [String]
9224
9816
  #
9225
9817
  # @!attribute [rw] created_time
9226
- # Creation time for public key information summary.
9818
+ # The date and time when the public key was uploaded.
9227
9819
  # @return [Time]
9228
9820
  #
9229
9821
  # @!attribute [rw] encoded_key
9230
- # Encoded key for public key information summary.
9822
+ # The public key.
9231
9823
  # @return [String]
9232
9824
  #
9233
9825
  # @!attribute [rw] comment
9234
- # Comment for public key information summary.
9826
+ # A comment to describe the public key.
9235
9827
  # @return [String]
9236
9828
  #
9237
9829
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/PublicKeySummary AWS API Documentation
@@ -9568,6 +10160,19 @@ module Aws::CloudFront
9568
10160
  include Aws::Structure
9569
10161
  end
9570
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
+
9571
10176
  # A complex type that identifies ways in which you want to restrict
9572
10177
  # distribution of your content.
9573
10178
  #
@@ -9698,22 +10303,20 @@ module Aws::CloudFront
9698
10303
  include Aws::Structure
9699
10304
  end
9700
10305
 
9701
- # A complex type that lists the AWS accounts that were included in the
9702
- # `TrustedSigners` complex type, as well as their active CloudFront key
9703
- # 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.
9704
10309
  #
9705
10310
  # @!attribute [rw] aws_account_number
9706
- # An AWS account that is included in the `TrustedSigners` complex type
9707
- # for this distribution. Valid values include:
9708
- #
9709
- # * `self`, which is the AWS account used to create the distribution.
9710
- #
9711
- # * 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`.
9712
10316
  # @return [String]
9713
10317
  #
9714
10318
  # @!attribute [rw] key_pair_ids
9715
- # A complex type that lists the active CloudFront key pairs, if any,
9716
- # that are associated with `AwsAccountNumber`.
10319
+ # A list of CloudFront key pair identifiers.
9717
10320
  # @return [Types::KeyPairIds]
9718
10321
  #
9719
10322
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/Signer AWS API Documentation
@@ -10482,6 +11085,25 @@ module Aws::CloudFront
10482
11085
  include Aws::Structure
10483
11086
  end
10484
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
+
10485
11107
  # The maximum number of distributions have been associated with the
10486
11108
  # specified origin request policy. For more information, see [Quotas][1]
10487
11109
  # (formerly known as limits) in the *Amazon CloudFront Developer Guide*.
@@ -10679,6 +11301,44 @@ module Aws::CloudFront
10679
11301
  include Aws::Structure
10680
11302
  end
10681
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
+
10682
11342
  # Your request contains more Lambda function associations than are
10683
11343
  # allowed per distribution.
10684
11344
  #
@@ -10766,6 +11426,25 @@ module Aws::CloudFront
10766
11426
  include Aws::Structure
10767
11427
  end
10768
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
+
10769
11448
  # Your request contains too many query string parameters.
10770
11449
  #
10771
11450
  # @!attribute [rw] message
@@ -10877,45 +11556,70 @@ module Aws::CloudFront
10877
11556
  include Aws::Structure
10878
11557
  end
10879
11558
 
10880
- # One or more of your trusted signers don't exist.
11559
+ # The specified key group does not exist.
10881
11560
  #
10882
11561
  # @!attribute [rw] message
10883
11562
  # @return [String]
10884
11563
  #
10885
- # @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
10886
11565
  #
10887
- class TrustedSignerDoesNotExist < Struct.new(
11566
+ class TrustedKeyGroupDoesNotExist < Struct.new(
10888
11567
  :message)
10889
11568
  SENSITIVE = []
10890
11569
  include Aws::Structure
10891
11570
  end
10892
11571
 
10893
- # A complex type that specifies the AWS accounts, if any, that you want
10894
- # 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.
10895
11574
  #
10896
- # If you want to require signed URLs in requests for objects in the
10897
- # target origin that match the `PathPattern` for this cache behavior,
10898
- # specify `true` for `Enabled`, and specify the applicable values for
10899
- # `Quantity` and `Items`. For more information, see [Serving Private
10900
- # Content through CloudFront][1] in the <i> Amazon CloudFront Developer
10901
- # Guide</i>.
11575
+ # @note When making an API call, you may pass TrustedKeyGroups
11576
+ # data as a hash:
10902
11577
  #
10903
- # If you don't want to require signed URLs in requests for objects that
10904
- # match `PathPattern`, specify `false` for `Enabled` and `0` for
10905
- # `Quantity`. Omit `Items`.
11578
+ # {
11579
+ # enabled: false, # required
11580
+ # quantity: 1, # required
11581
+ # items: ["string"],
11582
+ # }
10906
11583
  #
10907
- # To add, change, or remove one or more trusted signers, change
10908
- # `Enabled` to `true` (if it's currently `false`), change `Quantity` as
10909
- # applicable, and specify all of the trusted signers that you want to
10910
- # 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]
10911
11589
  #
10912
- # For more information about updating the distribution configuration,
10913
- # 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]
10914
11593
  #
11594
+ # @!attribute [rw] items
11595
+ # A list of key groups identifiers.
11596
+ # @return [Array<String>]
10915
11597
  #
11598
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TrustedKeyGroups AWS API Documentation
10916
11599
  #
10917
- # [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
10918
- # [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.
10919
11623
  #
10920
11624
  # @note When making an API call, you may pass TrustedSigners
10921
11625
  # data as a hash:
@@ -10927,17 +11631,17 @@ module Aws::CloudFront
10927
11631
  # }
10928
11632
  #
10929
11633
  # @!attribute [rw] enabled
10930
- # Specifies whether you want to require viewers to use signed URLs to
10931
- # 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`.
10932
11637
  # @return [Boolean]
10933
11638
  #
10934
11639
  # @!attribute [rw] quantity
10935
- # The number of trusted signers for this cache behavior.
11640
+ # The number of AWS accounts in the list.
10936
11641
  # @return [Integer]
10937
11642
  #
10938
11643
  # @!attribute [rw] items
10939
- # **Optional**\: A complex type that contains trusted signers for this
10940
- # cache behavior. If `Quantity` is `0`, you can omit `Items`.
11644
+ # A list of AWS account identifiers.
10941
11645
  # @return [Array<String>]
10942
11646
  #
10943
11647
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TrustedSigners AWS API Documentation
@@ -11164,6 +11868,10 @@ module Aws::CloudFront
11164
11868
  # },
11165
11869
  # connection_attempts: 1,
11166
11870
  # connection_timeout: 1,
11871
+ # origin_shield: {
11872
+ # enabled: false, # required
11873
+ # origin_shield_region: "OriginShieldRegion",
11874
+ # },
11167
11875
  # },
11168
11876
  # ],
11169
11877
  # },
@@ -11191,7 +11899,12 @@ module Aws::CloudFront
11191
11899
  # },
11192
11900
  # default_cache_behavior: { # required
11193
11901
  # target_origin_id: "string", # required
11194
- # trusted_signers: { # required
11902
+ # trusted_signers: {
11903
+ # enabled: false, # required
11904
+ # quantity: 1, # required
11905
+ # items: ["string"],
11906
+ # },
11907
+ # trusted_key_groups: {
11195
11908
  # enabled: false, # required
11196
11909
  # quantity: 1, # required
11197
11910
  # items: ["string"],
@@ -11249,7 +11962,12 @@ module Aws::CloudFront
11249
11962
  # {
11250
11963
  # path_pattern: "string", # required
11251
11964
  # target_origin_id: "string", # required
11252
- # trusted_signers: { # required
11965
+ # trusted_signers: {
11966
+ # enabled: false, # required
11967
+ # quantity: 1, # required
11968
+ # items: ["string"],
11969
+ # },
11970
+ # trusted_key_groups: {
11253
11971
  # enabled: false, # required
11254
11972
  # quantity: 1, # required
11255
11973
  # items: ["string"],
@@ -11534,6 +12252,59 @@ module Aws::CloudFront
11534
12252
  include Aws::Structure
11535
12253
  end
11536
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
+
11537
12308
  # @note When making an API call, you may pass UpdateOriginRequestPolicyRequest
11538
12309
  # data as a hash:
11539
12310
  #
@@ -11626,11 +12397,11 @@ module Aws::CloudFront
11626
12397
  # }
11627
12398
  #
11628
12399
  # @!attribute [rw] public_key_config
11629
- # Request to update public key information.
12400
+ # A public key configuration.
11630
12401
  # @return [Types::PublicKeyConfig]
11631
12402
  #
11632
12403
  # @!attribute [rw] id
11633
- # ID of the public key to be updated.
12404
+ # The identifier of the public key that you are updating.
11634
12405
  # @return [String]
11635
12406
  #
11636
12407
  # @!attribute [rw] if_match
@@ -11649,12 +12420,11 @@ module Aws::CloudFront
11649
12420
  end
11650
12421
 
11651
12422
  # @!attribute [rw] public_key
11652
- # Return the results of updating the public key.
12423
+ # The public key.
11653
12424
  # @return [Types::PublicKey]
11654
12425
  #
11655
12426
  # @!attribute [rw] etag
11656
- # The current version of the update public key result. For example:
11657
- # `E2QWRUHAPOMQZL`.
12427
+ # The identifier of the current version of the public key.
11658
12428
  # @return [String]
11659
12429
  #
11660
12430
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdatePublicKeyResult AWS API Documentation