aws-sdk-cloudfront 1.0.0.rc1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6d0a8349e88adaa1ccfc9fff813ad99855ed75a3
4
+ data.tar.gz: a42412c191872c2542f596a4b22ca8282c639380
5
+ SHA512:
6
+ metadata.gz: d7d9e6f85a45f1f14d44173250fadd66df0a0c7352e1aafd3efe0d07d3f16f06ef4f317c077be8c0c92ce00b1d10ace1ac8c5a3328a6202be7fc03f607a1082b
7
+ data.tar.gz: 99426485a34e97d64e22a762b8f9091b62d87b64712dc1eb5a3100bc16b0099808001bbdff2586df07a45ad9e8670914360cd67d593cdc66bde62de20dde7da9
@@ -0,0 +1,48 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'aws-sdk-core'
9
+ require 'aws-sigv4'
10
+
11
+ require_relative 'aws-sdk-cloudfront/types'
12
+ require_relative 'aws-sdk-cloudfront/client_api'
13
+ require_relative 'aws-sdk-cloudfront/client'
14
+ require_relative 'aws-sdk-cloudfront/errors'
15
+ require_relative 'aws-sdk-cloudfront/waiters'
16
+ require_relative 'aws-sdk-cloudfront/resource'
17
+ require_relative 'aws-sdk-cloudfront/customizations'
18
+
19
+ # This module provides support for Amazon CloudFront. This module is available in the
20
+ # `aws-sdk-cloudfront` gem.
21
+ #
22
+ # # Client
23
+ #
24
+ # The {Client} class provides one method for each API operation. Operation
25
+ # methods each accept a hash of request parameters and return a response
26
+ # structure.
27
+ #
28
+ # See {Client} for more information.
29
+ #
30
+ # # Errors
31
+ #
32
+ # Errors returned from Amazon CloudFront all
33
+ # extend {Errors::ServiceError}.
34
+ #
35
+ # begin
36
+ # # do stuff
37
+ # rescue Aws::CloudFront::Errors::ServiceError
38
+ # # rescues all service API errors
39
+ # end
40
+ #
41
+ # See {Errors} for more information.
42
+ #
43
+ # @service
44
+ module Aws::CloudFront
45
+
46
+ GEM_VERSION = '1.0.0.rc1'
47
+
48
+ end
@@ -0,0 +1,2638 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/response_paging.rb'
19
+ require 'aws-sdk-core/plugins/stub_responses.rb'
20
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
21
+ require 'aws-sdk-core/plugins/signature_v4.rb'
22
+ require 'aws-sdk-core/plugins/protocols/rest_xml.rb'
23
+
24
+ Aws::Plugins::GlobalConfiguration.add_identifier(:cloudfront)
25
+
26
+ module Aws
27
+ module CloudFront
28
+ class Client < Seahorse::Client::Base
29
+
30
+ include Aws::ClientStubs
31
+
32
+ @identifier = :cloudfront
33
+
34
+ set_api(ClientApi::API)
35
+
36
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
37
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
38
+ add_plugin(Aws::Plugins::Logging)
39
+ add_plugin(Aws::Plugins::ParamConverter)
40
+ add_plugin(Aws::Plugins::ParamValidator)
41
+ add_plugin(Aws::Plugins::UserAgent)
42
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
43
+ add_plugin(Aws::Plugins::RetryErrors)
44
+ add_plugin(Aws::Plugins::GlobalConfiguration)
45
+ add_plugin(Aws::Plugins::RegionalEndpoint)
46
+ add_plugin(Aws::Plugins::ResponsePaging)
47
+ add_plugin(Aws::Plugins::StubResponses)
48
+ add_plugin(Aws::Plugins::IdempotencyToken)
49
+ add_plugin(Aws::Plugins::SignatureV4)
50
+ add_plugin(Aws::Plugins::Protocols::RestXml)
51
+
52
+ # @option options [required, Aws::CredentialProvider] :credentials
53
+ # Your AWS credentials. This can be an instance of any one of the
54
+ # following classes:
55
+ #
56
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
57
+ # credentials.
58
+ #
59
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
60
+ # from an EC2 IMDS on an EC2 instance.
61
+ #
62
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
63
+ # shared file, such as `~/.aws/config`.
64
+ #
65
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
66
+ #
67
+ # When `:credentials` are not configured directly, the following
68
+ # locations will be searched for credentials:
69
+ #
70
+ # * `Aws.config[:credentials]`
71
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
72
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
73
+ # * `~/.aws/credentials`
74
+ # * `~/.aws/config`
75
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
76
+ # very aggressive. Construct and pass an instance of
77
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
78
+ # timeouts.
79
+ # @option options [required, String] :region
80
+ # The AWS region to connect to. The configured `:region` is
81
+ # used to determine the service `:endpoint`. When not passed,
82
+ # a default `:region` is search for in the following locations:
83
+ #
84
+ # * `Aws.config[:region]`
85
+ # * `ENV['AWS_REGION']`
86
+ # * `ENV['AMAZON_REGION']`
87
+ # * `ENV['AWS_DEFAULT_REGION']`
88
+ # * `~/.aws/credentials`
89
+ # * `~/.aws/config`
90
+ # @option options [String] :access_key_id
91
+ # @option options [Boolean] :convert_params (true)
92
+ # When `true`, an attempt is made to coerce request parameters into
93
+ # the required types.
94
+ # @option options [String] :endpoint
95
+ # The client endpoint is normally constructed from the `:region`
96
+ # option. You should only configure an `:endpoint` when connecting
97
+ # to test endpoints. This should be avalid HTTP(S) URI.
98
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
99
+ # The log formatter.
100
+ # @option options [Symbol] :log_level (:info)
101
+ # The log level to send messages to the `:logger` at.
102
+ # @option options [Logger] :logger
103
+ # The Logger instance to send log messages to. If this option
104
+ # is not set, logging will be disabled.
105
+ # @option options [String] :profile ("default")
106
+ # Used when loading credentials from the shared credentials file
107
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
108
+ # @option options [Integer] :retry_limit (3)
109
+ # The maximum number of times to retry failed requests. Only
110
+ # ~ 500 level server errors and certain ~ 400 level client errors
111
+ # are retried. Generally, these are throttling errors, data
112
+ # checksum errors, networking errors, timeout errors and auth
113
+ # errors from expired credentials.
114
+ # @option options [String] :secret_access_key
115
+ # @option options [String] :session_token
116
+ # @option options [Boolean] :stub_responses (false)
117
+ # Causes the client to return stubbed responses. By default
118
+ # fake responses are generated and returned. You can specify
119
+ # the response data to return or errors to raise by calling
120
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
121
+ #
122
+ # ** Please note ** When response stubbing is enabled, no HTTP
123
+ # requests are made, and retries are disabled.
124
+ # @option options [Boolean] :validate_params (true)
125
+ # When `true`, request parameters are validated before
126
+ # sending the request.
127
+ def initialize(*args)
128
+ super
129
+ end
130
+
131
+ # @!group API Operations
132
+
133
+ # Creates a new origin access identity. If you're using Amazon S3 for
134
+ # your origin, you can use an origin access identity to require users to
135
+ # access your content using a CloudFront URL instead of the Amazon S3
136
+ # URL. For more information about how to use origin access identities,
137
+ # see [Serving Private Content through CloudFront][1] in the *Amazon
138
+ # CloudFront Developer Guide*.
139
+ #
140
+ #
141
+ #
142
+ # [1]: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
143
+ # @option params [required, Types::CloudFrontOriginAccessIdentityConfig] :cloud_front_origin_access_identity_config
144
+ # The current configuration information for the identity.
145
+ # @return [Types::CreateCloudFrontOriginAccessIdentityResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
146
+ #
147
+ # * {Types::CreateCloudFrontOriginAccessIdentityResult#cloud_front_origin_access_identity #CloudFrontOriginAccessIdentity} => Types::CloudFrontOriginAccessIdentity
148
+ # * {Types::CreateCloudFrontOriginAccessIdentityResult#location #Location} => String
149
+ # * {Types::CreateCloudFrontOriginAccessIdentityResult#etag #ETag} => String
150
+ #
151
+ # @example Request syntax with placeholder values
152
+ # resp = client.create_cloud_front_origin_access_identity({
153
+ # cloud_front_origin_access_identity_config: { # required
154
+ # caller_reference: "string", # required
155
+ # comment: "string", # required
156
+ # },
157
+ # })
158
+ #
159
+ # @example Response structure
160
+ # resp.cloud_front_origin_access_identity.id #=> String
161
+ # resp.cloud_front_origin_access_identity.s3_canonical_user_id #=> String
162
+ # resp.cloud_front_origin_access_identity.cloud_front_origin_access_identity_config.caller_reference #=> String
163
+ # resp.cloud_front_origin_access_identity.cloud_front_origin_access_identity_config.comment #=> String
164
+ # resp.location #=> String
165
+ # resp.etag #=> String
166
+ # @overload create_cloud_front_origin_access_identity(params = {})
167
+ # @param [Hash] params ({})
168
+ def create_cloud_front_origin_access_identity(params = {}, options = {})
169
+ req = build_request(:create_cloud_front_origin_access_identity, params)
170
+ req.send_request(options)
171
+ end
172
+
173
+ # Creates a new web distribution. Send a `GET` request to the
174
+ # `/CloudFront API version/distribution`/`distribution ID` resource.
175
+ # @option params [required, Types::DistributionConfig] :distribution_config
176
+ # The distribution's configuration information.
177
+ # @return [Types::CreateDistributionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
178
+ #
179
+ # * {Types::CreateDistributionResult#distribution #Distribution} => Types::Distribution
180
+ # * {Types::CreateDistributionResult#location #Location} => String
181
+ # * {Types::CreateDistributionResult#etag #ETag} => String
182
+ #
183
+ # @example Request syntax with placeholder values
184
+ # resp = client.create_distribution({
185
+ # distribution_config: { # required
186
+ # caller_reference: "string", # required
187
+ # aliases: {
188
+ # quantity: 1, # required
189
+ # items: ["string"],
190
+ # },
191
+ # default_root_object: "string",
192
+ # origins: { # required
193
+ # quantity: 1, # required
194
+ # items: [
195
+ # {
196
+ # id: "string", # required
197
+ # domain_name: "string", # required
198
+ # origin_path: "string",
199
+ # custom_headers: {
200
+ # quantity: 1, # required
201
+ # items: [
202
+ # {
203
+ # header_name: "string", # required
204
+ # header_value: "string", # required
205
+ # },
206
+ # ],
207
+ # },
208
+ # s3_origin_config: {
209
+ # origin_access_identity: "string", # required
210
+ # },
211
+ # custom_origin_config: {
212
+ # http_port: 1, # required
213
+ # https_port: 1, # required
214
+ # origin_protocol_policy: "http-only", # required, accepts http-only, match-viewer, https-only
215
+ # origin_ssl_protocols: {
216
+ # quantity: 1, # required
217
+ # items: ["SSLv3"], # required, accepts SSLv3, TLSv1, TLSv1.1, TLSv1.2
218
+ # },
219
+ # },
220
+ # },
221
+ # ],
222
+ # },
223
+ # default_cache_behavior: { # required
224
+ # target_origin_id: "string", # required
225
+ # forwarded_values: { # required
226
+ # query_string: false, # required
227
+ # cookies: { # required
228
+ # forward: "none", # required, accepts none, whitelist, all
229
+ # whitelisted_names: {
230
+ # quantity: 1, # required
231
+ # items: ["string"],
232
+ # },
233
+ # },
234
+ # headers: {
235
+ # quantity: 1, # required
236
+ # items: ["string"],
237
+ # },
238
+ # query_string_cache_keys: {
239
+ # quantity: 1, # required
240
+ # items: ["string"],
241
+ # },
242
+ # },
243
+ # trusted_signers: { # required
244
+ # enabled: false, # required
245
+ # quantity: 1, # required
246
+ # items: ["string"],
247
+ # },
248
+ # viewer_protocol_policy: "allow-all", # required, accepts allow-all, https-only, redirect-to-https
249
+ # min_ttl: 1, # required
250
+ # allowed_methods: {
251
+ # quantity: 1, # required
252
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
253
+ # cached_methods: {
254
+ # quantity: 1, # required
255
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
256
+ # },
257
+ # },
258
+ # smooth_streaming: false,
259
+ # default_ttl: 1,
260
+ # max_ttl: 1,
261
+ # compress: false,
262
+ # },
263
+ # cache_behaviors: {
264
+ # quantity: 1, # required
265
+ # items: [
266
+ # {
267
+ # path_pattern: "string", # required
268
+ # target_origin_id: "string", # required
269
+ # forwarded_values: { # required
270
+ # query_string: false, # required
271
+ # cookies: { # required
272
+ # forward: "none", # required, accepts none, whitelist, all
273
+ # whitelisted_names: {
274
+ # quantity: 1, # required
275
+ # items: ["string"],
276
+ # },
277
+ # },
278
+ # headers: {
279
+ # quantity: 1, # required
280
+ # items: ["string"],
281
+ # },
282
+ # query_string_cache_keys: {
283
+ # quantity: 1, # required
284
+ # items: ["string"],
285
+ # },
286
+ # },
287
+ # trusted_signers: { # required
288
+ # enabled: false, # required
289
+ # quantity: 1, # required
290
+ # items: ["string"],
291
+ # },
292
+ # viewer_protocol_policy: "allow-all", # required, accepts allow-all, https-only, redirect-to-https
293
+ # min_ttl: 1, # required
294
+ # allowed_methods: {
295
+ # quantity: 1, # required
296
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
297
+ # cached_methods: {
298
+ # quantity: 1, # required
299
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
300
+ # },
301
+ # },
302
+ # smooth_streaming: false,
303
+ # default_ttl: 1,
304
+ # max_ttl: 1,
305
+ # compress: false,
306
+ # },
307
+ # ],
308
+ # },
309
+ # custom_error_responses: {
310
+ # quantity: 1, # required
311
+ # items: [
312
+ # {
313
+ # error_code: 1, # required
314
+ # response_page_path: "string",
315
+ # response_code: "string",
316
+ # error_caching_min_ttl: 1,
317
+ # },
318
+ # ],
319
+ # },
320
+ # comment: "string", # required
321
+ # logging: {
322
+ # enabled: false, # required
323
+ # include_cookies: false, # required
324
+ # bucket: "string", # required
325
+ # prefix: "string", # required
326
+ # },
327
+ # price_class: "PriceClass_100", # accepts PriceClass_100, PriceClass_200, PriceClass_All
328
+ # enabled: false, # required
329
+ # viewer_certificate: {
330
+ # cloud_front_default_certificate: false,
331
+ # iam_certificate_id: "string",
332
+ # acm_certificate_arn: "string",
333
+ # ssl_support_method: "sni-only", # accepts sni-only, vip
334
+ # minimum_protocol_version: "SSLv3", # accepts SSLv3, TLSv1
335
+ # certificate: "string",
336
+ # certificate_source: "cloudfront", # accepts cloudfront, iam, acm
337
+ # },
338
+ # restrictions: {
339
+ # geo_restriction: { # required
340
+ # restriction_type: "blacklist", # required, accepts blacklist, whitelist, none
341
+ # quantity: 1, # required
342
+ # items: ["string"],
343
+ # },
344
+ # },
345
+ # web_acl_id: "string",
346
+ # http_version: "http1.1", # accepts http1.1, http2
347
+ # is_ipv6_enabled: false,
348
+ # },
349
+ # })
350
+ #
351
+ # @example Response structure
352
+ # resp.distribution.id #=> String
353
+ # resp.distribution.arn #=> String
354
+ # resp.distribution.status #=> String
355
+ # resp.distribution.last_modified_time #=> Time
356
+ # resp.distribution.in_progress_invalidation_batches #=> Integer
357
+ # resp.distribution.domain_name #=> String
358
+ # resp.distribution.active_trusted_signers.enabled #=> Boolean
359
+ # resp.distribution.active_trusted_signers.quantity #=> Integer
360
+ # resp.distribution.active_trusted_signers.items #=> Array
361
+ # resp.distribution.active_trusted_signers.items[0].aws_account_number #=> String
362
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.quantity #=> Integer
363
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.items #=> Array
364
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.items[0] #=> String
365
+ # resp.distribution.distribution_config.caller_reference #=> String
366
+ # resp.distribution.distribution_config.aliases.quantity #=> Integer
367
+ # resp.distribution.distribution_config.aliases.items #=> Array
368
+ # resp.distribution.distribution_config.aliases.items[0] #=> String
369
+ # resp.distribution.distribution_config.default_root_object #=> String
370
+ # resp.distribution.distribution_config.origins.quantity #=> Integer
371
+ # resp.distribution.distribution_config.origins.items #=> Array
372
+ # resp.distribution.distribution_config.origins.items[0].id #=> String
373
+ # resp.distribution.distribution_config.origins.items[0].domain_name #=> String
374
+ # resp.distribution.distribution_config.origins.items[0].origin_path #=> String
375
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.quantity #=> Integer
376
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items #=> Array
377
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items[0].header_name #=> String
378
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items[0].header_value #=> String
379
+ # resp.distribution.distribution_config.origins.items[0].s3_origin_config.origin_access_identity #=> String
380
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.http_port #=> Integer
381
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.https_port #=> Integer
382
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_protocol_policy #=> String, one of "http-only", "match-viewer", "https-only"
383
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.quantity #=> Integer
384
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.items #=> Array
385
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.items[0] #=> String, one of "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2"
386
+ # resp.distribution.distribution_config.default_cache_behavior.target_origin_id #=> String
387
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string #=> Boolean
388
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
389
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.quantity #=> Integer
390
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.items #=> Array
391
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.items[0] #=> String
392
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.quantity #=> Integer
393
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.items #=> Array
394
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.items[0] #=> String
395
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.quantity #=> Integer
396
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.items #=> Array
397
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.items[0] #=> String
398
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.enabled #=> Boolean
399
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.quantity #=> Integer
400
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.items #=> Array
401
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.items[0] #=> String
402
+ # resp.distribution.distribution_config.default_cache_behavior.viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
403
+ # resp.distribution.distribution_config.default_cache_behavior.min_ttl #=> Integer
404
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.quantity #=> Integer
405
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.items #=> Array
406
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
407
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.quantity #=> Integer
408
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.items #=> Array
409
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
410
+ # resp.distribution.distribution_config.default_cache_behavior.smooth_streaming #=> Boolean
411
+ # resp.distribution.distribution_config.default_cache_behavior.default_ttl #=> Integer
412
+ # resp.distribution.distribution_config.default_cache_behavior.max_ttl #=> Integer
413
+ # resp.distribution.distribution_config.default_cache_behavior.compress #=> Boolean
414
+ # resp.distribution.distribution_config.cache_behaviors.quantity #=> Integer
415
+ # resp.distribution.distribution_config.cache_behaviors.items #=> Array
416
+ # resp.distribution.distribution_config.cache_behaviors.items[0].path_pattern #=> String
417
+ # resp.distribution.distribution_config.cache_behaviors.items[0].target_origin_id #=> String
418
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string #=> Boolean
419
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
420
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.quantity #=> Integer
421
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items #=> Array
422
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items[0] #=> String
423
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.quantity #=> Integer
424
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.items #=> Array
425
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.items[0] #=> String
426
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.quantity #=> Integer
427
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items #=> Array
428
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items[0] #=> String
429
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.enabled #=> Boolean
430
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.quantity #=> Integer
431
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.items #=> Array
432
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.items[0] #=> String
433
+ # resp.distribution.distribution_config.cache_behaviors.items[0].viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
434
+ # resp.distribution.distribution_config.cache_behaviors.items[0].min_ttl #=> Integer
435
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.quantity #=> Integer
436
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.items #=> Array
437
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
438
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.quantity #=> Integer
439
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.items #=> Array
440
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
441
+ # resp.distribution.distribution_config.cache_behaviors.items[0].smooth_streaming #=> Boolean
442
+ # resp.distribution.distribution_config.cache_behaviors.items[0].default_ttl #=> Integer
443
+ # resp.distribution.distribution_config.cache_behaviors.items[0].max_ttl #=> Integer
444
+ # resp.distribution.distribution_config.cache_behaviors.items[0].compress #=> Boolean
445
+ # resp.distribution.distribution_config.custom_error_responses.quantity #=> Integer
446
+ # resp.distribution.distribution_config.custom_error_responses.items #=> Array
447
+ # resp.distribution.distribution_config.custom_error_responses.items[0].error_code #=> Integer
448
+ # resp.distribution.distribution_config.custom_error_responses.items[0].response_page_path #=> String
449
+ # resp.distribution.distribution_config.custom_error_responses.items[0].response_code #=> String
450
+ # resp.distribution.distribution_config.custom_error_responses.items[0].error_caching_min_ttl #=> Integer
451
+ # resp.distribution.distribution_config.comment #=> String
452
+ # resp.distribution.distribution_config.logging.enabled #=> Boolean
453
+ # resp.distribution.distribution_config.logging.include_cookies #=> Boolean
454
+ # resp.distribution.distribution_config.logging.bucket #=> String
455
+ # resp.distribution.distribution_config.logging.prefix #=> String
456
+ # resp.distribution.distribution_config.price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
457
+ # resp.distribution.distribution_config.enabled #=> Boolean
458
+ # resp.distribution.distribution_config.viewer_certificate.cloud_front_default_certificate #=> Boolean
459
+ # resp.distribution.distribution_config.viewer_certificate.iam_certificate_id #=> String
460
+ # resp.distribution.distribution_config.viewer_certificate.acm_certificate_arn #=> String
461
+ # resp.distribution.distribution_config.viewer_certificate.ssl_support_method #=> String, one of "sni-only", "vip"
462
+ # resp.distribution.distribution_config.viewer_certificate.minimum_protocol_version #=> String, one of "SSLv3", "TLSv1"
463
+ # resp.distribution.distribution_config.viewer_certificate.certificate #=> String
464
+ # resp.distribution.distribution_config.viewer_certificate.certificate_source #=> String, one of "cloudfront", "iam", "acm"
465
+ # resp.distribution.distribution_config.restrictions.geo_restriction.restriction_type #=> String, one of "blacklist", "whitelist", "none"
466
+ # resp.distribution.distribution_config.restrictions.geo_restriction.quantity #=> Integer
467
+ # resp.distribution.distribution_config.restrictions.geo_restriction.items #=> Array
468
+ # resp.distribution.distribution_config.restrictions.geo_restriction.items[0] #=> String
469
+ # resp.distribution.distribution_config.web_acl_id #=> String
470
+ # resp.distribution.distribution_config.http_version #=> String, one of "http1.1", "http2"
471
+ # resp.distribution.distribution_config.is_ipv6_enabled #=> Boolean
472
+ # resp.location #=> String
473
+ # resp.etag #=> String
474
+ # @overload create_distribution(params = {})
475
+ # @param [Hash] params ({})
476
+ def create_distribution(params = {}, options = {})
477
+ req = build_request(:create_distribution, params)
478
+ req.send_request(options)
479
+ end
480
+
481
+ # Create a new distribution with tags.
482
+ # @option params [required, Types::DistributionConfigWithTags] :distribution_config_with_tags
483
+ # The distribution's configuration information.
484
+ # @return [Types::CreateDistributionWithTagsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
485
+ #
486
+ # * {Types::CreateDistributionWithTagsResult#distribution #Distribution} => Types::Distribution
487
+ # * {Types::CreateDistributionWithTagsResult#location #Location} => String
488
+ # * {Types::CreateDistributionWithTagsResult#etag #ETag} => String
489
+ #
490
+ # @example Request syntax with placeholder values
491
+ # resp = client.create_distribution_with_tags({
492
+ # distribution_config_with_tags: { # required
493
+ # distribution_config: { # required
494
+ # caller_reference: "string", # required
495
+ # aliases: {
496
+ # quantity: 1, # required
497
+ # items: ["string"],
498
+ # },
499
+ # default_root_object: "string",
500
+ # origins: { # required
501
+ # quantity: 1, # required
502
+ # items: [
503
+ # {
504
+ # id: "string", # required
505
+ # domain_name: "string", # required
506
+ # origin_path: "string",
507
+ # custom_headers: {
508
+ # quantity: 1, # required
509
+ # items: [
510
+ # {
511
+ # header_name: "string", # required
512
+ # header_value: "string", # required
513
+ # },
514
+ # ],
515
+ # },
516
+ # s3_origin_config: {
517
+ # origin_access_identity: "string", # required
518
+ # },
519
+ # custom_origin_config: {
520
+ # http_port: 1, # required
521
+ # https_port: 1, # required
522
+ # origin_protocol_policy: "http-only", # required, accepts http-only, match-viewer, https-only
523
+ # origin_ssl_protocols: {
524
+ # quantity: 1, # required
525
+ # items: ["SSLv3"], # required, accepts SSLv3, TLSv1, TLSv1.1, TLSv1.2
526
+ # },
527
+ # },
528
+ # },
529
+ # ],
530
+ # },
531
+ # default_cache_behavior: { # required
532
+ # target_origin_id: "string", # required
533
+ # forwarded_values: { # required
534
+ # query_string: false, # required
535
+ # cookies: { # required
536
+ # forward: "none", # required, accepts none, whitelist, all
537
+ # whitelisted_names: {
538
+ # quantity: 1, # required
539
+ # items: ["string"],
540
+ # },
541
+ # },
542
+ # headers: {
543
+ # quantity: 1, # required
544
+ # items: ["string"],
545
+ # },
546
+ # query_string_cache_keys: {
547
+ # quantity: 1, # required
548
+ # items: ["string"],
549
+ # },
550
+ # },
551
+ # trusted_signers: { # required
552
+ # enabled: false, # required
553
+ # quantity: 1, # required
554
+ # items: ["string"],
555
+ # },
556
+ # viewer_protocol_policy: "allow-all", # required, accepts allow-all, https-only, redirect-to-https
557
+ # min_ttl: 1, # required
558
+ # allowed_methods: {
559
+ # quantity: 1, # required
560
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
561
+ # cached_methods: {
562
+ # quantity: 1, # required
563
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
564
+ # },
565
+ # },
566
+ # smooth_streaming: false,
567
+ # default_ttl: 1,
568
+ # max_ttl: 1,
569
+ # compress: false,
570
+ # },
571
+ # cache_behaviors: {
572
+ # quantity: 1, # required
573
+ # items: [
574
+ # {
575
+ # path_pattern: "string", # required
576
+ # target_origin_id: "string", # required
577
+ # forwarded_values: { # required
578
+ # query_string: false, # required
579
+ # cookies: { # required
580
+ # forward: "none", # required, accepts none, whitelist, all
581
+ # whitelisted_names: {
582
+ # quantity: 1, # required
583
+ # items: ["string"],
584
+ # },
585
+ # },
586
+ # headers: {
587
+ # quantity: 1, # required
588
+ # items: ["string"],
589
+ # },
590
+ # query_string_cache_keys: {
591
+ # quantity: 1, # required
592
+ # items: ["string"],
593
+ # },
594
+ # },
595
+ # trusted_signers: { # required
596
+ # enabled: false, # required
597
+ # quantity: 1, # required
598
+ # items: ["string"],
599
+ # },
600
+ # viewer_protocol_policy: "allow-all", # required, accepts allow-all, https-only, redirect-to-https
601
+ # min_ttl: 1, # required
602
+ # allowed_methods: {
603
+ # quantity: 1, # required
604
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
605
+ # cached_methods: {
606
+ # quantity: 1, # required
607
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
608
+ # },
609
+ # },
610
+ # smooth_streaming: false,
611
+ # default_ttl: 1,
612
+ # max_ttl: 1,
613
+ # compress: false,
614
+ # },
615
+ # ],
616
+ # },
617
+ # custom_error_responses: {
618
+ # quantity: 1, # required
619
+ # items: [
620
+ # {
621
+ # error_code: 1, # required
622
+ # response_page_path: "string",
623
+ # response_code: "string",
624
+ # error_caching_min_ttl: 1,
625
+ # },
626
+ # ],
627
+ # },
628
+ # comment: "string", # required
629
+ # logging: {
630
+ # enabled: false, # required
631
+ # include_cookies: false, # required
632
+ # bucket: "string", # required
633
+ # prefix: "string", # required
634
+ # },
635
+ # price_class: "PriceClass_100", # accepts PriceClass_100, PriceClass_200, PriceClass_All
636
+ # enabled: false, # required
637
+ # viewer_certificate: {
638
+ # cloud_front_default_certificate: false,
639
+ # iam_certificate_id: "string",
640
+ # acm_certificate_arn: "string",
641
+ # ssl_support_method: "sni-only", # accepts sni-only, vip
642
+ # minimum_protocol_version: "SSLv3", # accepts SSLv3, TLSv1
643
+ # certificate: "string",
644
+ # certificate_source: "cloudfront", # accepts cloudfront, iam, acm
645
+ # },
646
+ # restrictions: {
647
+ # geo_restriction: { # required
648
+ # restriction_type: "blacklist", # required, accepts blacklist, whitelist, none
649
+ # quantity: 1, # required
650
+ # items: ["string"],
651
+ # },
652
+ # },
653
+ # web_acl_id: "string",
654
+ # http_version: "http1.1", # accepts http1.1, http2
655
+ # is_ipv6_enabled: false,
656
+ # },
657
+ # tags: { # required
658
+ # items: [
659
+ # {
660
+ # key: "TagKey", # required
661
+ # value: "TagValue",
662
+ # },
663
+ # ],
664
+ # },
665
+ # },
666
+ # })
667
+ #
668
+ # @example Response structure
669
+ # resp.distribution.id #=> String
670
+ # resp.distribution.arn #=> String
671
+ # resp.distribution.status #=> String
672
+ # resp.distribution.last_modified_time #=> Time
673
+ # resp.distribution.in_progress_invalidation_batches #=> Integer
674
+ # resp.distribution.domain_name #=> String
675
+ # resp.distribution.active_trusted_signers.enabled #=> Boolean
676
+ # resp.distribution.active_trusted_signers.quantity #=> Integer
677
+ # resp.distribution.active_trusted_signers.items #=> Array
678
+ # resp.distribution.active_trusted_signers.items[0].aws_account_number #=> String
679
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.quantity #=> Integer
680
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.items #=> Array
681
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.items[0] #=> String
682
+ # resp.distribution.distribution_config.caller_reference #=> String
683
+ # resp.distribution.distribution_config.aliases.quantity #=> Integer
684
+ # resp.distribution.distribution_config.aliases.items #=> Array
685
+ # resp.distribution.distribution_config.aliases.items[0] #=> String
686
+ # resp.distribution.distribution_config.default_root_object #=> String
687
+ # resp.distribution.distribution_config.origins.quantity #=> Integer
688
+ # resp.distribution.distribution_config.origins.items #=> Array
689
+ # resp.distribution.distribution_config.origins.items[0].id #=> String
690
+ # resp.distribution.distribution_config.origins.items[0].domain_name #=> String
691
+ # resp.distribution.distribution_config.origins.items[0].origin_path #=> String
692
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.quantity #=> Integer
693
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items #=> Array
694
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items[0].header_name #=> String
695
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items[0].header_value #=> String
696
+ # resp.distribution.distribution_config.origins.items[0].s3_origin_config.origin_access_identity #=> String
697
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.http_port #=> Integer
698
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.https_port #=> Integer
699
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_protocol_policy #=> String, one of "http-only", "match-viewer", "https-only"
700
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.quantity #=> Integer
701
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.items #=> Array
702
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.items[0] #=> String, one of "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2"
703
+ # resp.distribution.distribution_config.default_cache_behavior.target_origin_id #=> String
704
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string #=> Boolean
705
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
706
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.quantity #=> Integer
707
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.items #=> Array
708
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.items[0] #=> String
709
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.quantity #=> Integer
710
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.items #=> Array
711
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.items[0] #=> String
712
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.quantity #=> Integer
713
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.items #=> Array
714
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.items[0] #=> String
715
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.enabled #=> Boolean
716
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.quantity #=> Integer
717
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.items #=> Array
718
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.items[0] #=> String
719
+ # resp.distribution.distribution_config.default_cache_behavior.viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
720
+ # resp.distribution.distribution_config.default_cache_behavior.min_ttl #=> Integer
721
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.quantity #=> Integer
722
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.items #=> Array
723
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
724
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.quantity #=> Integer
725
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.items #=> Array
726
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
727
+ # resp.distribution.distribution_config.default_cache_behavior.smooth_streaming #=> Boolean
728
+ # resp.distribution.distribution_config.default_cache_behavior.default_ttl #=> Integer
729
+ # resp.distribution.distribution_config.default_cache_behavior.max_ttl #=> Integer
730
+ # resp.distribution.distribution_config.default_cache_behavior.compress #=> Boolean
731
+ # resp.distribution.distribution_config.cache_behaviors.quantity #=> Integer
732
+ # resp.distribution.distribution_config.cache_behaviors.items #=> Array
733
+ # resp.distribution.distribution_config.cache_behaviors.items[0].path_pattern #=> String
734
+ # resp.distribution.distribution_config.cache_behaviors.items[0].target_origin_id #=> String
735
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string #=> Boolean
736
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
737
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.quantity #=> Integer
738
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items #=> Array
739
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items[0] #=> String
740
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.quantity #=> Integer
741
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.items #=> Array
742
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.items[0] #=> String
743
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.quantity #=> Integer
744
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items #=> Array
745
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items[0] #=> String
746
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.enabled #=> Boolean
747
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.quantity #=> Integer
748
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.items #=> Array
749
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.items[0] #=> String
750
+ # resp.distribution.distribution_config.cache_behaviors.items[0].viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
751
+ # resp.distribution.distribution_config.cache_behaviors.items[0].min_ttl #=> Integer
752
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.quantity #=> Integer
753
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.items #=> Array
754
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
755
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.quantity #=> Integer
756
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.items #=> Array
757
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
758
+ # resp.distribution.distribution_config.cache_behaviors.items[0].smooth_streaming #=> Boolean
759
+ # resp.distribution.distribution_config.cache_behaviors.items[0].default_ttl #=> Integer
760
+ # resp.distribution.distribution_config.cache_behaviors.items[0].max_ttl #=> Integer
761
+ # resp.distribution.distribution_config.cache_behaviors.items[0].compress #=> Boolean
762
+ # resp.distribution.distribution_config.custom_error_responses.quantity #=> Integer
763
+ # resp.distribution.distribution_config.custom_error_responses.items #=> Array
764
+ # resp.distribution.distribution_config.custom_error_responses.items[0].error_code #=> Integer
765
+ # resp.distribution.distribution_config.custom_error_responses.items[0].response_page_path #=> String
766
+ # resp.distribution.distribution_config.custom_error_responses.items[0].response_code #=> String
767
+ # resp.distribution.distribution_config.custom_error_responses.items[0].error_caching_min_ttl #=> Integer
768
+ # resp.distribution.distribution_config.comment #=> String
769
+ # resp.distribution.distribution_config.logging.enabled #=> Boolean
770
+ # resp.distribution.distribution_config.logging.include_cookies #=> Boolean
771
+ # resp.distribution.distribution_config.logging.bucket #=> String
772
+ # resp.distribution.distribution_config.logging.prefix #=> String
773
+ # resp.distribution.distribution_config.price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
774
+ # resp.distribution.distribution_config.enabled #=> Boolean
775
+ # resp.distribution.distribution_config.viewer_certificate.cloud_front_default_certificate #=> Boolean
776
+ # resp.distribution.distribution_config.viewer_certificate.iam_certificate_id #=> String
777
+ # resp.distribution.distribution_config.viewer_certificate.acm_certificate_arn #=> String
778
+ # resp.distribution.distribution_config.viewer_certificate.ssl_support_method #=> String, one of "sni-only", "vip"
779
+ # resp.distribution.distribution_config.viewer_certificate.minimum_protocol_version #=> String, one of "SSLv3", "TLSv1"
780
+ # resp.distribution.distribution_config.viewer_certificate.certificate #=> String
781
+ # resp.distribution.distribution_config.viewer_certificate.certificate_source #=> String, one of "cloudfront", "iam", "acm"
782
+ # resp.distribution.distribution_config.restrictions.geo_restriction.restriction_type #=> String, one of "blacklist", "whitelist", "none"
783
+ # resp.distribution.distribution_config.restrictions.geo_restriction.quantity #=> Integer
784
+ # resp.distribution.distribution_config.restrictions.geo_restriction.items #=> Array
785
+ # resp.distribution.distribution_config.restrictions.geo_restriction.items[0] #=> String
786
+ # resp.distribution.distribution_config.web_acl_id #=> String
787
+ # resp.distribution.distribution_config.http_version #=> String, one of "http1.1", "http2"
788
+ # resp.distribution.distribution_config.is_ipv6_enabled #=> Boolean
789
+ # resp.location #=> String
790
+ # resp.etag #=> String
791
+ # @overload create_distribution_with_tags(params = {})
792
+ # @param [Hash] params ({})
793
+ def create_distribution_with_tags(params = {}, options = {})
794
+ req = build_request(:create_distribution_with_tags, params)
795
+ req.send_request(options)
796
+ end
797
+
798
+ # Create a new invalidation.
799
+ # @option params [required, String] :distribution_id
800
+ # The distribution's id.
801
+ # @option params [required, Types::InvalidationBatch] :invalidation_batch
802
+ # The batch information for the invalidation.
803
+ # @return [Types::CreateInvalidationResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
804
+ #
805
+ # * {Types::CreateInvalidationResult#location #Location} => String
806
+ # * {Types::CreateInvalidationResult#invalidation #Invalidation} => Types::Invalidation
807
+ #
808
+ # @example Request syntax with placeholder values
809
+ # resp = client.create_invalidation({
810
+ # distribution_id: "string", # required
811
+ # invalidation_batch: { # required
812
+ # paths: { # required
813
+ # quantity: 1, # required
814
+ # items: ["string"],
815
+ # },
816
+ # caller_reference: "string", # required
817
+ # },
818
+ # })
819
+ #
820
+ # @example Response structure
821
+ # resp.location #=> String
822
+ # resp.invalidation.id #=> String
823
+ # resp.invalidation.status #=> String
824
+ # resp.invalidation.create_time #=> Time
825
+ # resp.invalidation.invalidation_batch.paths.quantity #=> Integer
826
+ # resp.invalidation.invalidation_batch.paths.items #=> Array
827
+ # resp.invalidation.invalidation_batch.paths.items[0] #=> String
828
+ # resp.invalidation.invalidation_batch.caller_reference #=> String
829
+ # @overload create_invalidation(params = {})
830
+ # @param [Hash] params ({})
831
+ def create_invalidation(params = {}, options = {})
832
+ req = build_request(:create_invalidation, params)
833
+ req.send_request(options)
834
+ end
835
+
836
+ # Creates a new RMTP distribution. An RTMP distribution is similar to a
837
+ # web distribution, but an RTMP distribution streams media files using
838
+ # the Adobe Real-Time Messaging Protocol (RTMP) instead of serving files
839
+ # using HTTP.
840
+ #
841
+ # To create a new web distribution, submit a `POST` request to the
842
+ # *CloudFront API version*/distribution resource. The request body must
843
+ # include a document with a *StreamingDistributionConfig* element. The
844
+ # response echoes the `StreamingDistributionConfig` element and returns
845
+ # other information about the RTMP distribution.
846
+ #
847
+ # To get the status of your request, use the *GET StreamingDistribution*
848
+ # API action. When the value of `Enabled` is `true` and the value of
849
+ # `Status` is `Deployed`, your distribution is ready. A distribution
850
+ # usually deploys in less than 15 minutes.
851
+ #
852
+ # For more information about web distributions, see [Working with RTMP
853
+ # Distributions][1] in the *Amazon CloudFront Developer Guide*.
854
+ #
855
+ # Beginning with the 2012-05-05 version of the CloudFront API, we made
856
+ # substantial changes to the format of the XML document that you include
857
+ # in the request body when you create or update a web distribution or an
858
+ # RTMP distribution, and when you invalidate objects. With previous
859
+ # versions of the API, we discovered that it was too easy to
860
+ # accidentally delete one or more values for an element that accepts
861
+ # multiple values, for example, CNAMEs and trusted signers. Our changes
862
+ # for the 2012-05-05 release are intended to prevent these accidental
863
+ # deletions and to notify you when there's a mismatch between the
864
+ # number of values you say you're specifying in the `Quantity` element
865
+ # and the number of values specified.
866
+ #
867
+ #
868
+ #
869
+ # [1]: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-rtmp.html
870
+ # @option params [required, Types::StreamingDistributionConfig] :streaming_distribution_config
871
+ # The streaming distribution's configuration information.
872
+ # @return [Types::CreateStreamingDistributionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
873
+ #
874
+ # * {Types::CreateStreamingDistributionResult#streaming_distribution #StreamingDistribution} => Types::StreamingDistribution
875
+ # * {Types::CreateStreamingDistributionResult#location #Location} => String
876
+ # * {Types::CreateStreamingDistributionResult#etag #ETag} => String
877
+ #
878
+ # @example Request syntax with placeholder values
879
+ # resp = client.create_streaming_distribution({
880
+ # streaming_distribution_config: { # required
881
+ # caller_reference: "string", # required
882
+ # s3_origin: { # required
883
+ # domain_name: "string", # required
884
+ # origin_access_identity: "string", # required
885
+ # },
886
+ # aliases: {
887
+ # quantity: 1, # required
888
+ # items: ["string"],
889
+ # },
890
+ # comment: "string", # required
891
+ # logging: {
892
+ # enabled: false, # required
893
+ # bucket: "string", # required
894
+ # prefix: "string", # required
895
+ # },
896
+ # trusted_signers: { # required
897
+ # enabled: false, # required
898
+ # quantity: 1, # required
899
+ # items: ["string"],
900
+ # },
901
+ # price_class: "PriceClass_100", # accepts PriceClass_100, PriceClass_200, PriceClass_All
902
+ # enabled: false, # required
903
+ # },
904
+ # })
905
+ #
906
+ # @example Response structure
907
+ # resp.streaming_distribution.id #=> String
908
+ # resp.streaming_distribution.arn #=> String
909
+ # resp.streaming_distribution.status #=> String
910
+ # resp.streaming_distribution.last_modified_time #=> Time
911
+ # resp.streaming_distribution.domain_name #=> String
912
+ # resp.streaming_distribution.active_trusted_signers.enabled #=> Boolean
913
+ # resp.streaming_distribution.active_trusted_signers.quantity #=> Integer
914
+ # resp.streaming_distribution.active_trusted_signers.items #=> Array
915
+ # resp.streaming_distribution.active_trusted_signers.items[0].aws_account_number #=> String
916
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.quantity #=> Integer
917
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.items #=> Array
918
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.items[0] #=> String
919
+ # resp.streaming_distribution.streaming_distribution_config.caller_reference #=> String
920
+ # resp.streaming_distribution.streaming_distribution_config.s3_origin.domain_name #=> String
921
+ # resp.streaming_distribution.streaming_distribution_config.s3_origin.origin_access_identity #=> String
922
+ # resp.streaming_distribution.streaming_distribution_config.aliases.quantity #=> Integer
923
+ # resp.streaming_distribution.streaming_distribution_config.aliases.items #=> Array
924
+ # resp.streaming_distribution.streaming_distribution_config.aliases.items[0] #=> String
925
+ # resp.streaming_distribution.streaming_distribution_config.comment #=> String
926
+ # resp.streaming_distribution.streaming_distribution_config.logging.enabled #=> Boolean
927
+ # resp.streaming_distribution.streaming_distribution_config.logging.bucket #=> String
928
+ # resp.streaming_distribution.streaming_distribution_config.logging.prefix #=> String
929
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.enabled #=> Boolean
930
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.quantity #=> Integer
931
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.items #=> Array
932
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.items[0] #=> String
933
+ # resp.streaming_distribution.streaming_distribution_config.price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
934
+ # resp.streaming_distribution.streaming_distribution_config.enabled #=> Boolean
935
+ # resp.location #=> String
936
+ # resp.etag #=> String
937
+ # @overload create_streaming_distribution(params = {})
938
+ # @param [Hash] params ({})
939
+ def create_streaming_distribution(params = {}, options = {})
940
+ req = build_request(:create_streaming_distribution, params)
941
+ req.send_request(options)
942
+ end
943
+
944
+ # Create a new streaming distribution with tags.
945
+ # @option params [required, Types::StreamingDistributionConfigWithTags] :streaming_distribution_config_with_tags
946
+ # The streaming distribution's configuration information.
947
+ # @return [Types::CreateStreamingDistributionWithTagsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
948
+ #
949
+ # * {Types::CreateStreamingDistributionWithTagsResult#streaming_distribution #StreamingDistribution} => Types::StreamingDistribution
950
+ # * {Types::CreateStreamingDistributionWithTagsResult#location #Location} => String
951
+ # * {Types::CreateStreamingDistributionWithTagsResult#etag #ETag} => String
952
+ #
953
+ # @example Request syntax with placeholder values
954
+ # resp = client.create_streaming_distribution_with_tags({
955
+ # streaming_distribution_config_with_tags: { # required
956
+ # streaming_distribution_config: { # required
957
+ # caller_reference: "string", # required
958
+ # s3_origin: { # required
959
+ # domain_name: "string", # required
960
+ # origin_access_identity: "string", # required
961
+ # },
962
+ # aliases: {
963
+ # quantity: 1, # required
964
+ # items: ["string"],
965
+ # },
966
+ # comment: "string", # required
967
+ # logging: {
968
+ # enabled: false, # required
969
+ # bucket: "string", # required
970
+ # prefix: "string", # required
971
+ # },
972
+ # trusted_signers: { # required
973
+ # enabled: false, # required
974
+ # quantity: 1, # required
975
+ # items: ["string"],
976
+ # },
977
+ # price_class: "PriceClass_100", # accepts PriceClass_100, PriceClass_200, PriceClass_All
978
+ # enabled: false, # required
979
+ # },
980
+ # tags: { # required
981
+ # items: [
982
+ # {
983
+ # key: "TagKey", # required
984
+ # value: "TagValue",
985
+ # },
986
+ # ],
987
+ # },
988
+ # },
989
+ # })
990
+ #
991
+ # @example Response structure
992
+ # resp.streaming_distribution.id #=> String
993
+ # resp.streaming_distribution.arn #=> String
994
+ # resp.streaming_distribution.status #=> String
995
+ # resp.streaming_distribution.last_modified_time #=> Time
996
+ # resp.streaming_distribution.domain_name #=> String
997
+ # resp.streaming_distribution.active_trusted_signers.enabled #=> Boolean
998
+ # resp.streaming_distribution.active_trusted_signers.quantity #=> Integer
999
+ # resp.streaming_distribution.active_trusted_signers.items #=> Array
1000
+ # resp.streaming_distribution.active_trusted_signers.items[0].aws_account_number #=> String
1001
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.quantity #=> Integer
1002
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.items #=> Array
1003
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.items[0] #=> String
1004
+ # resp.streaming_distribution.streaming_distribution_config.caller_reference #=> String
1005
+ # resp.streaming_distribution.streaming_distribution_config.s3_origin.domain_name #=> String
1006
+ # resp.streaming_distribution.streaming_distribution_config.s3_origin.origin_access_identity #=> String
1007
+ # resp.streaming_distribution.streaming_distribution_config.aliases.quantity #=> Integer
1008
+ # resp.streaming_distribution.streaming_distribution_config.aliases.items #=> Array
1009
+ # resp.streaming_distribution.streaming_distribution_config.aliases.items[0] #=> String
1010
+ # resp.streaming_distribution.streaming_distribution_config.comment #=> String
1011
+ # resp.streaming_distribution.streaming_distribution_config.logging.enabled #=> Boolean
1012
+ # resp.streaming_distribution.streaming_distribution_config.logging.bucket #=> String
1013
+ # resp.streaming_distribution.streaming_distribution_config.logging.prefix #=> String
1014
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.enabled #=> Boolean
1015
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.quantity #=> Integer
1016
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.items #=> Array
1017
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.items[0] #=> String
1018
+ # resp.streaming_distribution.streaming_distribution_config.price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
1019
+ # resp.streaming_distribution.streaming_distribution_config.enabled #=> Boolean
1020
+ # resp.location #=> String
1021
+ # resp.etag #=> String
1022
+ # @overload create_streaming_distribution_with_tags(params = {})
1023
+ # @param [Hash] params ({})
1024
+ def create_streaming_distribution_with_tags(params = {}, options = {})
1025
+ req = build_request(:create_streaming_distribution_with_tags, params)
1026
+ req.send_request(options)
1027
+ end
1028
+
1029
+ # Delete an origin access identity.
1030
+ # @option params [required, String] :id
1031
+ # The origin access identity's ID.
1032
+ # @option params [String] :if_match
1033
+ # The value of the `ETag` header you received from a previous `GET` or
1034
+ # `PUT` request. For example: `E2QWRUHAPOMQZL`.
1035
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1036
+ #
1037
+ # @example Request syntax with placeholder values
1038
+ # resp = client.delete_cloud_front_origin_access_identity({
1039
+ # id: "string", # required
1040
+ # if_match: "string",
1041
+ # })
1042
+ # @overload delete_cloud_front_origin_access_identity(params = {})
1043
+ # @param [Hash] params ({})
1044
+ def delete_cloud_front_origin_access_identity(params = {}, options = {})
1045
+ req = build_request(:delete_cloud_front_origin_access_identity, params)
1046
+ req.send_request(options)
1047
+ end
1048
+
1049
+ # Delete a distribution.
1050
+ # @option params [required, String] :id
1051
+ # The distribution ID.
1052
+ # @option params [String] :if_match
1053
+ # The value of the `ETag` header that you received when you disabled the
1054
+ # distribution. For example: `E2QWRUHAPOMQZL`.
1055
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1056
+ #
1057
+ # @example Request syntax with placeholder values
1058
+ # resp = client.delete_distribution({
1059
+ # id: "string", # required
1060
+ # if_match: "string",
1061
+ # })
1062
+ # @overload delete_distribution(params = {})
1063
+ # @param [Hash] params ({})
1064
+ def delete_distribution(params = {}, options = {})
1065
+ req = build_request(:delete_distribution, params)
1066
+ req.send_request(options)
1067
+ end
1068
+
1069
+ # Delete a streaming distribution. To delete an RTMP distribution using
1070
+ # the CloudFront API, perform the following steps.
1071
+ #
1072
+ # **To delete an RTMP distribution using the CloudFront API**\:
1073
+ #
1074
+ # 1. Disable the RTMP distribution.
1075
+ #
1076
+ # 2. Submit a `GET Streaming Distribution Config` request to get the
1077
+ # current configuration and the `Etag` header for the distribution.
1078
+ #
1079
+ # 3. Update the XML document that was returned in the response to your
1080
+ # `GET Streaming Distribution Config` request to change the value of
1081
+ # `Enabled` to `false`.
1082
+ #
1083
+ # 4. Submit a `PUT Streaming Distribution Config` request to update the
1084
+ # configuration for your distribution. In the request body, include
1085
+ # the XML document that you updated in Step 3. Then set the value of
1086
+ # the HTTP `If-Match` header to the value of the `ETag` header that
1087
+ # CloudFront returned when you submitted the `GET Streaming
1088
+ # Distribution Config` request in Step 2.
1089
+ #
1090
+ # 5. Review the response to the `PUT Streaming Distribution Config`
1091
+ # request to confirm that the distribution was successfully
1092
+ # disabled.
1093
+ #
1094
+ # 6. Submit a `GET Streaming Distribution Config` request to confirm
1095
+ # that your changes have propagated. When propagation is complete,
1096
+ # the value of `Status` is `Deployed`.
1097
+ #
1098
+ # 7. Submit a `DELETE Streaming Distribution` request. Set the value of
1099
+ # the HTTP `If-Match` header to the value of the `ETag` header that
1100
+ # CloudFront returned when you submitted the `GET Streaming
1101
+ # Distribution Config` request in Step 2.
1102
+ #
1103
+ # 8. Review the response to your `DELETE Streaming Distribution`
1104
+ # request to confirm that the distribution was successfully deleted.
1105
+ #
1106
+ # For information about deleting a distribution using the CloudFront
1107
+ # console, see [Deleting a Distribution][1] in the *Amazon CloudFront
1108
+ # Developer Guide*.
1109
+ #
1110
+ #
1111
+ #
1112
+ # [1]: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowToDeleteDistribution.html
1113
+ # @option params [required, String] :id
1114
+ # The distribution ID.
1115
+ # @option params [String] :if_match
1116
+ # The value of the `ETag` header that you received when you disabled the
1117
+ # streaming distribution. For example: `E2QWRUHAPOMQZL`.
1118
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1119
+ #
1120
+ # @example Request syntax with placeholder values
1121
+ # resp = client.delete_streaming_distribution({
1122
+ # id: "string", # required
1123
+ # if_match: "string",
1124
+ # })
1125
+ # @overload delete_streaming_distribution(params = {})
1126
+ # @param [Hash] params ({})
1127
+ def delete_streaming_distribution(params = {}, options = {})
1128
+ req = build_request(:delete_streaming_distribution, params)
1129
+ req.send_request(options)
1130
+ end
1131
+
1132
+ # Get the information about an origin access identity.
1133
+ # @option params [required, String] :id
1134
+ # The identity's ID.
1135
+ # @return [Types::GetCloudFrontOriginAccessIdentityResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1136
+ #
1137
+ # * {Types::GetCloudFrontOriginAccessIdentityResult#cloud_front_origin_access_identity #CloudFrontOriginAccessIdentity} => Types::CloudFrontOriginAccessIdentity
1138
+ # * {Types::GetCloudFrontOriginAccessIdentityResult#etag #ETag} => String
1139
+ #
1140
+ # @example Request syntax with placeholder values
1141
+ # resp = client.get_cloud_front_origin_access_identity({
1142
+ # id: "string", # required
1143
+ # })
1144
+ #
1145
+ # @example Response structure
1146
+ # resp.cloud_front_origin_access_identity.id #=> String
1147
+ # resp.cloud_front_origin_access_identity.s3_canonical_user_id #=> String
1148
+ # resp.cloud_front_origin_access_identity.cloud_front_origin_access_identity_config.caller_reference #=> String
1149
+ # resp.cloud_front_origin_access_identity.cloud_front_origin_access_identity_config.comment #=> String
1150
+ # resp.etag #=> String
1151
+ # @overload get_cloud_front_origin_access_identity(params = {})
1152
+ # @param [Hash] params ({})
1153
+ def get_cloud_front_origin_access_identity(params = {}, options = {})
1154
+ req = build_request(:get_cloud_front_origin_access_identity, params)
1155
+ req.send_request(options)
1156
+ end
1157
+
1158
+ # Get the configuration information about an origin access identity.
1159
+ # @option params [required, String] :id
1160
+ # The identity's ID.
1161
+ # @return [Types::GetCloudFrontOriginAccessIdentityConfigResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1162
+ #
1163
+ # * {Types::GetCloudFrontOriginAccessIdentityConfigResult#cloud_front_origin_access_identity_config #CloudFrontOriginAccessIdentityConfig} => Types::CloudFrontOriginAccessIdentityConfig
1164
+ # * {Types::GetCloudFrontOriginAccessIdentityConfigResult#etag #ETag} => String
1165
+ #
1166
+ # @example Request syntax with placeholder values
1167
+ # resp = client.get_cloud_front_origin_access_identity_config({
1168
+ # id: "string", # required
1169
+ # })
1170
+ #
1171
+ # @example Response structure
1172
+ # resp.cloud_front_origin_access_identity_config.caller_reference #=> String
1173
+ # resp.cloud_front_origin_access_identity_config.comment #=> String
1174
+ # resp.etag #=> String
1175
+ # @overload get_cloud_front_origin_access_identity_config(params = {})
1176
+ # @param [Hash] params ({})
1177
+ def get_cloud_front_origin_access_identity_config(params = {}, options = {})
1178
+ req = build_request(:get_cloud_front_origin_access_identity_config, params)
1179
+ req.send_request(options)
1180
+ end
1181
+
1182
+ # Get the information about a distribution.
1183
+ # @option params [required, String] :id
1184
+ # The distribution's ID.
1185
+ # @return [Types::GetDistributionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1186
+ #
1187
+ # * {Types::GetDistributionResult#distribution #Distribution} => Types::Distribution
1188
+ # * {Types::GetDistributionResult#etag #ETag} => String
1189
+ #
1190
+ # @example Request syntax with placeholder values
1191
+ # resp = client.get_distribution({
1192
+ # id: "string", # required
1193
+ # })
1194
+ #
1195
+ # @example Response structure
1196
+ # resp.distribution.id #=> String
1197
+ # resp.distribution.arn #=> String
1198
+ # resp.distribution.status #=> String
1199
+ # resp.distribution.last_modified_time #=> Time
1200
+ # resp.distribution.in_progress_invalidation_batches #=> Integer
1201
+ # resp.distribution.domain_name #=> String
1202
+ # resp.distribution.active_trusted_signers.enabled #=> Boolean
1203
+ # resp.distribution.active_trusted_signers.quantity #=> Integer
1204
+ # resp.distribution.active_trusted_signers.items #=> Array
1205
+ # resp.distribution.active_trusted_signers.items[0].aws_account_number #=> String
1206
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.quantity #=> Integer
1207
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.items #=> Array
1208
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.items[0] #=> String
1209
+ # resp.distribution.distribution_config.caller_reference #=> String
1210
+ # resp.distribution.distribution_config.aliases.quantity #=> Integer
1211
+ # resp.distribution.distribution_config.aliases.items #=> Array
1212
+ # resp.distribution.distribution_config.aliases.items[0] #=> String
1213
+ # resp.distribution.distribution_config.default_root_object #=> String
1214
+ # resp.distribution.distribution_config.origins.quantity #=> Integer
1215
+ # resp.distribution.distribution_config.origins.items #=> Array
1216
+ # resp.distribution.distribution_config.origins.items[0].id #=> String
1217
+ # resp.distribution.distribution_config.origins.items[0].domain_name #=> String
1218
+ # resp.distribution.distribution_config.origins.items[0].origin_path #=> String
1219
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.quantity #=> Integer
1220
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items #=> Array
1221
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items[0].header_name #=> String
1222
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items[0].header_value #=> String
1223
+ # resp.distribution.distribution_config.origins.items[0].s3_origin_config.origin_access_identity #=> String
1224
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.http_port #=> Integer
1225
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.https_port #=> Integer
1226
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_protocol_policy #=> String, one of "http-only", "match-viewer", "https-only"
1227
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.quantity #=> Integer
1228
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.items #=> Array
1229
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.items[0] #=> String, one of "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2"
1230
+ # resp.distribution.distribution_config.default_cache_behavior.target_origin_id #=> String
1231
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string #=> Boolean
1232
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
1233
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.quantity #=> Integer
1234
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.items #=> Array
1235
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.items[0] #=> String
1236
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.quantity #=> Integer
1237
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.items #=> Array
1238
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.items[0] #=> String
1239
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.quantity #=> Integer
1240
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.items #=> Array
1241
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.items[0] #=> String
1242
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.enabled #=> Boolean
1243
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.quantity #=> Integer
1244
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.items #=> Array
1245
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.items[0] #=> String
1246
+ # resp.distribution.distribution_config.default_cache_behavior.viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
1247
+ # resp.distribution.distribution_config.default_cache_behavior.min_ttl #=> Integer
1248
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.quantity #=> Integer
1249
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.items #=> Array
1250
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1251
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.quantity #=> Integer
1252
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.items #=> Array
1253
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1254
+ # resp.distribution.distribution_config.default_cache_behavior.smooth_streaming #=> Boolean
1255
+ # resp.distribution.distribution_config.default_cache_behavior.default_ttl #=> Integer
1256
+ # resp.distribution.distribution_config.default_cache_behavior.max_ttl #=> Integer
1257
+ # resp.distribution.distribution_config.default_cache_behavior.compress #=> Boolean
1258
+ # resp.distribution.distribution_config.cache_behaviors.quantity #=> Integer
1259
+ # resp.distribution.distribution_config.cache_behaviors.items #=> Array
1260
+ # resp.distribution.distribution_config.cache_behaviors.items[0].path_pattern #=> String
1261
+ # resp.distribution.distribution_config.cache_behaviors.items[0].target_origin_id #=> String
1262
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string #=> Boolean
1263
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
1264
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.quantity #=> Integer
1265
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items #=> Array
1266
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items[0] #=> String
1267
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.quantity #=> Integer
1268
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.items #=> Array
1269
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.items[0] #=> String
1270
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.quantity #=> Integer
1271
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items #=> Array
1272
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items[0] #=> String
1273
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.enabled #=> Boolean
1274
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.quantity #=> Integer
1275
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.items #=> Array
1276
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.items[0] #=> String
1277
+ # resp.distribution.distribution_config.cache_behaviors.items[0].viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
1278
+ # resp.distribution.distribution_config.cache_behaviors.items[0].min_ttl #=> Integer
1279
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.quantity #=> Integer
1280
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.items #=> Array
1281
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1282
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.quantity #=> Integer
1283
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.items #=> Array
1284
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1285
+ # resp.distribution.distribution_config.cache_behaviors.items[0].smooth_streaming #=> Boolean
1286
+ # resp.distribution.distribution_config.cache_behaviors.items[0].default_ttl #=> Integer
1287
+ # resp.distribution.distribution_config.cache_behaviors.items[0].max_ttl #=> Integer
1288
+ # resp.distribution.distribution_config.cache_behaviors.items[0].compress #=> Boolean
1289
+ # resp.distribution.distribution_config.custom_error_responses.quantity #=> Integer
1290
+ # resp.distribution.distribution_config.custom_error_responses.items #=> Array
1291
+ # resp.distribution.distribution_config.custom_error_responses.items[0].error_code #=> Integer
1292
+ # resp.distribution.distribution_config.custom_error_responses.items[0].response_page_path #=> String
1293
+ # resp.distribution.distribution_config.custom_error_responses.items[0].response_code #=> String
1294
+ # resp.distribution.distribution_config.custom_error_responses.items[0].error_caching_min_ttl #=> Integer
1295
+ # resp.distribution.distribution_config.comment #=> String
1296
+ # resp.distribution.distribution_config.logging.enabled #=> Boolean
1297
+ # resp.distribution.distribution_config.logging.include_cookies #=> Boolean
1298
+ # resp.distribution.distribution_config.logging.bucket #=> String
1299
+ # resp.distribution.distribution_config.logging.prefix #=> String
1300
+ # resp.distribution.distribution_config.price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
1301
+ # resp.distribution.distribution_config.enabled #=> Boolean
1302
+ # resp.distribution.distribution_config.viewer_certificate.cloud_front_default_certificate #=> Boolean
1303
+ # resp.distribution.distribution_config.viewer_certificate.iam_certificate_id #=> String
1304
+ # resp.distribution.distribution_config.viewer_certificate.acm_certificate_arn #=> String
1305
+ # resp.distribution.distribution_config.viewer_certificate.ssl_support_method #=> String, one of "sni-only", "vip"
1306
+ # resp.distribution.distribution_config.viewer_certificate.minimum_protocol_version #=> String, one of "SSLv3", "TLSv1"
1307
+ # resp.distribution.distribution_config.viewer_certificate.certificate #=> String
1308
+ # resp.distribution.distribution_config.viewer_certificate.certificate_source #=> String, one of "cloudfront", "iam", "acm"
1309
+ # resp.distribution.distribution_config.restrictions.geo_restriction.restriction_type #=> String, one of "blacklist", "whitelist", "none"
1310
+ # resp.distribution.distribution_config.restrictions.geo_restriction.quantity #=> Integer
1311
+ # resp.distribution.distribution_config.restrictions.geo_restriction.items #=> Array
1312
+ # resp.distribution.distribution_config.restrictions.geo_restriction.items[0] #=> String
1313
+ # resp.distribution.distribution_config.web_acl_id #=> String
1314
+ # resp.distribution.distribution_config.http_version #=> String, one of "http1.1", "http2"
1315
+ # resp.distribution.distribution_config.is_ipv6_enabled #=> Boolean
1316
+ # resp.etag #=> String
1317
+ # @overload get_distribution(params = {})
1318
+ # @param [Hash] params ({})
1319
+ def get_distribution(params = {}, options = {})
1320
+ req = build_request(:get_distribution, params)
1321
+ req.send_request(options)
1322
+ end
1323
+
1324
+ # Get the configuration information about a distribution.
1325
+ # @option params [required, String] :id
1326
+ # The distribution's ID.
1327
+ # @return [Types::GetDistributionConfigResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1328
+ #
1329
+ # * {Types::GetDistributionConfigResult#distribution_config #DistributionConfig} => Types::DistributionConfig
1330
+ # * {Types::GetDistributionConfigResult#etag #ETag} => String
1331
+ #
1332
+ # @example Request syntax with placeholder values
1333
+ # resp = client.get_distribution_config({
1334
+ # id: "string", # required
1335
+ # })
1336
+ #
1337
+ # @example Response structure
1338
+ # resp.distribution_config.caller_reference #=> String
1339
+ # resp.distribution_config.aliases.quantity #=> Integer
1340
+ # resp.distribution_config.aliases.items #=> Array
1341
+ # resp.distribution_config.aliases.items[0] #=> String
1342
+ # resp.distribution_config.default_root_object #=> String
1343
+ # resp.distribution_config.origins.quantity #=> Integer
1344
+ # resp.distribution_config.origins.items #=> Array
1345
+ # resp.distribution_config.origins.items[0].id #=> String
1346
+ # resp.distribution_config.origins.items[0].domain_name #=> String
1347
+ # resp.distribution_config.origins.items[0].origin_path #=> String
1348
+ # resp.distribution_config.origins.items[0].custom_headers.quantity #=> Integer
1349
+ # resp.distribution_config.origins.items[0].custom_headers.items #=> Array
1350
+ # resp.distribution_config.origins.items[0].custom_headers.items[0].header_name #=> String
1351
+ # resp.distribution_config.origins.items[0].custom_headers.items[0].header_value #=> String
1352
+ # resp.distribution_config.origins.items[0].s3_origin_config.origin_access_identity #=> String
1353
+ # resp.distribution_config.origins.items[0].custom_origin_config.http_port #=> Integer
1354
+ # resp.distribution_config.origins.items[0].custom_origin_config.https_port #=> Integer
1355
+ # resp.distribution_config.origins.items[0].custom_origin_config.origin_protocol_policy #=> String, one of "http-only", "match-viewer", "https-only"
1356
+ # resp.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.quantity #=> Integer
1357
+ # resp.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.items #=> Array
1358
+ # resp.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.items[0] #=> String, one of "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2"
1359
+ # resp.distribution_config.default_cache_behavior.target_origin_id #=> String
1360
+ # resp.distribution_config.default_cache_behavior.forwarded_values.query_string #=> Boolean
1361
+ # resp.distribution_config.default_cache_behavior.forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
1362
+ # resp.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.quantity #=> Integer
1363
+ # resp.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.items #=> Array
1364
+ # resp.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.items[0] #=> String
1365
+ # resp.distribution_config.default_cache_behavior.forwarded_values.headers.quantity #=> Integer
1366
+ # resp.distribution_config.default_cache_behavior.forwarded_values.headers.items #=> Array
1367
+ # resp.distribution_config.default_cache_behavior.forwarded_values.headers.items[0] #=> String
1368
+ # resp.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.quantity #=> Integer
1369
+ # resp.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.items #=> Array
1370
+ # resp.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.items[0] #=> String
1371
+ # resp.distribution_config.default_cache_behavior.trusted_signers.enabled #=> Boolean
1372
+ # resp.distribution_config.default_cache_behavior.trusted_signers.quantity #=> Integer
1373
+ # resp.distribution_config.default_cache_behavior.trusted_signers.items #=> Array
1374
+ # resp.distribution_config.default_cache_behavior.trusted_signers.items[0] #=> String
1375
+ # resp.distribution_config.default_cache_behavior.viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
1376
+ # resp.distribution_config.default_cache_behavior.min_ttl #=> Integer
1377
+ # resp.distribution_config.default_cache_behavior.allowed_methods.quantity #=> Integer
1378
+ # resp.distribution_config.default_cache_behavior.allowed_methods.items #=> Array
1379
+ # resp.distribution_config.default_cache_behavior.allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1380
+ # resp.distribution_config.default_cache_behavior.allowed_methods.cached_methods.quantity #=> Integer
1381
+ # resp.distribution_config.default_cache_behavior.allowed_methods.cached_methods.items #=> Array
1382
+ # resp.distribution_config.default_cache_behavior.allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1383
+ # resp.distribution_config.default_cache_behavior.smooth_streaming #=> Boolean
1384
+ # resp.distribution_config.default_cache_behavior.default_ttl #=> Integer
1385
+ # resp.distribution_config.default_cache_behavior.max_ttl #=> Integer
1386
+ # resp.distribution_config.default_cache_behavior.compress #=> Boolean
1387
+ # resp.distribution_config.cache_behaviors.quantity #=> Integer
1388
+ # resp.distribution_config.cache_behaviors.items #=> Array
1389
+ # resp.distribution_config.cache_behaviors.items[0].path_pattern #=> String
1390
+ # resp.distribution_config.cache_behaviors.items[0].target_origin_id #=> String
1391
+ # resp.distribution_config.cache_behaviors.items[0].forwarded_values.query_string #=> Boolean
1392
+ # resp.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
1393
+ # resp.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.quantity #=> Integer
1394
+ # resp.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items #=> Array
1395
+ # resp.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items[0] #=> String
1396
+ # resp.distribution_config.cache_behaviors.items[0].forwarded_values.headers.quantity #=> Integer
1397
+ # resp.distribution_config.cache_behaviors.items[0].forwarded_values.headers.items #=> Array
1398
+ # resp.distribution_config.cache_behaviors.items[0].forwarded_values.headers.items[0] #=> String
1399
+ # resp.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.quantity #=> Integer
1400
+ # resp.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items #=> Array
1401
+ # resp.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items[0] #=> String
1402
+ # resp.distribution_config.cache_behaviors.items[0].trusted_signers.enabled #=> Boolean
1403
+ # resp.distribution_config.cache_behaviors.items[0].trusted_signers.quantity #=> Integer
1404
+ # resp.distribution_config.cache_behaviors.items[0].trusted_signers.items #=> Array
1405
+ # resp.distribution_config.cache_behaviors.items[0].trusted_signers.items[0] #=> String
1406
+ # resp.distribution_config.cache_behaviors.items[0].viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
1407
+ # resp.distribution_config.cache_behaviors.items[0].min_ttl #=> Integer
1408
+ # resp.distribution_config.cache_behaviors.items[0].allowed_methods.quantity #=> Integer
1409
+ # resp.distribution_config.cache_behaviors.items[0].allowed_methods.items #=> Array
1410
+ # resp.distribution_config.cache_behaviors.items[0].allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1411
+ # resp.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.quantity #=> Integer
1412
+ # resp.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.items #=> Array
1413
+ # resp.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1414
+ # resp.distribution_config.cache_behaviors.items[0].smooth_streaming #=> Boolean
1415
+ # resp.distribution_config.cache_behaviors.items[0].default_ttl #=> Integer
1416
+ # resp.distribution_config.cache_behaviors.items[0].max_ttl #=> Integer
1417
+ # resp.distribution_config.cache_behaviors.items[0].compress #=> Boolean
1418
+ # resp.distribution_config.custom_error_responses.quantity #=> Integer
1419
+ # resp.distribution_config.custom_error_responses.items #=> Array
1420
+ # resp.distribution_config.custom_error_responses.items[0].error_code #=> Integer
1421
+ # resp.distribution_config.custom_error_responses.items[0].response_page_path #=> String
1422
+ # resp.distribution_config.custom_error_responses.items[0].response_code #=> String
1423
+ # resp.distribution_config.custom_error_responses.items[0].error_caching_min_ttl #=> Integer
1424
+ # resp.distribution_config.comment #=> String
1425
+ # resp.distribution_config.logging.enabled #=> Boolean
1426
+ # resp.distribution_config.logging.include_cookies #=> Boolean
1427
+ # resp.distribution_config.logging.bucket #=> String
1428
+ # resp.distribution_config.logging.prefix #=> String
1429
+ # resp.distribution_config.price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
1430
+ # resp.distribution_config.enabled #=> Boolean
1431
+ # resp.distribution_config.viewer_certificate.cloud_front_default_certificate #=> Boolean
1432
+ # resp.distribution_config.viewer_certificate.iam_certificate_id #=> String
1433
+ # resp.distribution_config.viewer_certificate.acm_certificate_arn #=> String
1434
+ # resp.distribution_config.viewer_certificate.ssl_support_method #=> String, one of "sni-only", "vip"
1435
+ # resp.distribution_config.viewer_certificate.minimum_protocol_version #=> String, one of "SSLv3", "TLSv1"
1436
+ # resp.distribution_config.viewer_certificate.certificate #=> String
1437
+ # resp.distribution_config.viewer_certificate.certificate_source #=> String, one of "cloudfront", "iam", "acm"
1438
+ # resp.distribution_config.restrictions.geo_restriction.restriction_type #=> String, one of "blacklist", "whitelist", "none"
1439
+ # resp.distribution_config.restrictions.geo_restriction.quantity #=> Integer
1440
+ # resp.distribution_config.restrictions.geo_restriction.items #=> Array
1441
+ # resp.distribution_config.restrictions.geo_restriction.items[0] #=> String
1442
+ # resp.distribution_config.web_acl_id #=> String
1443
+ # resp.distribution_config.http_version #=> String, one of "http1.1", "http2"
1444
+ # resp.distribution_config.is_ipv6_enabled #=> Boolean
1445
+ # resp.etag #=> String
1446
+ # @overload get_distribution_config(params = {})
1447
+ # @param [Hash] params ({})
1448
+ def get_distribution_config(params = {}, options = {})
1449
+ req = build_request(:get_distribution_config, params)
1450
+ req.send_request(options)
1451
+ end
1452
+
1453
+ # Get the information about an invalidation.
1454
+ # @option params [required, String] :distribution_id
1455
+ # The distribution's ID.
1456
+ # @option params [required, String] :id
1457
+ # The identifier for the invalidation request, for example,
1458
+ # `IDFDVBD632BHDS5`.
1459
+ # @return [Types::GetInvalidationResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1460
+ #
1461
+ # * {Types::GetInvalidationResult#invalidation #Invalidation} => Types::Invalidation
1462
+ #
1463
+ # @example Request syntax with placeholder values
1464
+ # resp = client.get_invalidation({
1465
+ # distribution_id: "string", # required
1466
+ # id: "string", # required
1467
+ # })
1468
+ #
1469
+ # @example Response structure
1470
+ # resp.invalidation.id #=> String
1471
+ # resp.invalidation.status #=> String
1472
+ # resp.invalidation.create_time #=> Time
1473
+ # resp.invalidation.invalidation_batch.paths.quantity #=> Integer
1474
+ # resp.invalidation.invalidation_batch.paths.items #=> Array
1475
+ # resp.invalidation.invalidation_batch.paths.items[0] #=> String
1476
+ # resp.invalidation.invalidation_batch.caller_reference #=> String
1477
+ # @overload get_invalidation(params = {})
1478
+ # @param [Hash] params ({})
1479
+ def get_invalidation(params = {}, options = {})
1480
+ req = build_request(:get_invalidation, params)
1481
+ req.send_request(options)
1482
+ end
1483
+
1484
+ # Gets information about a specified RTMP distribution, including the
1485
+ # distribution configuration.
1486
+ # @option params [required, String] :id
1487
+ # The streaming distribution's ID.
1488
+ # @return [Types::GetStreamingDistributionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1489
+ #
1490
+ # * {Types::GetStreamingDistributionResult#streaming_distribution #StreamingDistribution} => Types::StreamingDistribution
1491
+ # * {Types::GetStreamingDistributionResult#etag #ETag} => String
1492
+ #
1493
+ # @example Request syntax with placeholder values
1494
+ # resp = client.get_streaming_distribution({
1495
+ # id: "string", # required
1496
+ # })
1497
+ #
1498
+ # @example Response structure
1499
+ # resp.streaming_distribution.id #=> String
1500
+ # resp.streaming_distribution.arn #=> String
1501
+ # resp.streaming_distribution.status #=> String
1502
+ # resp.streaming_distribution.last_modified_time #=> Time
1503
+ # resp.streaming_distribution.domain_name #=> String
1504
+ # resp.streaming_distribution.active_trusted_signers.enabled #=> Boolean
1505
+ # resp.streaming_distribution.active_trusted_signers.quantity #=> Integer
1506
+ # resp.streaming_distribution.active_trusted_signers.items #=> Array
1507
+ # resp.streaming_distribution.active_trusted_signers.items[0].aws_account_number #=> String
1508
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.quantity #=> Integer
1509
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.items #=> Array
1510
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.items[0] #=> String
1511
+ # resp.streaming_distribution.streaming_distribution_config.caller_reference #=> String
1512
+ # resp.streaming_distribution.streaming_distribution_config.s3_origin.domain_name #=> String
1513
+ # resp.streaming_distribution.streaming_distribution_config.s3_origin.origin_access_identity #=> String
1514
+ # resp.streaming_distribution.streaming_distribution_config.aliases.quantity #=> Integer
1515
+ # resp.streaming_distribution.streaming_distribution_config.aliases.items #=> Array
1516
+ # resp.streaming_distribution.streaming_distribution_config.aliases.items[0] #=> String
1517
+ # resp.streaming_distribution.streaming_distribution_config.comment #=> String
1518
+ # resp.streaming_distribution.streaming_distribution_config.logging.enabled #=> Boolean
1519
+ # resp.streaming_distribution.streaming_distribution_config.logging.bucket #=> String
1520
+ # resp.streaming_distribution.streaming_distribution_config.logging.prefix #=> String
1521
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.enabled #=> Boolean
1522
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.quantity #=> Integer
1523
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.items #=> Array
1524
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.items[0] #=> String
1525
+ # resp.streaming_distribution.streaming_distribution_config.price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
1526
+ # resp.streaming_distribution.streaming_distribution_config.enabled #=> Boolean
1527
+ # resp.etag #=> String
1528
+ # @overload get_streaming_distribution(params = {})
1529
+ # @param [Hash] params ({})
1530
+ def get_streaming_distribution(params = {}, options = {})
1531
+ req = build_request(:get_streaming_distribution, params)
1532
+ req.send_request(options)
1533
+ end
1534
+
1535
+ # Get the configuration information about a streaming distribution.
1536
+ # @option params [required, String] :id
1537
+ # The streaming distribution's ID.
1538
+ # @return [Types::GetStreamingDistributionConfigResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1539
+ #
1540
+ # * {Types::GetStreamingDistributionConfigResult#streaming_distribution_config #StreamingDistributionConfig} => Types::StreamingDistributionConfig
1541
+ # * {Types::GetStreamingDistributionConfigResult#etag #ETag} => String
1542
+ #
1543
+ # @example Request syntax with placeholder values
1544
+ # resp = client.get_streaming_distribution_config({
1545
+ # id: "string", # required
1546
+ # })
1547
+ #
1548
+ # @example Response structure
1549
+ # resp.streaming_distribution_config.caller_reference #=> String
1550
+ # resp.streaming_distribution_config.s3_origin.domain_name #=> String
1551
+ # resp.streaming_distribution_config.s3_origin.origin_access_identity #=> String
1552
+ # resp.streaming_distribution_config.aliases.quantity #=> Integer
1553
+ # resp.streaming_distribution_config.aliases.items #=> Array
1554
+ # resp.streaming_distribution_config.aliases.items[0] #=> String
1555
+ # resp.streaming_distribution_config.comment #=> String
1556
+ # resp.streaming_distribution_config.logging.enabled #=> Boolean
1557
+ # resp.streaming_distribution_config.logging.bucket #=> String
1558
+ # resp.streaming_distribution_config.logging.prefix #=> String
1559
+ # resp.streaming_distribution_config.trusted_signers.enabled #=> Boolean
1560
+ # resp.streaming_distribution_config.trusted_signers.quantity #=> Integer
1561
+ # resp.streaming_distribution_config.trusted_signers.items #=> Array
1562
+ # resp.streaming_distribution_config.trusted_signers.items[0] #=> String
1563
+ # resp.streaming_distribution_config.price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
1564
+ # resp.streaming_distribution_config.enabled #=> Boolean
1565
+ # resp.etag #=> String
1566
+ # @overload get_streaming_distribution_config(params = {})
1567
+ # @param [Hash] params ({})
1568
+ def get_streaming_distribution_config(params = {}, options = {})
1569
+ req = build_request(:get_streaming_distribution_config, params)
1570
+ req.send_request(options)
1571
+ end
1572
+
1573
+ # Lists origin access identities.
1574
+ # @option params [String] :marker
1575
+ # Use this when paginating results to indicate where to begin in your
1576
+ # list of origin access identities. The results include identities in
1577
+ # the list that occur after the marker. To get the next page of results,
1578
+ # set the `Marker` to the value of the `NextMarker` from the current
1579
+ # page's response (which is also the ID of the last identity on that
1580
+ # page).
1581
+ # @option params [Integer] :max_items
1582
+ # The maximum number of origin access identities you want in the
1583
+ # response body.
1584
+ # @return [Types::ListCloudFrontOriginAccessIdentitiesResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1585
+ #
1586
+ # * {Types::ListCloudFrontOriginAccessIdentitiesResult#cloud_front_origin_access_identity_list #CloudFrontOriginAccessIdentityList} => Types::CloudFrontOriginAccessIdentityList
1587
+ #
1588
+ # @example Request syntax with placeholder values
1589
+ # resp = client.list_cloud_front_origin_access_identities({
1590
+ # marker: "string",
1591
+ # max_items: 1,
1592
+ # })
1593
+ #
1594
+ # @example Response structure
1595
+ # resp.cloud_front_origin_access_identity_list.marker #=> String
1596
+ # resp.cloud_front_origin_access_identity_list.next_marker #=> String
1597
+ # resp.cloud_front_origin_access_identity_list.max_items #=> Integer
1598
+ # resp.cloud_front_origin_access_identity_list.is_truncated #=> Boolean
1599
+ # resp.cloud_front_origin_access_identity_list.quantity #=> Integer
1600
+ # resp.cloud_front_origin_access_identity_list.items #=> Array
1601
+ # resp.cloud_front_origin_access_identity_list.items[0].id #=> String
1602
+ # resp.cloud_front_origin_access_identity_list.items[0].s3_canonical_user_id #=> String
1603
+ # resp.cloud_front_origin_access_identity_list.items[0].comment #=> String
1604
+ # @overload list_cloud_front_origin_access_identities(params = {})
1605
+ # @param [Hash] params ({})
1606
+ def list_cloud_front_origin_access_identities(params = {}, options = {})
1607
+ req = build_request(:list_cloud_front_origin_access_identities, params)
1608
+ req.send_request(options)
1609
+ end
1610
+
1611
+ # List distributions.
1612
+ # @option params [String] :marker
1613
+ # Use this when paginating results to indicate where to begin in your
1614
+ # list of distributions. The results include distributions in the list
1615
+ # that occur after the marker. To get the next page of results, set the
1616
+ # `Marker` to the value of the `NextMarker` from the current page's
1617
+ # response (which is also the ID of the last distribution on that page).
1618
+ # @option params [Integer] :max_items
1619
+ # The maximum number of distributions you want in the response body.
1620
+ # @return [Types::ListDistributionsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1621
+ #
1622
+ # * {Types::ListDistributionsResult#distribution_list #DistributionList} => Types::DistributionList
1623
+ #
1624
+ # @example Request syntax with placeholder values
1625
+ # resp = client.list_distributions({
1626
+ # marker: "string",
1627
+ # max_items: 1,
1628
+ # })
1629
+ #
1630
+ # @example Response structure
1631
+ # resp.distribution_list.marker #=> String
1632
+ # resp.distribution_list.next_marker #=> String
1633
+ # resp.distribution_list.max_items #=> Integer
1634
+ # resp.distribution_list.is_truncated #=> Boolean
1635
+ # resp.distribution_list.quantity #=> Integer
1636
+ # resp.distribution_list.items #=> Array
1637
+ # resp.distribution_list.items[0].id #=> String
1638
+ # resp.distribution_list.items[0].arn #=> String
1639
+ # resp.distribution_list.items[0].status #=> String
1640
+ # resp.distribution_list.items[0].last_modified_time #=> Time
1641
+ # resp.distribution_list.items[0].domain_name #=> String
1642
+ # resp.distribution_list.items[0].aliases.quantity #=> Integer
1643
+ # resp.distribution_list.items[0].aliases.items #=> Array
1644
+ # resp.distribution_list.items[0].aliases.items[0] #=> String
1645
+ # resp.distribution_list.items[0].origins.quantity #=> Integer
1646
+ # resp.distribution_list.items[0].origins.items #=> Array
1647
+ # resp.distribution_list.items[0].origins.items[0].id #=> String
1648
+ # resp.distribution_list.items[0].origins.items[0].domain_name #=> String
1649
+ # resp.distribution_list.items[0].origins.items[0].origin_path #=> String
1650
+ # resp.distribution_list.items[0].origins.items[0].custom_headers.quantity #=> Integer
1651
+ # resp.distribution_list.items[0].origins.items[0].custom_headers.items #=> Array
1652
+ # resp.distribution_list.items[0].origins.items[0].custom_headers.items[0].header_name #=> String
1653
+ # resp.distribution_list.items[0].origins.items[0].custom_headers.items[0].header_value #=> String
1654
+ # resp.distribution_list.items[0].origins.items[0].s3_origin_config.origin_access_identity #=> String
1655
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.http_port #=> Integer
1656
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.https_port #=> Integer
1657
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.origin_protocol_policy #=> String, one of "http-only", "match-viewer", "https-only"
1658
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.origin_ssl_protocols.quantity #=> Integer
1659
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.origin_ssl_protocols.items #=> Array
1660
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.origin_ssl_protocols.items[0] #=> String, one of "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2"
1661
+ # resp.distribution_list.items[0].default_cache_behavior.target_origin_id #=> String
1662
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.query_string #=> Boolean
1663
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
1664
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.cookies.whitelisted_names.quantity #=> Integer
1665
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.cookies.whitelisted_names.items #=> Array
1666
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.cookies.whitelisted_names.items[0] #=> String
1667
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.headers.quantity #=> Integer
1668
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.headers.items #=> Array
1669
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.headers.items[0] #=> String
1670
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.query_string_cache_keys.quantity #=> Integer
1671
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.query_string_cache_keys.items #=> Array
1672
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.query_string_cache_keys.items[0] #=> String
1673
+ # resp.distribution_list.items[0].default_cache_behavior.trusted_signers.enabled #=> Boolean
1674
+ # resp.distribution_list.items[0].default_cache_behavior.trusted_signers.quantity #=> Integer
1675
+ # resp.distribution_list.items[0].default_cache_behavior.trusted_signers.items #=> Array
1676
+ # resp.distribution_list.items[0].default_cache_behavior.trusted_signers.items[0] #=> String
1677
+ # resp.distribution_list.items[0].default_cache_behavior.viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
1678
+ # resp.distribution_list.items[0].default_cache_behavior.min_ttl #=> Integer
1679
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.quantity #=> Integer
1680
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.items #=> Array
1681
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1682
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.cached_methods.quantity #=> Integer
1683
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.cached_methods.items #=> Array
1684
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1685
+ # resp.distribution_list.items[0].default_cache_behavior.smooth_streaming #=> Boolean
1686
+ # resp.distribution_list.items[0].default_cache_behavior.default_ttl #=> Integer
1687
+ # resp.distribution_list.items[0].default_cache_behavior.max_ttl #=> Integer
1688
+ # resp.distribution_list.items[0].default_cache_behavior.compress #=> Boolean
1689
+ # resp.distribution_list.items[0].cache_behaviors.quantity #=> Integer
1690
+ # resp.distribution_list.items[0].cache_behaviors.items #=> Array
1691
+ # resp.distribution_list.items[0].cache_behaviors.items[0].path_pattern #=> String
1692
+ # resp.distribution_list.items[0].cache_behaviors.items[0].target_origin_id #=> String
1693
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.query_string #=> Boolean
1694
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
1695
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.quantity #=> Integer
1696
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items #=> Array
1697
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items[0] #=> String
1698
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.headers.quantity #=> Integer
1699
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.headers.items #=> Array
1700
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.headers.items[0] #=> String
1701
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.query_string_cache_keys.quantity #=> Integer
1702
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items #=> Array
1703
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items[0] #=> String
1704
+ # resp.distribution_list.items[0].cache_behaviors.items[0].trusted_signers.enabled #=> Boolean
1705
+ # resp.distribution_list.items[0].cache_behaviors.items[0].trusted_signers.quantity #=> Integer
1706
+ # resp.distribution_list.items[0].cache_behaviors.items[0].trusted_signers.items #=> Array
1707
+ # resp.distribution_list.items[0].cache_behaviors.items[0].trusted_signers.items[0] #=> String
1708
+ # resp.distribution_list.items[0].cache_behaviors.items[0].viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
1709
+ # resp.distribution_list.items[0].cache_behaviors.items[0].min_ttl #=> Integer
1710
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.quantity #=> Integer
1711
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.items #=> Array
1712
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1713
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.cached_methods.quantity #=> Integer
1714
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.cached_methods.items #=> Array
1715
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1716
+ # resp.distribution_list.items[0].cache_behaviors.items[0].smooth_streaming #=> Boolean
1717
+ # resp.distribution_list.items[0].cache_behaviors.items[0].default_ttl #=> Integer
1718
+ # resp.distribution_list.items[0].cache_behaviors.items[0].max_ttl #=> Integer
1719
+ # resp.distribution_list.items[0].cache_behaviors.items[0].compress #=> Boolean
1720
+ # resp.distribution_list.items[0].custom_error_responses.quantity #=> Integer
1721
+ # resp.distribution_list.items[0].custom_error_responses.items #=> Array
1722
+ # resp.distribution_list.items[0].custom_error_responses.items[0].error_code #=> Integer
1723
+ # resp.distribution_list.items[0].custom_error_responses.items[0].response_page_path #=> String
1724
+ # resp.distribution_list.items[0].custom_error_responses.items[0].response_code #=> String
1725
+ # resp.distribution_list.items[0].custom_error_responses.items[0].error_caching_min_ttl #=> Integer
1726
+ # resp.distribution_list.items[0].comment #=> String
1727
+ # resp.distribution_list.items[0].price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
1728
+ # resp.distribution_list.items[0].enabled #=> Boolean
1729
+ # resp.distribution_list.items[0].viewer_certificate.cloud_front_default_certificate #=> Boolean
1730
+ # resp.distribution_list.items[0].viewer_certificate.iam_certificate_id #=> String
1731
+ # resp.distribution_list.items[0].viewer_certificate.acm_certificate_arn #=> String
1732
+ # resp.distribution_list.items[0].viewer_certificate.ssl_support_method #=> String, one of "sni-only", "vip"
1733
+ # resp.distribution_list.items[0].viewer_certificate.minimum_protocol_version #=> String, one of "SSLv3", "TLSv1"
1734
+ # resp.distribution_list.items[0].viewer_certificate.certificate #=> String
1735
+ # resp.distribution_list.items[0].viewer_certificate.certificate_source #=> String, one of "cloudfront", "iam", "acm"
1736
+ # resp.distribution_list.items[0].restrictions.geo_restriction.restriction_type #=> String, one of "blacklist", "whitelist", "none"
1737
+ # resp.distribution_list.items[0].restrictions.geo_restriction.quantity #=> Integer
1738
+ # resp.distribution_list.items[0].restrictions.geo_restriction.items #=> Array
1739
+ # resp.distribution_list.items[0].restrictions.geo_restriction.items[0] #=> String
1740
+ # resp.distribution_list.items[0].web_acl_id #=> String
1741
+ # resp.distribution_list.items[0].http_version #=> String, one of "http1.1", "http2"
1742
+ # resp.distribution_list.items[0].is_ipv6_enabled #=> Boolean
1743
+ # @overload list_distributions(params = {})
1744
+ # @param [Hash] params ({})
1745
+ def list_distributions(params = {}, options = {})
1746
+ req = build_request(:list_distributions, params)
1747
+ req.send_request(options)
1748
+ end
1749
+
1750
+ # List the distributions that are associated with a specified AWS WAF
1751
+ # web ACL.
1752
+ # @option params [String] :marker
1753
+ # Use `Marker` and `MaxItems` to control pagination of results. If you
1754
+ # have more than `MaxItems` distributions that satisfy the request, the
1755
+ # response includes a `NextMarker` element. To get the next page of
1756
+ # results, submit another request. For the value of `Marker`, specify
1757
+ # the value of `NextMarker` from the last response. (For the first
1758
+ # request, omit `Marker`.)
1759
+ # @option params [Integer] :max_items
1760
+ # The maximum number of distributions that you want CloudFront to return
1761
+ # in the response body. The maximum and default values are both 100.
1762
+ # @option params [required, String] :web_acl_id
1763
+ # The ID of the AWS WAF web ACL that you want to list the associated
1764
+ # distributions. If you specify "null" for the ID, the request returns
1765
+ # a list of the distributions that aren't associated with a web ACL.
1766
+ # @return [Types::ListDistributionsByWebACLIdResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1767
+ #
1768
+ # * {Types::ListDistributionsByWebACLIdResult#distribution_list #DistributionList} => Types::DistributionList
1769
+ #
1770
+ # @example Request syntax with placeholder values
1771
+ # resp = client.list_distributions_by_web_acl_id({
1772
+ # marker: "string",
1773
+ # max_items: 1,
1774
+ # web_acl_id: "string", # required
1775
+ # })
1776
+ #
1777
+ # @example Response structure
1778
+ # resp.distribution_list.marker #=> String
1779
+ # resp.distribution_list.next_marker #=> String
1780
+ # resp.distribution_list.max_items #=> Integer
1781
+ # resp.distribution_list.is_truncated #=> Boolean
1782
+ # resp.distribution_list.quantity #=> Integer
1783
+ # resp.distribution_list.items #=> Array
1784
+ # resp.distribution_list.items[0].id #=> String
1785
+ # resp.distribution_list.items[0].arn #=> String
1786
+ # resp.distribution_list.items[0].status #=> String
1787
+ # resp.distribution_list.items[0].last_modified_time #=> Time
1788
+ # resp.distribution_list.items[0].domain_name #=> String
1789
+ # resp.distribution_list.items[0].aliases.quantity #=> Integer
1790
+ # resp.distribution_list.items[0].aliases.items #=> Array
1791
+ # resp.distribution_list.items[0].aliases.items[0] #=> String
1792
+ # resp.distribution_list.items[0].origins.quantity #=> Integer
1793
+ # resp.distribution_list.items[0].origins.items #=> Array
1794
+ # resp.distribution_list.items[0].origins.items[0].id #=> String
1795
+ # resp.distribution_list.items[0].origins.items[0].domain_name #=> String
1796
+ # resp.distribution_list.items[0].origins.items[0].origin_path #=> String
1797
+ # resp.distribution_list.items[0].origins.items[0].custom_headers.quantity #=> Integer
1798
+ # resp.distribution_list.items[0].origins.items[0].custom_headers.items #=> Array
1799
+ # resp.distribution_list.items[0].origins.items[0].custom_headers.items[0].header_name #=> String
1800
+ # resp.distribution_list.items[0].origins.items[0].custom_headers.items[0].header_value #=> String
1801
+ # resp.distribution_list.items[0].origins.items[0].s3_origin_config.origin_access_identity #=> String
1802
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.http_port #=> Integer
1803
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.https_port #=> Integer
1804
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.origin_protocol_policy #=> String, one of "http-only", "match-viewer", "https-only"
1805
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.origin_ssl_protocols.quantity #=> Integer
1806
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.origin_ssl_protocols.items #=> Array
1807
+ # resp.distribution_list.items[0].origins.items[0].custom_origin_config.origin_ssl_protocols.items[0] #=> String, one of "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2"
1808
+ # resp.distribution_list.items[0].default_cache_behavior.target_origin_id #=> String
1809
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.query_string #=> Boolean
1810
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
1811
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.cookies.whitelisted_names.quantity #=> Integer
1812
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.cookies.whitelisted_names.items #=> Array
1813
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.cookies.whitelisted_names.items[0] #=> String
1814
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.headers.quantity #=> Integer
1815
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.headers.items #=> Array
1816
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.headers.items[0] #=> String
1817
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.query_string_cache_keys.quantity #=> Integer
1818
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.query_string_cache_keys.items #=> Array
1819
+ # resp.distribution_list.items[0].default_cache_behavior.forwarded_values.query_string_cache_keys.items[0] #=> String
1820
+ # resp.distribution_list.items[0].default_cache_behavior.trusted_signers.enabled #=> Boolean
1821
+ # resp.distribution_list.items[0].default_cache_behavior.trusted_signers.quantity #=> Integer
1822
+ # resp.distribution_list.items[0].default_cache_behavior.trusted_signers.items #=> Array
1823
+ # resp.distribution_list.items[0].default_cache_behavior.trusted_signers.items[0] #=> String
1824
+ # resp.distribution_list.items[0].default_cache_behavior.viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
1825
+ # resp.distribution_list.items[0].default_cache_behavior.min_ttl #=> Integer
1826
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.quantity #=> Integer
1827
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.items #=> Array
1828
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1829
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.cached_methods.quantity #=> Integer
1830
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.cached_methods.items #=> Array
1831
+ # resp.distribution_list.items[0].default_cache_behavior.allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1832
+ # resp.distribution_list.items[0].default_cache_behavior.smooth_streaming #=> Boolean
1833
+ # resp.distribution_list.items[0].default_cache_behavior.default_ttl #=> Integer
1834
+ # resp.distribution_list.items[0].default_cache_behavior.max_ttl #=> Integer
1835
+ # resp.distribution_list.items[0].default_cache_behavior.compress #=> Boolean
1836
+ # resp.distribution_list.items[0].cache_behaviors.quantity #=> Integer
1837
+ # resp.distribution_list.items[0].cache_behaviors.items #=> Array
1838
+ # resp.distribution_list.items[0].cache_behaviors.items[0].path_pattern #=> String
1839
+ # resp.distribution_list.items[0].cache_behaviors.items[0].target_origin_id #=> String
1840
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.query_string #=> Boolean
1841
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
1842
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.quantity #=> Integer
1843
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items #=> Array
1844
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items[0] #=> String
1845
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.headers.quantity #=> Integer
1846
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.headers.items #=> Array
1847
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.headers.items[0] #=> String
1848
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.query_string_cache_keys.quantity #=> Integer
1849
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items #=> Array
1850
+ # resp.distribution_list.items[0].cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items[0] #=> String
1851
+ # resp.distribution_list.items[0].cache_behaviors.items[0].trusted_signers.enabled #=> Boolean
1852
+ # resp.distribution_list.items[0].cache_behaviors.items[0].trusted_signers.quantity #=> Integer
1853
+ # resp.distribution_list.items[0].cache_behaviors.items[0].trusted_signers.items #=> Array
1854
+ # resp.distribution_list.items[0].cache_behaviors.items[0].trusted_signers.items[0] #=> String
1855
+ # resp.distribution_list.items[0].cache_behaviors.items[0].viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
1856
+ # resp.distribution_list.items[0].cache_behaviors.items[0].min_ttl #=> Integer
1857
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.quantity #=> Integer
1858
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.items #=> Array
1859
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1860
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.cached_methods.quantity #=> Integer
1861
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.cached_methods.items #=> Array
1862
+ # resp.distribution_list.items[0].cache_behaviors.items[0].allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
1863
+ # resp.distribution_list.items[0].cache_behaviors.items[0].smooth_streaming #=> Boolean
1864
+ # resp.distribution_list.items[0].cache_behaviors.items[0].default_ttl #=> Integer
1865
+ # resp.distribution_list.items[0].cache_behaviors.items[0].max_ttl #=> Integer
1866
+ # resp.distribution_list.items[0].cache_behaviors.items[0].compress #=> Boolean
1867
+ # resp.distribution_list.items[0].custom_error_responses.quantity #=> Integer
1868
+ # resp.distribution_list.items[0].custom_error_responses.items #=> Array
1869
+ # resp.distribution_list.items[0].custom_error_responses.items[0].error_code #=> Integer
1870
+ # resp.distribution_list.items[0].custom_error_responses.items[0].response_page_path #=> String
1871
+ # resp.distribution_list.items[0].custom_error_responses.items[0].response_code #=> String
1872
+ # resp.distribution_list.items[0].custom_error_responses.items[0].error_caching_min_ttl #=> Integer
1873
+ # resp.distribution_list.items[0].comment #=> String
1874
+ # resp.distribution_list.items[0].price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
1875
+ # resp.distribution_list.items[0].enabled #=> Boolean
1876
+ # resp.distribution_list.items[0].viewer_certificate.cloud_front_default_certificate #=> Boolean
1877
+ # resp.distribution_list.items[0].viewer_certificate.iam_certificate_id #=> String
1878
+ # resp.distribution_list.items[0].viewer_certificate.acm_certificate_arn #=> String
1879
+ # resp.distribution_list.items[0].viewer_certificate.ssl_support_method #=> String, one of "sni-only", "vip"
1880
+ # resp.distribution_list.items[0].viewer_certificate.minimum_protocol_version #=> String, one of "SSLv3", "TLSv1"
1881
+ # resp.distribution_list.items[0].viewer_certificate.certificate #=> String
1882
+ # resp.distribution_list.items[0].viewer_certificate.certificate_source #=> String, one of "cloudfront", "iam", "acm"
1883
+ # resp.distribution_list.items[0].restrictions.geo_restriction.restriction_type #=> String, one of "blacklist", "whitelist", "none"
1884
+ # resp.distribution_list.items[0].restrictions.geo_restriction.quantity #=> Integer
1885
+ # resp.distribution_list.items[0].restrictions.geo_restriction.items #=> Array
1886
+ # resp.distribution_list.items[0].restrictions.geo_restriction.items[0] #=> String
1887
+ # resp.distribution_list.items[0].web_acl_id #=> String
1888
+ # resp.distribution_list.items[0].http_version #=> String, one of "http1.1", "http2"
1889
+ # resp.distribution_list.items[0].is_ipv6_enabled #=> Boolean
1890
+ # @overload list_distributions_by_web_acl_id(params = {})
1891
+ # @param [Hash] params ({})
1892
+ def list_distributions_by_web_acl_id(params = {}, options = {})
1893
+ req = build_request(:list_distributions_by_web_acl_id, params)
1894
+ req.send_request(options)
1895
+ end
1896
+
1897
+ # Lists invalidation batches.
1898
+ # @option params [required, String] :distribution_id
1899
+ # The distribution's ID.
1900
+ # @option params [String] :marker
1901
+ # Use this parameter when paginating results to indicate where to begin
1902
+ # in your list of invalidation batches. Because the results are returned
1903
+ # in decreasing order from most recent to oldest, the most recent
1904
+ # results are on the first page, the second page will contain earlier
1905
+ # results, and so on. To get the next page of results, set `Marker` to
1906
+ # the value of the `NextMarker` from the current page's response. This
1907
+ # value is the same as the ID of the last invalidation batch on that
1908
+ # page.
1909
+ # @option params [Integer] :max_items
1910
+ # The maximum number of invalidation batches that you want in the
1911
+ # response body.
1912
+ # @return [Types::ListInvalidationsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1913
+ #
1914
+ # * {Types::ListInvalidationsResult#invalidation_list #InvalidationList} => Types::InvalidationList
1915
+ #
1916
+ # @example Request syntax with placeholder values
1917
+ # resp = client.list_invalidations({
1918
+ # distribution_id: "string", # required
1919
+ # marker: "string",
1920
+ # max_items: 1,
1921
+ # })
1922
+ #
1923
+ # @example Response structure
1924
+ # resp.invalidation_list.marker #=> String
1925
+ # resp.invalidation_list.next_marker #=> String
1926
+ # resp.invalidation_list.max_items #=> Integer
1927
+ # resp.invalidation_list.is_truncated #=> Boolean
1928
+ # resp.invalidation_list.quantity #=> Integer
1929
+ # resp.invalidation_list.items #=> Array
1930
+ # resp.invalidation_list.items[0].id #=> String
1931
+ # resp.invalidation_list.items[0].create_time #=> Time
1932
+ # resp.invalidation_list.items[0].status #=> String
1933
+ # @overload list_invalidations(params = {})
1934
+ # @param [Hash] params ({})
1935
+ def list_invalidations(params = {}, options = {})
1936
+ req = build_request(:list_invalidations, params)
1937
+ req.send_request(options)
1938
+ end
1939
+
1940
+ # List streaming distributions.
1941
+ # @option params [String] :marker
1942
+ # The value that you provided for the `Marker` request parameter.
1943
+ # @option params [Integer] :max_items
1944
+ # The value that you provided for the `MaxItems` request parameter.
1945
+ # @return [Types::ListStreamingDistributionsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1946
+ #
1947
+ # * {Types::ListStreamingDistributionsResult#streaming_distribution_list #StreamingDistributionList} => Types::StreamingDistributionList
1948
+ #
1949
+ # @example Request syntax with placeholder values
1950
+ # resp = client.list_streaming_distributions({
1951
+ # marker: "string",
1952
+ # max_items: 1,
1953
+ # })
1954
+ #
1955
+ # @example Response structure
1956
+ # resp.streaming_distribution_list.marker #=> String
1957
+ # resp.streaming_distribution_list.next_marker #=> String
1958
+ # resp.streaming_distribution_list.max_items #=> Integer
1959
+ # resp.streaming_distribution_list.is_truncated #=> Boolean
1960
+ # resp.streaming_distribution_list.quantity #=> Integer
1961
+ # resp.streaming_distribution_list.items #=> Array
1962
+ # resp.streaming_distribution_list.items[0].id #=> String
1963
+ # resp.streaming_distribution_list.items[0].arn #=> String
1964
+ # resp.streaming_distribution_list.items[0].status #=> String
1965
+ # resp.streaming_distribution_list.items[0].last_modified_time #=> Time
1966
+ # resp.streaming_distribution_list.items[0].domain_name #=> String
1967
+ # resp.streaming_distribution_list.items[0].s3_origin.domain_name #=> String
1968
+ # resp.streaming_distribution_list.items[0].s3_origin.origin_access_identity #=> String
1969
+ # resp.streaming_distribution_list.items[0].aliases.quantity #=> Integer
1970
+ # resp.streaming_distribution_list.items[0].aliases.items #=> Array
1971
+ # resp.streaming_distribution_list.items[0].aliases.items[0] #=> String
1972
+ # resp.streaming_distribution_list.items[0].trusted_signers.enabled #=> Boolean
1973
+ # resp.streaming_distribution_list.items[0].trusted_signers.quantity #=> Integer
1974
+ # resp.streaming_distribution_list.items[0].trusted_signers.items #=> Array
1975
+ # resp.streaming_distribution_list.items[0].trusted_signers.items[0] #=> String
1976
+ # resp.streaming_distribution_list.items[0].comment #=> String
1977
+ # resp.streaming_distribution_list.items[0].price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
1978
+ # resp.streaming_distribution_list.items[0].enabled #=> Boolean
1979
+ # @overload list_streaming_distributions(params = {})
1980
+ # @param [Hash] params ({})
1981
+ def list_streaming_distributions(params = {}, options = {})
1982
+ req = build_request(:list_streaming_distributions, params)
1983
+ req.send_request(options)
1984
+ end
1985
+
1986
+ # List tags for a CloudFront resource.
1987
+ # @option params [required, String] :resource
1988
+ # An ARN of a CloudFront resource.
1989
+ # @return [Types::ListTagsForResourceResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1990
+ #
1991
+ # * {Types::ListTagsForResourceResult#tags #Tags} => Types::Tags
1992
+ #
1993
+ # @example Request syntax with placeholder values
1994
+ # resp = client.list_tags_for_resource({
1995
+ # resource: "ResourceARN", # required
1996
+ # })
1997
+ #
1998
+ # @example Response structure
1999
+ # resp.tags.items #=> Array
2000
+ # resp.tags.items[0].key #=> String
2001
+ # resp.tags.items[0].value #=> String
2002
+ # @overload list_tags_for_resource(params = {})
2003
+ # @param [Hash] params ({})
2004
+ def list_tags_for_resource(params = {}, options = {})
2005
+ req = build_request(:list_tags_for_resource, params)
2006
+ req.send_request(options)
2007
+ end
2008
+
2009
+ # Add tags to a CloudFront resource.
2010
+ # @option params [required, String] :resource
2011
+ # An ARN of a CloudFront resource.
2012
+ # @option params [required, Types::Tags] :tags
2013
+ # A complex type that contains zero or more `Tag` elements.
2014
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2015
+ #
2016
+ # @example Request syntax with placeholder values
2017
+ # resp = client.tag_resource({
2018
+ # resource: "ResourceARN", # required
2019
+ # tags: { # required
2020
+ # items: [
2021
+ # {
2022
+ # key: "TagKey", # required
2023
+ # value: "TagValue",
2024
+ # },
2025
+ # ],
2026
+ # },
2027
+ # })
2028
+ # @overload tag_resource(params = {})
2029
+ # @param [Hash] params ({})
2030
+ def tag_resource(params = {}, options = {})
2031
+ req = build_request(:tag_resource, params)
2032
+ req.send_request(options)
2033
+ end
2034
+
2035
+ # Remove tags from a CloudFront resource.
2036
+ # @option params [required, String] :resource
2037
+ # An ARN of a CloudFront resource.
2038
+ # @option params [required, Types::TagKeys] :tag_keys
2039
+ # A complex type that contains zero or more `Tag` key elements.
2040
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2041
+ #
2042
+ # @example Request syntax with placeholder values
2043
+ # resp = client.untag_resource({
2044
+ # resource: "ResourceARN", # required
2045
+ # tag_keys: { # required
2046
+ # items: ["TagKey"],
2047
+ # },
2048
+ # })
2049
+ # @overload untag_resource(params = {})
2050
+ # @param [Hash] params ({})
2051
+ def untag_resource(params = {}, options = {})
2052
+ req = build_request(:untag_resource, params)
2053
+ req.send_request(options)
2054
+ end
2055
+
2056
+ # Update an origin access identity.
2057
+ # @option params [required, Types::CloudFrontOriginAccessIdentityConfig] :cloud_front_origin_access_identity_config
2058
+ # The identity's configuration information.
2059
+ # @option params [required, String] :id
2060
+ # The identity's id.
2061
+ # @option params [String] :if_match
2062
+ # The value of the `ETag` header that you received when retrieving the
2063
+ # identity's configuration. For example: `E2QWRUHAPOMQZL`.
2064
+ # @return [Types::UpdateCloudFrontOriginAccessIdentityResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2065
+ #
2066
+ # * {Types::UpdateCloudFrontOriginAccessIdentityResult#cloud_front_origin_access_identity #CloudFrontOriginAccessIdentity} => Types::CloudFrontOriginAccessIdentity
2067
+ # * {Types::UpdateCloudFrontOriginAccessIdentityResult#etag #ETag} => String
2068
+ #
2069
+ # @example Request syntax with placeholder values
2070
+ # resp = client.update_cloud_front_origin_access_identity({
2071
+ # cloud_front_origin_access_identity_config: { # required
2072
+ # caller_reference: "string", # required
2073
+ # comment: "string", # required
2074
+ # },
2075
+ # id: "string", # required
2076
+ # if_match: "string",
2077
+ # })
2078
+ #
2079
+ # @example Response structure
2080
+ # resp.cloud_front_origin_access_identity.id #=> String
2081
+ # resp.cloud_front_origin_access_identity.s3_canonical_user_id #=> String
2082
+ # resp.cloud_front_origin_access_identity.cloud_front_origin_access_identity_config.caller_reference #=> String
2083
+ # resp.cloud_front_origin_access_identity.cloud_front_origin_access_identity_config.comment #=> String
2084
+ # resp.etag #=> String
2085
+ # @overload update_cloud_front_origin_access_identity(params = {})
2086
+ # @param [Hash] params ({})
2087
+ def update_cloud_front_origin_access_identity(params = {}, options = {})
2088
+ req = build_request(:update_cloud_front_origin_access_identity, params)
2089
+ req.send_request(options)
2090
+ end
2091
+
2092
+ # Update a distribution.
2093
+ # @option params [required, Types::DistributionConfig] :distribution_config
2094
+ # The distribution's configuration information.
2095
+ # @option params [required, String] :id
2096
+ # The distribution's id.
2097
+ # @option params [String] :if_match
2098
+ # The value of the `ETag` header that you received when retrieving the
2099
+ # distribution's configuration. For example: `E2QWRUHAPOMQZL`.
2100
+ # @return [Types::UpdateDistributionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2101
+ #
2102
+ # * {Types::UpdateDistributionResult#distribution #Distribution} => Types::Distribution
2103
+ # * {Types::UpdateDistributionResult#etag #ETag} => String
2104
+ #
2105
+ # @example Request syntax with placeholder values
2106
+ # resp = client.update_distribution({
2107
+ # distribution_config: { # required
2108
+ # caller_reference: "string", # required
2109
+ # aliases: {
2110
+ # quantity: 1, # required
2111
+ # items: ["string"],
2112
+ # },
2113
+ # default_root_object: "string",
2114
+ # origins: { # required
2115
+ # quantity: 1, # required
2116
+ # items: [
2117
+ # {
2118
+ # id: "string", # required
2119
+ # domain_name: "string", # required
2120
+ # origin_path: "string",
2121
+ # custom_headers: {
2122
+ # quantity: 1, # required
2123
+ # items: [
2124
+ # {
2125
+ # header_name: "string", # required
2126
+ # header_value: "string", # required
2127
+ # },
2128
+ # ],
2129
+ # },
2130
+ # s3_origin_config: {
2131
+ # origin_access_identity: "string", # required
2132
+ # },
2133
+ # custom_origin_config: {
2134
+ # http_port: 1, # required
2135
+ # https_port: 1, # required
2136
+ # origin_protocol_policy: "http-only", # required, accepts http-only, match-viewer, https-only
2137
+ # origin_ssl_protocols: {
2138
+ # quantity: 1, # required
2139
+ # items: ["SSLv3"], # required, accepts SSLv3, TLSv1, TLSv1.1, TLSv1.2
2140
+ # },
2141
+ # },
2142
+ # },
2143
+ # ],
2144
+ # },
2145
+ # default_cache_behavior: { # required
2146
+ # target_origin_id: "string", # required
2147
+ # forwarded_values: { # required
2148
+ # query_string: false, # required
2149
+ # cookies: { # required
2150
+ # forward: "none", # required, accepts none, whitelist, all
2151
+ # whitelisted_names: {
2152
+ # quantity: 1, # required
2153
+ # items: ["string"],
2154
+ # },
2155
+ # },
2156
+ # headers: {
2157
+ # quantity: 1, # required
2158
+ # items: ["string"],
2159
+ # },
2160
+ # query_string_cache_keys: {
2161
+ # quantity: 1, # required
2162
+ # items: ["string"],
2163
+ # },
2164
+ # },
2165
+ # trusted_signers: { # required
2166
+ # enabled: false, # required
2167
+ # quantity: 1, # required
2168
+ # items: ["string"],
2169
+ # },
2170
+ # viewer_protocol_policy: "allow-all", # required, accepts allow-all, https-only, redirect-to-https
2171
+ # min_ttl: 1, # required
2172
+ # allowed_methods: {
2173
+ # quantity: 1, # required
2174
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
2175
+ # cached_methods: {
2176
+ # quantity: 1, # required
2177
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
2178
+ # },
2179
+ # },
2180
+ # smooth_streaming: false,
2181
+ # default_ttl: 1,
2182
+ # max_ttl: 1,
2183
+ # compress: false,
2184
+ # },
2185
+ # cache_behaviors: {
2186
+ # quantity: 1, # required
2187
+ # items: [
2188
+ # {
2189
+ # path_pattern: "string", # required
2190
+ # target_origin_id: "string", # required
2191
+ # forwarded_values: { # required
2192
+ # query_string: false, # required
2193
+ # cookies: { # required
2194
+ # forward: "none", # required, accepts none, whitelist, all
2195
+ # whitelisted_names: {
2196
+ # quantity: 1, # required
2197
+ # items: ["string"],
2198
+ # },
2199
+ # },
2200
+ # headers: {
2201
+ # quantity: 1, # required
2202
+ # items: ["string"],
2203
+ # },
2204
+ # query_string_cache_keys: {
2205
+ # quantity: 1, # required
2206
+ # items: ["string"],
2207
+ # },
2208
+ # },
2209
+ # trusted_signers: { # required
2210
+ # enabled: false, # required
2211
+ # quantity: 1, # required
2212
+ # items: ["string"],
2213
+ # },
2214
+ # viewer_protocol_policy: "allow-all", # required, accepts allow-all, https-only, redirect-to-https
2215
+ # min_ttl: 1, # required
2216
+ # allowed_methods: {
2217
+ # quantity: 1, # required
2218
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
2219
+ # cached_methods: {
2220
+ # quantity: 1, # required
2221
+ # items: ["GET"], # required, accepts GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
2222
+ # },
2223
+ # },
2224
+ # smooth_streaming: false,
2225
+ # default_ttl: 1,
2226
+ # max_ttl: 1,
2227
+ # compress: false,
2228
+ # },
2229
+ # ],
2230
+ # },
2231
+ # custom_error_responses: {
2232
+ # quantity: 1, # required
2233
+ # items: [
2234
+ # {
2235
+ # error_code: 1, # required
2236
+ # response_page_path: "string",
2237
+ # response_code: "string",
2238
+ # error_caching_min_ttl: 1,
2239
+ # },
2240
+ # ],
2241
+ # },
2242
+ # comment: "string", # required
2243
+ # logging: {
2244
+ # enabled: false, # required
2245
+ # include_cookies: false, # required
2246
+ # bucket: "string", # required
2247
+ # prefix: "string", # required
2248
+ # },
2249
+ # price_class: "PriceClass_100", # accepts PriceClass_100, PriceClass_200, PriceClass_All
2250
+ # enabled: false, # required
2251
+ # viewer_certificate: {
2252
+ # cloud_front_default_certificate: false,
2253
+ # iam_certificate_id: "string",
2254
+ # acm_certificate_arn: "string",
2255
+ # ssl_support_method: "sni-only", # accepts sni-only, vip
2256
+ # minimum_protocol_version: "SSLv3", # accepts SSLv3, TLSv1
2257
+ # certificate: "string",
2258
+ # certificate_source: "cloudfront", # accepts cloudfront, iam, acm
2259
+ # },
2260
+ # restrictions: {
2261
+ # geo_restriction: { # required
2262
+ # restriction_type: "blacklist", # required, accepts blacklist, whitelist, none
2263
+ # quantity: 1, # required
2264
+ # items: ["string"],
2265
+ # },
2266
+ # },
2267
+ # web_acl_id: "string",
2268
+ # http_version: "http1.1", # accepts http1.1, http2
2269
+ # is_ipv6_enabled: false,
2270
+ # },
2271
+ # id: "string", # required
2272
+ # if_match: "string",
2273
+ # })
2274
+ #
2275
+ # @example Response structure
2276
+ # resp.distribution.id #=> String
2277
+ # resp.distribution.arn #=> String
2278
+ # resp.distribution.status #=> String
2279
+ # resp.distribution.last_modified_time #=> Time
2280
+ # resp.distribution.in_progress_invalidation_batches #=> Integer
2281
+ # resp.distribution.domain_name #=> String
2282
+ # resp.distribution.active_trusted_signers.enabled #=> Boolean
2283
+ # resp.distribution.active_trusted_signers.quantity #=> Integer
2284
+ # resp.distribution.active_trusted_signers.items #=> Array
2285
+ # resp.distribution.active_trusted_signers.items[0].aws_account_number #=> String
2286
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.quantity #=> Integer
2287
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.items #=> Array
2288
+ # resp.distribution.active_trusted_signers.items[0].key_pair_ids.items[0] #=> String
2289
+ # resp.distribution.distribution_config.caller_reference #=> String
2290
+ # resp.distribution.distribution_config.aliases.quantity #=> Integer
2291
+ # resp.distribution.distribution_config.aliases.items #=> Array
2292
+ # resp.distribution.distribution_config.aliases.items[0] #=> String
2293
+ # resp.distribution.distribution_config.default_root_object #=> String
2294
+ # resp.distribution.distribution_config.origins.quantity #=> Integer
2295
+ # resp.distribution.distribution_config.origins.items #=> Array
2296
+ # resp.distribution.distribution_config.origins.items[0].id #=> String
2297
+ # resp.distribution.distribution_config.origins.items[0].domain_name #=> String
2298
+ # resp.distribution.distribution_config.origins.items[0].origin_path #=> String
2299
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.quantity #=> Integer
2300
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items #=> Array
2301
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items[0].header_name #=> String
2302
+ # resp.distribution.distribution_config.origins.items[0].custom_headers.items[0].header_value #=> String
2303
+ # resp.distribution.distribution_config.origins.items[0].s3_origin_config.origin_access_identity #=> String
2304
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.http_port #=> Integer
2305
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.https_port #=> Integer
2306
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_protocol_policy #=> String, one of "http-only", "match-viewer", "https-only"
2307
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.quantity #=> Integer
2308
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.items #=> Array
2309
+ # resp.distribution.distribution_config.origins.items[0].custom_origin_config.origin_ssl_protocols.items[0] #=> String, one of "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2"
2310
+ # resp.distribution.distribution_config.default_cache_behavior.target_origin_id #=> String
2311
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string #=> Boolean
2312
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
2313
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.quantity #=> Integer
2314
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.items #=> Array
2315
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.cookies.whitelisted_names.items[0] #=> String
2316
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.quantity #=> Integer
2317
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.items #=> Array
2318
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.headers.items[0] #=> String
2319
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.quantity #=> Integer
2320
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.items #=> Array
2321
+ # resp.distribution.distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys.items[0] #=> String
2322
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.enabled #=> Boolean
2323
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.quantity #=> Integer
2324
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.items #=> Array
2325
+ # resp.distribution.distribution_config.default_cache_behavior.trusted_signers.items[0] #=> String
2326
+ # resp.distribution.distribution_config.default_cache_behavior.viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
2327
+ # resp.distribution.distribution_config.default_cache_behavior.min_ttl #=> Integer
2328
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.quantity #=> Integer
2329
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.items #=> Array
2330
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
2331
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.quantity #=> Integer
2332
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.items #=> Array
2333
+ # resp.distribution.distribution_config.default_cache_behavior.allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
2334
+ # resp.distribution.distribution_config.default_cache_behavior.smooth_streaming #=> Boolean
2335
+ # resp.distribution.distribution_config.default_cache_behavior.default_ttl #=> Integer
2336
+ # resp.distribution.distribution_config.default_cache_behavior.max_ttl #=> Integer
2337
+ # resp.distribution.distribution_config.default_cache_behavior.compress #=> Boolean
2338
+ # resp.distribution.distribution_config.cache_behaviors.quantity #=> Integer
2339
+ # resp.distribution.distribution_config.cache_behaviors.items #=> Array
2340
+ # resp.distribution.distribution_config.cache_behaviors.items[0].path_pattern #=> String
2341
+ # resp.distribution.distribution_config.cache_behaviors.items[0].target_origin_id #=> String
2342
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string #=> Boolean
2343
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.forward #=> String, one of "none", "whitelist", "all"
2344
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.quantity #=> Integer
2345
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items #=> Array
2346
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.cookies.whitelisted_names.items[0] #=> String
2347
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.quantity #=> Integer
2348
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.items #=> Array
2349
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.headers.items[0] #=> String
2350
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.quantity #=> Integer
2351
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items #=> Array
2352
+ # resp.distribution.distribution_config.cache_behaviors.items[0].forwarded_values.query_string_cache_keys.items[0] #=> String
2353
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.enabled #=> Boolean
2354
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.quantity #=> Integer
2355
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.items #=> Array
2356
+ # resp.distribution.distribution_config.cache_behaviors.items[0].trusted_signers.items[0] #=> String
2357
+ # resp.distribution.distribution_config.cache_behaviors.items[0].viewer_protocol_policy #=> String, one of "allow-all", "https-only", "redirect-to-https"
2358
+ # resp.distribution.distribution_config.cache_behaviors.items[0].min_ttl #=> Integer
2359
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.quantity #=> Integer
2360
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.items #=> Array
2361
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
2362
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.quantity #=> Integer
2363
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.items #=> Array
2364
+ # resp.distribution.distribution_config.cache_behaviors.items[0].allowed_methods.cached_methods.items[0] #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"
2365
+ # resp.distribution.distribution_config.cache_behaviors.items[0].smooth_streaming #=> Boolean
2366
+ # resp.distribution.distribution_config.cache_behaviors.items[0].default_ttl #=> Integer
2367
+ # resp.distribution.distribution_config.cache_behaviors.items[0].max_ttl #=> Integer
2368
+ # resp.distribution.distribution_config.cache_behaviors.items[0].compress #=> Boolean
2369
+ # resp.distribution.distribution_config.custom_error_responses.quantity #=> Integer
2370
+ # resp.distribution.distribution_config.custom_error_responses.items #=> Array
2371
+ # resp.distribution.distribution_config.custom_error_responses.items[0].error_code #=> Integer
2372
+ # resp.distribution.distribution_config.custom_error_responses.items[0].response_page_path #=> String
2373
+ # resp.distribution.distribution_config.custom_error_responses.items[0].response_code #=> String
2374
+ # resp.distribution.distribution_config.custom_error_responses.items[0].error_caching_min_ttl #=> Integer
2375
+ # resp.distribution.distribution_config.comment #=> String
2376
+ # resp.distribution.distribution_config.logging.enabled #=> Boolean
2377
+ # resp.distribution.distribution_config.logging.include_cookies #=> Boolean
2378
+ # resp.distribution.distribution_config.logging.bucket #=> String
2379
+ # resp.distribution.distribution_config.logging.prefix #=> String
2380
+ # resp.distribution.distribution_config.price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
2381
+ # resp.distribution.distribution_config.enabled #=> Boolean
2382
+ # resp.distribution.distribution_config.viewer_certificate.cloud_front_default_certificate #=> Boolean
2383
+ # resp.distribution.distribution_config.viewer_certificate.iam_certificate_id #=> String
2384
+ # resp.distribution.distribution_config.viewer_certificate.acm_certificate_arn #=> String
2385
+ # resp.distribution.distribution_config.viewer_certificate.ssl_support_method #=> String, one of "sni-only", "vip"
2386
+ # resp.distribution.distribution_config.viewer_certificate.minimum_protocol_version #=> String, one of "SSLv3", "TLSv1"
2387
+ # resp.distribution.distribution_config.viewer_certificate.certificate #=> String
2388
+ # resp.distribution.distribution_config.viewer_certificate.certificate_source #=> String, one of "cloudfront", "iam", "acm"
2389
+ # resp.distribution.distribution_config.restrictions.geo_restriction.restriction_type #=> String, one of "blacklist", "whitelist", "none"
2390
+ # resp.distribution.distribution_config.restrictions.geo_restriction.quantity #=> Integer
2391
+ # resp.distribution.distribution_config.restrictions.geo_restriction.items #=> Array
2392
+ # resp.distribution.distribution_config.restrictions.geo_restriction.items[0] #=> String
2393
+ # resp.distribution.distribution_config.web_acl_id #=> String
2394
+ # resp.distribution.distribution_config.http_version #=> String, one of "http1.1", "http2"
2395
+ # resp.distribution.distribution_config.is_ipv6_enabled #=> Boolean
2396
+ # resp.etag #=> String
2397
+ # @overload update_distribution(params = {})
2398
+ # @param [Hash] params ({})
2399
+ def update_distribution(params = {}, options = {})
2400
+ req = build_request(:update_distribution, params)
2401
+ req.send_request(options)
2402
+ end
2403
+
2404
+ # Update a streaming distribution.
2405
+ # @option params [required, Types::StreamingDistributionConfig] :streaming_distribution_config
2406
+ # The streaming distribution's configuration information.
2407
+ # @option params [required, String] :id
2408
+ # The streaming distribution's id.
2409
+ # @option params [String] :if_match
2410
+ # The value of the `ETag` header that you received when retrieving the
2411
+ # streaming distribution's configuration. For example:
2412
+ # `E2QWRUHAPOMQZL`.
2413
+ # @return [Types::UpdateStreamingDistributionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2414
+ #
2415
+ # * {Types::UpdateStreamingDistributionResult#streaming_distribution #StreamingDistribution} => Types::StreamingDistribution
2416
+ # * {Types::UpdateStreamingDistributionResult#etag #ETag} => String
2417
+ #
2418
+ # @example Request syntax with placeholder values
2419
+ # resp = client.update_streaming_distribution({
2420
+ # streaming_distribution_config: { # required
2421
+ # caller_reference: "string", # required
2422
+ # s3_origin: { # required
2423
+ # domain_name: "string", # required
2424
+ # origin_access_identity: "string", # required
2425
+ # },
2426
+ # aliases: {
2427
+ # quantity: 1, # required
2428
+ # items: ["string"],
2429
+ # },
2430
+ # comment: "string", # required
2431
+ # logging: {
2432
+ # enabled: false, # required
2433
+ # bucket: "string", # required
2434
+ # prefix: "string", # required
2435
+ # },
2436
+ # trusted_signers: { # required
2437
+ # enabled: false, # required
2438
+ # quantity: 1, # required
2439
+ # items: ["string"],
2440
+ # },
2441
+ # price_class: "PriceClass_100", # accepts PriceClass_100, PriceClass_200, PriceClass_All
2442
+ # enabled: false, # required
2443
+ # },
2444
+ # id: "string", # required
2445
+ # if_match: "string",
2446
+ # })
2447
+ #
2448
+ # @example Response structure
2449
+ # resp.streaming_distribution.id #=> String
2450
+ # resp.streaming_distribution.arn #=> String
2451
+ # resp.streaming_distribution.status #=> String
2452
+ # resp.streaming_distribution.last_modified_time #=> Time
2453
+ # resp.streaming_distribution.domain_name #=> String
2454
+ # resp.streaming_distribution.active_trusted_signers.enabled #=> Boolean
2455
+ # resp.streaming_distribution.active_trusted_signers.quantity #=> Integer
2456
+ # resp.streaming_distribution.active_trusted_signers.items #=> Array
2457
+ # resp.streaming_distribution.active_trusted_signers.items[0].aws_account_number #=> String
2458
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.quantity #=> Integer
2459
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.items #=> Array
2460
+ # resp.streaming_distribution.active_trusted_signers.items[0].key_pair_ids.items[0] #=> String
2461
+ # resp.streaming_distribution.streaming_distribution_config.caller_reference #=> String
2462
+ # resp.streaming_distribution.streaming_distribution_config.s3_origin.domain_name #=> String
2463
+ # resp.streaming_distribution.streaming_distribution_config.s3_origin.origin_access_identity #=> String
2464
+ # resp.streaming_distribution.streaming_distribution_config.aliases.quantity #=> Integer
2465
+ # resp.streaming_distribution.streaming_distribution_config.aliases.items #=> Array
2466
+ # resp.streaming_distribution.streaming_distribution_config.aliases.items[0] #=> String
2467
+ # resp.streaming_distribution.streaming_distribution_config.comment #=> String
2468
+ # resp.streaming_distribution.streaming_distribution_config.logging.enabled #=> Boolean
2469
+ # resp.streaming_distribution.streaming_distribution_config.logging.bucket #=> String
2470
+ # resp.streaming_distribution.streaming_distribution_config.logging.prefix #=> String
2471
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.enabled #=> Boolean
2472
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.quantity #=> Integer
2473
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.items #=> Array
2474
+ # resp.streaming_distribution.streaming_distribution_config.trusted_signers.items[0] #=> String
2475
+ # resp.streaming_distribution.streaming_distribution_config.price_class #=> String, one of "PriceClass_100", "PriceClass_200", "PriceClass_All"
2476
+ # resp.streaming_distribution.streaming_distribution_config.enabled #=> Boolean
2477
+ # resp.etag #=> String
2478
+ # @overload update_streaming_distribution(params = {})
2479
+ # @param [Hash] params ({})
2480
+ def update_streaming_distribution(params = {}, options = {})
2481
+ req = build_request(:update_streaming_distribution, params)
2482
+ req.send_request(options)
2483
+ end
2484
+
2485
+ # @!endgroup
2486
+
2487
+ # @param params ({})
2488
+ # @api private
2489
+ def build_request(operation_name, params = {})
2490
+ handlers = @handlers.for(operation_name)
2491
+ context = Seahorse::Client::RequestContext.new(
2492
+ operation_name: operation_name,
2493
+ operation: config.api.operation(operation_name),
2494
+ client: self,
2495
+ params: params,
2496
+ config: config)
2497
+ context[:gem_name] = 'aws-sdk-cloudfront'
2498
+ context[:gem_version] = '1.0.0.rc1'
2499
+ Seahorse::Client::Request.new(handlers, context)
2500
+ end
2501
+
2502
+ # Polls an API operation until a resource enters a desired state.
2503
+ #
2504
+ # ## Basic Usage
2505
+ #
2506
+ # A waiter will call an API operation until:
2507
+ #
2508
+ # * It is successful
2509
+ # * It enters a terminal state
2510
+ # * It makes the maximum number of attempts
2511
+ #
2512
+ # In between attempts, the waiter will sleep.
2513
+ #
2514
+ # # polls in a loop, sleeping between attempts
2515
+ # client.waiter_until(waiter_name, params)
2516
+ #
2517
+ # ## Configuration
2518
+ #
2519
+ # You can configure the maximum number of polling attempts, and the
2520
+ # delay (in seconds) between each polling attempt. You can pass
2521
+ # configuration as the final arguments hash.
2522
+ #
2523
+ # # poll for ~25 seconds
2524
+ # client.wait_until(waiter_name, params, {
2525
+ # max_attempts: 5,
2526
+ # delay: 5,
2527
+ # })
2528
+ #
2529
+ # ## Callbacks
2530
+ #
2531
+ # You can be notified before each polling attempt and before each
2532
+ # delay. If you throw `:success` or `:failure` from these callbacks,
2533
+ # it will terminate the waiter.
2534
+ #
2535
+ # started_at = Time.now
2536
+ # client.wait_until(waiter_name, params, {
2537
+ #
2538
+ # # disable max attempts
2539
+ # max_attempts: nil,
2540
+ #
2541
+ # # poll for 1 hour, instead of a number of attempts
2542
+ # before_wait: -> (attempts, response) do
2543
+ # throw :failure if Time.now - started_at > 3600
2544
+ # end
2545
+ # })
2546
+ #
2547
+ # ## Handling Errors
2548
+ #
2549
+ # When a waiter is unsuccessful, it will raise an error.
2550
+ # All of the failure errors extend from
2551
+ # {Aws::Waiters::Errors::WaiterFailed}.
2552
+ #
2553
+ # begin
2554
+ # client.wait_until(...)
2555
+ # rescue Aws::Waiters::Errors::WaiterFailed
2556
+ # # resource did not enter the desired state in time
2557
+ # end
2558
+ #
2559
+ # ## Valid Waiters
2560
+ #
2561
+ # The following table lists the valid waiter names, the operations they call,
2562
+ # and the default `:delay` and `:max_attempts` values.
2563
+ #
2564
+ # | waiter_name | params | :delay | :max_attempts |
2565
+ # | ------------------------------- | ----------------------------- | -------- | ------------- |
2566
+ # | distribution_deployed | {#get_distribution} | 60 | 25 |
2567
+ # | invalidation_completed | {#get_invalidation} | 20 | 30 |
2568
+ # | streaming_distribution_deployed | {#get_streaming_distribution} | 60 | 25 |
2569
+ #
2570
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
2571
+ # because the waiter has entered a state that it will not transition
2572
+ # out of, preventing success.
2573
+ #
2574
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
2575
+ # maximum number of attempts have been made, and the waiter is not
2576
+ # yet successful.
2577
+ #
2578
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
2579
+ # while polling for a resource that is not expected.
2580
+ #
2581
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
2582
+ # for an unknown state.
2583
+ #
2584
+ # @return [Boolean] Returns `true` if the waiter was successful.
2585
+ # @param [Symbol] waiter_name
2586
+ # @param [Hash] params ({})
2587
+ # @param [Hash] options ({})
2588
+ # @option options [Integer] :max_attempts
2589
+ # @option options [Integer] :delay
2590
+ # @option options [Proc] :before_attempt
2591
+ # @option options [Proc] :before_wait
2592
+ def wait_until(waiter_name, params = {}, options = {})
2593
+ w = waiter(waiter_name, options)
2594
+ yield(w.waiter) if block_given? # deprecated
2595
+ w.wait(params)
2596
+ end
2597
+
2598
+ # @api private
2599
+ # @deprecated
2600
+ def waiter_names
2601
+ waiters.keys
2602
+ end
2603
+
2604
+ private
2605
+
2606
+ # @param [Symbol] waiter_name
2607
+ # @param [Hash] options ({})
2608
+ def waiter(waiter_name, options = {})
2609
+ waiter_class = waiters[waiter_name]
2610
+ if waiter_class
2611
+ waiter_class.new(options.merge(client: self))
2612
+ else
2613
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
2614
+ end
2615
+ end
2616
+
2617
+ def waiters
2618
+ {
2619
+ distribution_deployed: Waiters::DistributionDeployed,
2620
+ invalidation_completed: Waiters::InvalidationCompleted,
2621
+ streaming_distribution_deployed: Waiters::StreamingDistributionDeployed
2622
+ }
2623
+ end
2624
+
2625
+ class << self
2626
+
2627
+ # @api private
2628
+ attr_reader :identifier
2629
+
2630
+ # @api private
2631
+ def errors_module
2632
+ Errors
2633
+ end
2634
+
2635
+ end
2636
+ end
2637
+ end
2638
+ end