1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package cloudfront
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restxml"
14)
15
16const opAssociateAlias = "AssociateAlias2020_05_31"
17
18// AssociateAliasRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateAlias operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See AssociateAlias for more information on using the AssociateAlias
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the AssociateAliasRequest method.
34//    req, resp := client.AssociateAliasRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/AssociateAlias
42func (c *CloudFront) AssociateAliasRequest(input *AssociateAliasInput) (req *request.Request, output *AssociateAliasOutput) {
43	op := &request.Operation{
44		Name:       opAssociateAlias,
45		HTTPMethod: "PUT",
46		HTTPPath:   "/2020-05-31/distribution/{TargetDistributionId}/associate-alias",
47	}
48
49	if input == nil {
50		input = &AssociateAliasInput{}
51	}
52
53	output = &AssociateAliasOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AssociateAlias API operation for Amazon CloudFront.
60//
61// Associates an alias (also known as a CNAME or an alternate domain name) with
62// a CloudFront distribution.
63//
64// With this operation you can move an alias that’s already in use on a CloudFront
65// distribution to a different distribution in one step. This prevents the downtime
66// that could occur if you first remove the alias from one distribution and
67// then separately add the alias to another distribution.
68//
69// To use this operation to associate an alias with a distribution, you provide
70// the alias and the ID of the target distribution for the alias. For more information,
71// including how to set up the target distribution, prerequisites that you must
72// complete, and other restrictions, see Moving an alternate domain name to
73// a different distribution (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move)
74// in the Amazon CloudFront Developer Guide.
75//
76// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
77// with awserr.Error's Code and Message methods to get detailed information about
78// the error.
79//
80// See the AWS API reference guide for Amazon CloudFront's
81// API operation AssociateAlias for usage and error information.
82//
83// Returned Error Codes:
84//   * ErrCodeInvalidArgument "InvalidArgument"
85//   An argument is invalid.
86//
87//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
88//   The specified distribution does not exist.
89//
90//   * ErrCodeTooManyDistributionCNAMEs "TooManyDistributionCNAMEs"
91//   Your request contains more CNAMEs than are allowed per distribution.
92//
93//   * ErrCodeIllegalUpdate "IllegalUpdate"
94//   The update contains modifications that are not allowed.
95//
96//   * ErrCodeAccessDenied "AccessDenied"
97//   Access denied.
98//
99// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/AssociateAlias
100func (c *CloudFront) AssociateAlias(input *AssociateAliasInput) (*AssociateAliasOutput, error) {
101	req, out := c.AssociateAliasRequest(input)
102	return out, req.Send()
103}
104
105// AssociateAliasWithContext is the same as AssociateAlias with the addition of
106// the ability to pass a context and additional request options.
107//
108// See AssociateAlias for details on how to use this API operation.
109//
110// The context must be non-nil and will be used for request cancellation. If
111// the context is nil a panic will occur. In the future the SDK may create
112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
113// for more information on using Contexts.
114func (c *CloudFront) AssociateAliasWithContext(ctx aws.Context, input *AssociateAliasInput, opts ...request.Option) (*AssociateAliasOutput, error) {
115	req, out := c.AssociateAliasRequest(input)
116	req.SetContext(ctx)
117	req.ApplyOptions(opts...)
118	return out, req.Send()
119}
120
121const opCreateCachePolicy = "CreateCachePolicy2020_05_31"
122
123// CreateCachePolicyRequest generates a "aws/request.Request" representing the
124// client's request for the CreateCachePolicy operation. The "output" return
125// value will be populated with the request's response once the request completes
126// successfully.
127//
128// Use "Send" method on the returned Request to send the API call to the service.
129// the "output" return value is not valid until after Send returns without error.
130//
131// See CreateCachePolicy for more information on using the CreateCachePolicy
132// API call, and error handling.
133//
134// This method is useful when you want to inject custom logic or configuration
135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
136//
137//
138//    // Example sending a request using the CreateCachePolicyRequest method.
139//    req, resp := client.CreateCachePolicyRequest(params)
140//
141//    err := req.Send()
142//    if err == nil { // resp is now filled
143//        fmt.Println(resp)
144//    }
145//
146// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateCachePolicy
147func (c *CloudFront) CreateCachePolicyRequest(input *CreateCachePolicyInput) (req *request.Request, output *CreateCachePolicyOutput) {
148	op := &request.Operation{
149		Name:       opCreateCachePolicy,
150		HTTPMethod: "POST",
151		HTTPPath:   "/2020-05-31/cache-policy",
152	}
153
154	if input == nil {
155		input = &CreateCachePolicyInput{}
156	}
157
158	output = &CreateCachePolicyOutput{}
159	req = c.newRequest(op, input, output)
160	return
161}
162
163// CreateCachePolicy API operation for Amazon CloudFront.
164//
165// Creates a cache policy.
166//
167// After you create a cache policy, you can attach it to one or more cache behaviors.
168// When it’s attached to a cache behavior, the cache policy determines the
169// following:
170//
171//    * The values that CloudFront includes in the cache key. These values can
172//    include HTTP headers, cookies, and URL query strings. CloudFront uses
173//    the cache key to find an object in its cache that it can return to the
174//    viewer.
175//
176//    * The default, minimum, and maximum time to live (TTL) values that you
177//    want objects to stay in the CloudFront cache.
178//
179// The headers, cookies, and query strings that are included in the cache key
180// are automatically included in requests that CloudFront sends to the origin.
181// CloudFront sends a request when it can’t find an object in its cache that
182// matches the request’s cache key. If you want to send values to the origin
183// but not include them in the cache key, use OriginRequestPolicy.
184//
185// For more information about cache policies, see Controlling the cache key
186// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html)
187// in the Amazon CloudFront Developer Guide.
188//
189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
190// with awserr.Error's Code and Message methods to get detailed information about
191// the error.
192//
193// See the AWS API reference guide for Amazon CloudFront's
194// API operation CreateCachePolicy for usage and error information.
195//
196// Returned Error Codes:
197//   * ErrCodeAccessDenied "AccessDenied"
198//   Access denied.
199//
200//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
201//   The value of Quantity and the size of Items don't match.
202//
203//   * ErrCodeInvalidArgument "InvalidArgument"
204//   An argument is invalid.
205//
206//   * ErrCodeCachePolicyAlreadyExists "CachePolicyAlreadyExists"
207//   A cache policy with this name already exists. You must provide a unique name.
208//   To modify an existing cache policy, use UpdateCachePolicy.
209//
210//   * ErrCodeTooManyCachePolicies "TooManyCachePolicies"
211//   You have reached the maximum number of cache policies for this account. For
212//   more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
213//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
214//
215//   * ErrCodeTooManyHeadersInCachePolicy "TooManyHeadersInCachePolicy"
216//   The number of headers in the cache policy exceeds the maximum. For more information,
217//   see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
218//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
219//
220//   * ErrCodeTooManyCookiesInCachePolicy "TooManyCookiesInCachePolicy"
221//   The number of cookies in the cache policy exceeds the maximum. For more information,
222//   see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
223//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
224//
225//   * ErrCodeTooManyQueryStringsInCachePolicy "TooManyQueryStringsInCachePolicy"
226//   The number of query strings in the cache policy exceeds the maximum. For
227//   more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
228//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
229//
230// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateCachePolicy
231func (c *CloudFront) CreateCachePolicy(input *CreateCachePolicyInput) (*CreateCachePolicyOutput, error) {
232	req, out := c.CreateCachePolicyRequest(input)
233	return out, req.Send()
234}
235
236// CreateCachePolicyWithContext is the same as CreateCachePolicy with the addition of
237// the ability to pass a context and additional request options.
238//
239// See CreateCachePolicy for details on how to use this API operation.
240//
241// The context must be non-nil and will be used for request cancellation. If
242// the context is nil a panic will occur. In the future the SDK may create
243// sub-contexts for http.Requests. See https://golang.org/pkg/context/
244// for more information on using Contexts.
245func (c *CloudFront) CreateCachePolicyWithContext(ctx aws.Context, input *CreateCachePolicyInput, opts ...request.Option) (*CreateCachePolicyOutput, error) {
246	req, out := c.CreateCachePolicyRequest(input)
247	req.SetContext(ctx)
248	req.ApplyOptions(opts...)
249	return out, req.Send()
250}
251
252const opCreateCloudFrontOriginAccessIdentity = "CreateCloudFrontOriginAccessIdentity2020_05_31"
253
254// CreateCloudFrontOriginAccessIdentityRequest generates a "aws/request.Request" representing the
255// client's request for the CreateCloudFrontOriginAccessIdentity operation. The "output" return
256// value will be populated with the request's response once the request completes
257// successfully.
258//
259// Use "Send" method on the returned Request to send the API call to the service.
260// the "output" return value is not valid until after Send returns without error.
261//
262// See CreateCloudFrontOriginAccessIdentity for more information on using the CreateCloudFrontOriginAccessIdentity
263// API call, and error handling.
264//
265// This method is useful when you want to inject custom logic or configuration
266// into the SDK's request lifecycle. Such as custom headers, or retry logic.
267//
268//
269//    // Example sending a request using the CreateCloudFrontOriginAccessIdentityRequest method.
270//    req, resp := client.CreateCloudFrontOriginAccessIdentityRequest(params)
271//
272//    err := req.Send()
273//    if err == nil { // resp is now filled
274//        fmt.Println(resp)
275//    }
276//
277// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateCloudFrontOriginAccessIdentity
278func (c *CloudFront) CreateCloudFrontOriginAccessIdentityRequest(input *CreateCloudFrontOriginAccessIdentityInput) (req *request.Request, output *CreateCloudFrontOriginAccessIdentityOutput) {
279	op := &request.Operation{
280		Name:       opCreateCloudFrontOriginAccessIdentity,
281		HTTPMethod: "POST",
282		HTTPPath:   "/2020-05-31/origin-access-identity/cloudfront",
283	}
284
285	if input == nil {
286		input = &CreateCloudFrontOriginAccessIdentityInput{}
287	}
288
289	output = &CreateCloudFrontOriginAccessIdentityOutput{}
290	req = c.newRequest(op, input, output)
291	return
292}
293
294// CreateCloudFrontOriginAccessIdentity API operation for Amazon CloudFront.
295//
296// Creates a new origin access identity. If you're using Amazon S3 for your
297// origin, you can use an origin access identity to require users to access
298// your content using a CloudFront URL instead of the Amazon S3 URL. For more
299// information about how to use origin access identities, see Serving Private
300// Content through CloudFront (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html)
301// in the Amazon CloudFront Developer Guide.
302//
303// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
304// with awserr.Error's Code and Message methods to get detailed information about
305// the error.
306//
307// See the AWS API reference guide for Amazon CloudFront's
308// API operation CreateCloudFrontOriginAccessIdentity for usage and error information.
309//
310// Returned Error Codes:
311//   * ErrCodeOriginAccessIdentityAlreadyExists "CloudFrontOriginAccessIdentityAlreadyExists"
312//   If the CallerReference is a value you already sent in a previous request
313//   to create an identity but the content of the CloudFrontOriginAccessIdentityConfig
314//   is different from the original request, CloudFront returns a CloudFrontOriginAccessIdentityAlreadyExists
315//   error.
316//
317//   * ErrCodeMissingBody "MissingBody"
318//   This operation requires a body. Ensure that the body is present and the Content-Type
319//   header is set.
320//
321//   * ErrCodeTooManyCloudFrontOriginAccessIdentities "TooManyCloudFrontOriginAccessIdentities"
322//   Processing your request would cause you to exceed the maximum number of origin
323//   access identities allowed.
324//
325//   * ErrCodeInvalidArgument "InvalidArgument"
326//   An argument is invalid.
327//
328//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
329//   The value of Quantity and the size of Items don't match.
330//
331// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateCloudFrontOriginAccessIdentity
332func (c *CloudFront) CreateCloudFrontOriginAccessIdentity(input *CreateCloudFrontOriginAccessIdentityInput) (*CreateCloudFrontOriginAccessIdentityOutput, error) {
333	req, out := c.CreateCloudFrontOriginAccessIdentityRequest(input)
334	return out, req.Send()
335}
336
337// CreateCloudFrontOriginAccessIdentityWithContext is the same as CreateCloudFrontOriginAccessIdentity with the addition of
338// the ability to pass a context and additional request options.
339//
340// See CreateCloudFrontOriginAccessIdentity for details on how to use this API operation.
341//
342// The context must be non-nil and will be used for request cancellation. If
343// the context is nil a panic will occur. In the future the SDK may create
344// sub-contexts for http.Requests. See https://golang.org/pkg/context/
345// for more information on using Contexts.
346func (c *CloudFront) CreateCloudFrontOriginAccessIdentityWithContext(ctx aws.Context, input *CreateCloudFrontOriginAccessIdentityInput, opts ...request.Option) (*CreateCloudFrontOriginAccessIdentityOutput, error) {
347	req, out := c.CreateCloudFrontOriginAccessIdentityRequest(input)
348	req.SetContext(ctx)
349	req.ApplyOptions(opts...)
350	return out, req.Send()
351}
352
353const opCreateDistribution = "CreateDistribution2020_05_31"
354
355// CreateDistributionRequest generates a "aws/request.Request" representing the
356// client's request for the CreateDistribution operation. The "output" return
357// value will be populated with the request's response once the request completes
358// successfully.
359//
360// Use "Send" method on the returned Request to send the API call to the service.
361// the "output" return value is not valid until after Send returns without error.
362//
363// See CreateDistribution for more information on using the CreateDistribution
364// API call, and error handling.
365//
366// This method is useful when you want to inject custom logic or configuration
367// into the SDK's request lifecycle. Such as custom headers, or retry logic.
368//
369//
370//    // Example sending a request using the CreateDistributionRequest method.
371//    req, resp := client.CreateDistributionRequest(params)
372//
373//    err := req.Send()
374//    if err == nil { // resp is now filled
375//        fmt.Println(resp)
376//    }
377//
378// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateDistribution
379func (c *CloudFront) CreateDistributionRequest(input *CreateDistributionInput) (req *request.Request, output *CreateDistributionOutput) {
380	op := &request.Operation{
381		Name:       opCreateDistribution,
382		HTTPMethod: "POST",
383		HTTPPath:   "/2020-05-31/distribution",
384	}
385
386	if input == nil {
387		input = &CreateDistributionInput{}
388	}
389
390	output = &CreateDistributionOutput{}
391	req = c.newRequest(op, input, output)
392	return
393}
394
395// CreateDistribution API operation for Amazon CloudFront.
396//
397// Creates a new web distribution. You create a CloudFront distribution to tell
398// CloudFront where you want content to be delivered from, and the details about
399// how to track and manage content delivery. Send a POST request to the /CloudFront
400// API version/distribution/distribution ID resource.
401//
402// When you update a distribution, there are more required fields than when
403// you create a distribution. When you update your distribution by using UpdateDistribution
404// (https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html),
405// follow the steps included in the documentation to get the current configuration
406// and then make your updates. This helps to make sure that you include all
407// of the required fields. To view a summary, see Required Fields for Create
408// Distribution and Update Distribution (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-overview-required-fields.html)
409// in the Amazon CloudFront Developer Guide.
410//
411// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
412// with awserr.Error's Code and Message methods to get detailed information about
413// the error.
414//
415// See the AWS API reference guide for Amazon CloudFront's
416// API operation CreateDistribution for usage and error information.
417//
418// Returned Error Codes:
419//   * ErrCodeCNAMEAlreadyExists "CNAMEAlreadyExists"
420//   The CNAME specified is already defined for CloudFront.
421//
422//   * ErrCodeDistributionAlreadyExists "DistributionAlreadyExists"
423//   The caller reference you attempted to create the distribution with is associated
424//   with another distribution.
425//
426//   * ErrCodeInvalidOrigin "InvalidOrigin"
427//   The Amazon S3 origin server specified does not refer to a valid Amazon S3
428//   bucket.
429//
430//   * ErrCodeInvalidOriginAccessIdentity "InvalidOriginAccessIdentity"
431//   The origin access identity is not valid or doesn't exist.
432//
433//   * ErrCodeAccessDenied "AccessDenied"
434//   Access denied.
435//
436//   * ErrCodeTooManyTrustedSigners "TooManyTrustedSigners"
437//   Your request contains more trusted signers than are allowed per distribution.
438//
439//   * ErrCodeTrustedSignerDoesNotExist "TrustedSignerDoesNotExist"
440//   One or more of your trusted signers don't exist.
441//
442//   * ErrCodeInvalidViewerCertificate "InvalidViewerCertificate"
443//   A viewer certificate specified is not valid.
444//
445//   * ErrCodeInvalidMinimumProtocolVersion "InvalidMinimumProtocolVersion"
446//   The minimum protocol version specified is not valid.
447//
448//   * ErrCodeMissingBody "MissingBody"
449//   This operation requires a body. Ensure that the body is present and the Content-Type
450//   header is set.
451//
452//   * ErrCodeTooManyDistributionCNAMEs "TooManyDistributionCNAMEs"
453//   Your request contains more CNAMEs than are allowed per distribution.
454//
455//   * ErrCodeTooManyDistributions "TooManyDistributions"
456//   Processing your request would cause you to exceed the maximum number of distributions
457//   allowed.
458//
459//   * ErrCodeInvalidDefaultRootObject "InvalidDefaultRootObject"
460//   The default root object file name is too big or contains an invalid character.
461//
462//   * ErrCodeInvalidRelativePath "InvalidRelativePath"
463//   The relative path is too big, is not URL-encoded, or does not begin with
464//   a slash (/).
465//
466//   * ErrCodeInvalidErrorCode "InvalidErrorCode"
467//   An invalid error code was specified.
468//
469//   * ErrCodeInvalidResponseCode "InvalidResponseCode"
470//   A response code is not valid.
471//
472//   * ErrCodeInvalidArgument "InvalidArgument"
473//   An argument is invalid.
474//
475//   * ErrCodeInvalidRequiredProtocol "InvalidRequiredProtocol"
476//   This operation requires the HTTPS protocol. Ensure that you specify the HTTPS
477//   protocol in your request, or omit the RequiredProtocols element from your
478//   distribution configuration.
479//
480//   * ErrCodeNoSuchOrigin "NoSuchOrigin"
481//   No origin exists with the specified Origin Id.
482//
483//   * ErrCodeTooManyOrigins "TooManyOrigins"
484//   You cannot create more origins for the distribution.
485//
486//   * ErrCodeTooManyOriginGroupsPerDistribution "TooManyOriginGroupsPerDistribution"
487//   Processing your request would cause you to exceed the maximum number of origin
488//   groups allowed.
489//
490//   * ErrCodeTooManyCacheBehaviors "TooManyCacheBehaviors"
491//   You cannot create more cache behaviors for the distribution.
492//
493//   * ErrCodeTooManyCookieNamesInWhiteList "TooManyCookieNamesInWhiteList"
494//   Your request contains more cookie names in the whitelist than are allowed
495//   per cache behavior.
496//
497//   * ErrCodeInvalidForwardCookies "InvalidForwardCookies"
498//   Your request contains forward cookies option which doesn't match with the
499//   expectation for the whitelisted list of cookie names. Either list of cookie
500//   names has been specified when not allowed or list of cookie names is missing
501//   when expected.
502//
503//   * ErrCodeTooManyHeadersInForwardedValues "TooManyHeadersInForwardedValues"
504//   Your request contains too many headers in forwarded values.
505//
506//   * ErrCodeInvalidHeadersForS3Origin "InvalidHeadersForS3Origin"
507//   The headers specified are not valid for an Amazon S3 origin.
508//
509//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
510//   The value of Quantity and the size of Items don't match.
511//
512//   * ErrCodeTooManyCertificates "TooManyCertificates"
513//   You cannot create anymore custom SSL/TLS certificates.
514//
515//   * ErrCodeInvalidLocationCode "InvalidLocationCode"
516//   The location code specified is not valid.
517//
518//   * ErrCodeInvalidGeoRestrictionParameter "InvalidGeoRestrictionParameter"
519//   The specified geo restriction parameter is not valid.
520//
521//   * ErrCodeInvalidProtocolSettings "InvalidProtocolSettings"
522//   You cannot specify SSLv3 as the minimum protocol version if you only want
523//   to support only clients that support Server Name Indication (SNI).
524//
525//   * ErrCodeInvalidTTLOrder "InvalidTTLOrder"
526//   The TTL order specified is not valid.
527//
528//   * ErrCodeInvalidWebACLId "InvalidWebACLId"
529//   A web ACL ID specified is not valid. To specify a web ACL created using the
530//   latest version of WAF, use the ACL ARN, for example arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a.
531//   To specify a web ACL created using WAF Classic, use the ACL ID, for example
532//   473e64fd-f30b-4765-81a0-62ad96dd167a.
533//
534//   * ErrCodeTooManyOriginCustomHeaders "TooManyOriginCustomHeaders"
535//   Your request contains too many origin custom headers.
536//
537//   * ErrCodeTooManyQueryStringParameters "TooManyQueryStringParameters"
538//   Your request contains too many query string parameters.
539//
540//   * ErrCodeInvalidQueryStringParameters "InvalidQueryStringParameters"
541//   The query string parameters specified are not valid.
542//
543//   * ErrCodeTooManyDistributionsWithLambdaAssociations "TooManyDistributionsWithLambdaAssociations"
544//   Processing your request would cause the maximum number of distributions with
545//   Lambda@Edge function associations per owner to be exceeded.
546//
547//   * ErrCodeTooManyDistributionsWithSingleFunctionARN "TooManyDistributionsWithSingleFunctionARN"
548//   The maximum number of distributions have been associated with the specified
549//   Lambda@Edge function.
550//
551//   * ErrCodeTooManyLambdaFunctionAssociations "TooManyLambdaFunctionAssociations"
552//   Your request contains more Lambda@Edge function associations than are allowed
553//   per distribution.
554//
555//   * ErrCodeInvalidLambdaFunctionAssociation "InvalidLambdaFunctionAssociation"
556//   The specified Lambda@Edge function association is invalid.
557//
558//   * ErrCodeTooManyDistributionsWithFunctionAssociations "TooManyDistributionsWithFunctionAssociations"
559//   You have reached the maximum number of distributions that are associated
560//   with a CloudFront function. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
561//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
562//
563//   * ErrCodeTooManyFunctionAssociations "TooManyFunctionAssociations"
564//   You have reached the maximum number of CloudFront function associations for
565//   this distribution. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
566//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
567//
568//   * ErrCodeInvalidFunctionAssociation "InvalidFunctionAssociation"
569//   A CloudFront function association is invalid.
570//
571//   * ErrCodeInvalidOriginReadTimeout "InvalidOriginReadTimeout"
572//   The read timeout specified for the origin is not valid.
573//
574//   * ErrCodeInvalidOriginKeepaliveTimeout "InvalidOriginKeepaliveTimeout"
575//   The keep alive timeout specified for the origin is not valid.
576//
577//   * ErrCodeNoSuchFieldLevelEncryptionConfig "NoSuchFieldLevelEncryptionConfig"
578//   The specified configuration for field-level encryption doesn't exist.
579//
580//   * ErrCodeIllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior "IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior"
581//   The specified configuration for field-level encryption can't be associated
582//   with the specified cache behavior.
583//
584//   * ErrCodeTooManyDistributionsAssociatedToFieldLevelEncryptionConfig "TooManyDistributionsAssociatedToFieldLevelEncryptionConfig"
585//   The maximum number of distributions have been associated with the specified
586//   configuration for field-level encryption.
587//
588//   * ErrCodeNoSuchCachePolicy "NoSuchCachePolicy"
589//   The cache policy does not exist.
590//
591//   * ErrCodeTooManyDistributionsAssociatedToCachePolicy "TooManyDistributionsAssociatedToCachePolicy"
592//   The maximum number of distributions have been associated with the specified
593//   cache policy. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
594//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
595//
596//   * ErrCodeNoSuchOriginRequestPolicy "NoSuchOriginRequestPolicy"
597//   The origin request policy does not exist.
598//
599//   * ErrCodeTooManyDistributionsAssociatedToOriginRequestPolicy "TooManyDistributionsAssociatedToOriginRequestPolicy"
600//   The maximum number of distributions have been associated with the specified
601//   origin request policy. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
602//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
603//
604//   * ErrCodeTooManyDistributionsAssociatedToKeyGroup "TooManyDistributionsAssociatedToKeyGroup"
605//   The number of distributions that reference this key group is more than the
606//   maximum allowed. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
607//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
608//
609//   * ErrCodeTooManyKeyGroupsAssociatedToDistribution "TooManyKeyGroupsAssociatedToDistribution"
610//   The number of key groups referenced by this distribution is more than the
611//   maximum allowed. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
612//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
613//
614//   * ErrCodeTrustedKeyGroupDoesNotExist "TrustedKeyGroupDoesNotExist"
615//   The specified key group does not exist.
616//
617//   * ErrCodeNoSuchRealtimeLogConfig "NoSuchRealtimeLogConfig"
618//   The real-time log configuration does not exist.
619//
620//   * ErrCodeRealtimeLogConfigOwnerMismatch "RealtimeLogConfigOwnerMismatch"
621//   The specified real-time log configuration belongs to a different account.
622//
623// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateDistribution
624func (c *CloudFront) CreateDistribution(input *CreateDistributionInput) (*CreateDistributionOutput, error) {
625	req, out := c.CreateDistributionRequest(input)
626	return out, req.Send()
627}
628
629// CreateDistributionWithContext is the same as CreateDistribution with the addition of
630// the ability to pass a context and additional request options.
631//
632// See CreateDistribution for details on how to use this API operation.
633//
634// The context must be non-nil and will be used for request cancellation. If
635// the context is nil a panic will occur. In the future the SDK may create
636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
637// for more information on using Contexts.
638func (c *CloudFront) CreateDistributionWithContext(ctx aws.Context, input *CreateDistributionInput, opts ...request.Option) (*CreateDistributionOutput, error) {
639	req, out := c.CreateDistributionRequest(input)
640	req.SetContext(ctx)
641	req.ApplyOptions(opts...)
642	return out, req.Send()
643}
644
645const opCreateDistributionWithTags = "CreateDistributionWithTags2020_05_31"
646
647// CreateDistributionWithTagsRequest generates a "aws/request.Request" representing the
648// client's request for the CreateDistributionWithTags operation. The "output" return
649// value will be populated with the request's response once the request completes
650// successfully.
651//
652// Use "Send" method on the returned Request to send the API call to the service.
653// the "output" return value is not valid until after Send returns without error.
654//
655// See CreateDistributionWithTags for more information on using the CreateDistributionWithTags
656// API call, and error handling.
657//
658// This method is useful when you want to inject custom logic or configuration
659// into the SDK's request lifecycle. Such as custom headers, or retry logic.
660//
661//
662//    // Example sending a request using the CreateDistributionWithTagsRequest method.
663//    req, resp := client.CreateDistributionWithTagsRequest(params)
664//
665//    err := req.Send()
666//    if err == nil { // resp is now filled
667//        fmt.Println(resp)
668//    }
669//
670// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateDistributionWithTags
671func (c *CloudFront) CreateDistributionWithTagsRequest(input *CreateDistributionWithTagsInput) (req *request.Request, output *CreateDistributionWithTagsOutput) {
672	op := &request.Operation{
673		Name:       opCreateDistributionWithTags,
674		HTTPMethod: "POST",
675		HTTPPath:   "/2020-05-31/distribution?WithTags",
676	}
677
678	if input == nil {
679		input = &CreateDistributionWithTagsInput{}
680	}
681
682	output = &CreateDistributionWithTagsOutput{}
683	req = c.newRequest(op, input, output)
684	return
685}
686
687// CreateDistributionWithTags API operation for Amazon CloudFront.
688//
689// Create a new distribution with tags.
690//
691// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
692// with awserr.Error's Code and Message methods to get detailed information about
693// the error.
694//
695// See the AWS API reference guide for Amazon CloudFront's
696// API operation CreateDistributionWithTags for usage and error information.
697//
698// Returned Error Codes:
699//   * ErrCodeCNAMEAlreadyExists "CNAMEAlreadyExists"
700//   The CNAME specified is already defined for CloudFront.
701//
702//   * ErrCodeDistributionAlreadyExists "DistributionAlreadyExists"
703//   The caller reference you attempted to create the distribution with is associated
704//   with another distribution.
705//
706//   * ErrCodeInvalidOrigin "InvalidOrigin"
707//   The Amazon S3 origin server specified does not refer to a valid Amazon S3
708//   bucket.
709//
710//   * ErrCodeInvalidOriginAccessIdentity "InvalidOriginAccessIdentity"
711//   The origin access identity is not valid or doesn't exist.
712//
713//   * ErrCodeAccessDenied "AccessDenied"
714//   Access denied.
715//
716//   * ErrCodeTooManyTrustedSigners "TooManyTrustedSigners"
717//   Your request contains more trusted signers than are allowed per distribution.
718//
719//   * ErrCodeTrustedSignerDoesNotExist "TrustedSignerDoesNotExist"
720//   One or more of your trusted signers don't exist.
721//
722//   * ErrCodeInvalidViewerCertificate "InvalidViewerCertificate"
723//   A viewer certificate specified is not valid.
724//
725//   * ErrCodeInvalidMinimumProtocolVersion "InvalidMinimumProtocolVersion"
726//   The minimum protocol version specified is not valid.
727//
728//   * ErrCodeMissingBody "MissingBody"
729//   This operation requires a body. Ensure that the body is present and the Content-Type
730//   header is set.
731//
732//   * ErrCodeTooManyDistributionCNAMEs "TooManyDistributionCNAMEs"
733//   Your request contains more CNAMEs than are allowed per distribution.
734//
735//   * ErrCodeTooManyDistributions "TooManyDistributions"
736//   Processing your request would cause you to exceed the maximum number of distributions
737//   allowed.
738//
739//   * ErrCodeInvalidDefaultRootObject "InvalidDefaultRootObject"
740//   The default root object file name is too big or contains an invalid character.
741//
742//   * ErrCodeInvalidRelativePath "InvalidRelativePath"
743//   The relative path is too big, is not URL-encoded, or does not begin with
744//   a slash (/).
745//
746//   * ErrCodeInvalidErrorCode "InvalidErrorCode"
747//   An invalid error code was specified.
748//
749//   * ErrCodeInvalidResponseCode "InvalidResponseCode"
750//   A response code is not valid.
751//
752//   * ErrCodeInvalidArgument "InvalidArgument"
753//   An argument is invalid.
754//
755//   * ErrCodeInvalidRequiredProtocol "InvalidRequiredProtocol"
756//   This operation requires the HTTPS protocol. Ensure that you specify the HTTPS
757//   protocol in your request, or omit the RequiredProtocols element from your
758//   distribution configuration.
759//
760//   * ErrCodeNoSuchOrigin "NoSuchOrigin"
761//   No origin exists with the specified Origin Id.
762//
763//   * ErrCodeTooManyOrigins "TooManyOrigins"
764//   You cannot create more origins for the distribution.
765//
766//   * ErrCodeTooManyOriginGroupsPerDistribution "TooManyOriginGroupsPerDistribution"
767//   Processing your request would cause you to exceed the maximum number of origin
768//   groups allowed.
769//
770//   * ErrCodeTooManyCacheBehaviors "TooManyCacheBehaviors"
771//   You cannot create more cache behaviors for the distribution.
772//
773//   * ErrCodeTooManyCookieNamesInWhiteList "TooManyCookieNamesInWhiteList"
774//   Your request contains more cookie names in the whitelist than are allowed
775//   per cache behavior.
776//
777//   * ErrCodeInvalidForwardCookies "InvalidForwardCookies"
778//   Your request contains forward cookies option which doesn't match with the
779//   expectation for the whitelisted list of cookie names. Either list of cookie
780//   names has been specified when not allowed or list of cookie names is missing
781//   when expected.
782//
783//   * ErrCodeTooManyHeadersInForwardedValues "TooManyHeadersInForwardedValues"
784//   Your request contains too many headers in forwarded values.
785//
786//   * ErrCodeInvalidHeadersForS3Origin "InvalidHeadersForS3Origin"
787//   The headers specified are not valid for an Amazon S3 origin.
788//
789//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
790//   The value of Quantity and the size of Items don't match.
791//
792//   * ErrCodeTooManyCertificates "TooManyCertificates"
793//   You cannot create anymore custom SSL/TLS certificates.
794//
795//   * ErrCodeInvalidLocationCode "InvalidLocationCode"
796//   The location code specified is not valid.
797//
798//   * ErrCodeInvalidGeoRestrictionParameter "InvalidGeoRestrictionParameter"
799//   The specified geo restriction parameter is not valid.
800//
801//   * ErrCodeInvalidProtocolSettings "InvalidProtocolSettings"
802//   You cannot specify SSLv3 as the minimum protocol version if you only want
803//   to support only clients that support Server Name Indication (SNI).
804//
805//   * ErrCodeInvalidTTLOrder "InvalidTTLOrder"
806//   The TTL order specified is not valid.
807//
808//   * ErrCodeInvalidWebACLId "InvalidWebACLId"
809//   A web ACL ID specified is not valid. To specify a web ACL created using the
810//   latest version of WAF, use the ACL ARN, for example arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a.
811//   To specify a web ACL created using WAF Classic, use the ACL ID, for example
812//   473e64fd-f30b-4765-81a0-62ad96dd167a.
813//
814//   * ErrCodeTooManyOriginCustomHeaders "TooManyOriginCustomHeaders"
815//   Your request contains too many origin custom headers.
816//
817//   * ErrCodeInvalidTagging "InvalidTagging"
818//   The tagging specified is not valid.
819//
820//   * ErrCodeTooManyQueryStringParameters "TooManyQueryStringParameters"
821//   Your request contains too many query string parameters.
822//
823//   * ErrCodeInvalidQueryStringParameters "InvalidQueryStringParameters"
824//   The query string parameters specified are not valid.
825//
826//   * ErrCodeTooManyDistributionsWithLambdaAssociations "TooManyDistributionsWithLambdaAssociations"
827//   Processing your request would cause the maximum number of distributions with
828//   Lambda@Edge function associations per owner to be exceeded.
829//
830//   * ErrCodeTooManyDistributionsWithSingleFunctionARN "TooManyDistributionsWithSingleFunctionARN"
831//   The maximum number of distributions have been associated with the specified
832//   Lambda@Edge function.
833//
834//   * ErrCodeTooManyLambdaFunctionAssociations "TooManyLambdaFunctionAssociations"
835//   Your request contains more Lambda@Edge function associations than are allowed
836//   per distribution.
837//
838//   * ErrCodeInvalidLambdaFunctionAssociation "InvalidLambdaFunctionAssociation"
839//   The specified Lambda@Edge function association is invalid.
840//
841//   * ErrCodeTooManyDistributionsWithFunctionAssociations "TooManyDistributionsWithFunctionAssociations"
842//   You have reached the maximum number of distributions that are associated
843//   with a CloudFront function. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
844//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
845//
846//   * ErrCodeTooManyFunctionAssociations "TooManyFunctionAssociations"
847//   You have reached the maximum number of CloudFront function associations for
848//   this distribution. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
849//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
850//
851//   * ErrCodeInvalidFunctionAssociation "InvalidFunctionAssociation"
852//   A CloudFront function association is invalid.
853//
854//   * ErrCodeInvalidOriginReadTimeout "InvalidOriginReadTimeout"
855//   The read timeout specified for the origin is not valid.
856//
857//   * ErrCodeInvalidOriginKeepaliveTimeout "InvalidOriginKeepaliveTimeout"
858//   The keep alive timeout specified for the origin is not valid.
859//
860//   * ErrCodeNoSuchFieldLevelEncryptionConfig "NoSuchFieldLevelEncryptionConfig"
861//   The specified configuration for field-level encryption doesn't exist.
862//
863//   * ErrCodeIllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior "IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior"
864//   The specified configuration for field-level encryption can't be associated
865//   with the specified cache behavior.
866//
867//   * ErrCodeTooManyDistributionsAssociatedToFieldLevelEncryptionConfig "TooManyDistributionsAssociatedToFieldLevelEncryptionConfig"
868//   The maximum number of distributions have been associated with the specified
869//   configuration for field-level encryption.
870//
871//   * ErrCodeNoSuchCachePolicy "NoSuchCachePolicy"
872//   The cache policy does not exist.
873//
874//   * ErrCodeTooManyDistributionsAssociatedToCachePolicy "TooManyDistributionsAssociatedToCachePolicy"
875//   The maximum number of distributions have been associated with the specified
876//   cache policy. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
877//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
878//
879//   * ErrCodeNoSuchOriginRequestPolicy "NoSuchOriginRequestPolicy"
880//   The origin request policy does not exist.
881//
882//   * ErrCodeTooManyDistributionsAssociatedToOriginRequestPolicy "TooManyDistributionsAssociatedToOriginRequestPolicy"
883//   The maximum number of distributions have been associated with the specified
884//   origin request policy. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
885//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
886//
887//   * ErrCodeTooManyDistributionsAssociatedToKeyGroup "TooManyDistributionsAssociatedToKeyGroup"
888//   The number of distributions that reference this key group is more than the
889//   maximum allowed. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
890//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
891//
892//   * ErrCodeTooManyKeyGroupsAssociatedToDistribution "TooManyKeyGroupsAssociatedToDistribution"
893//   The number of key groups referenced by this distribution is more than the
894//   maximum allowed. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
895//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
896//
897//   * ErrCodeTrustedKeyGroupDoesNotExist "TrustedKeyGroupDoesNotExist"
898//   The specified key group does not exist.
899//
900//   * ErrCodeNoSuchRealtimeLogConfig "NoSuchRealtimeLogConfig"
901//   The real-time log configuration does not exist.
902//
903//   * ErrCodeRealtimeLogConfigOwnerMismatch "RealtimeLogConfigOwnerMismatch"
904//   The specified real-time log configuration belongs to a different account.
905//
906// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateDistributionWithTags
907func (c *CloudFront) CreateDistributionWithTags(input *CreateDistributionWithTagsInput) (*CreateDistributionWithTagsOutput, error) {
908	req, out := c.CreateDistributionWithTagsRequest(input)
909	return out, req.Send()
910}
911
912// CreateDistributionWithTagsWithContext is the same as CreateDistributionWithTags with the addition of
913// the ability to pass a context and additional request options.
914//
915// See CreateDistributionWithTags for details on how to use this API operation.
916//
917// The context must be non-nil and will be used for request cancellation. If
918// the context is nil a panic will occur. In the future the SDK may create
919// sub-contexts for http.Requests. See https://golang.org/pkg/context/
920// for more information on using Contexts.
921func (c *CloudFront) CreateDistributionWithTagsWithContext(ctx aws.Context, input *CreateDistributionWithTagsInput, opts ...request.Option) (*CreateDistributionWithTagsOutput, error) {
922	req, out := c.CreateDistributionWithTagsRequest(input)
923	req.SetContext(ctx)
924	req.ApplyOptions(opts...)
925	return out, req.Send()
926}
927
928const opCreateFieldLevelEncryptionConfig = "CreateFieldLevelEncryptionConfig2020_05_31"
929
930// CreateFieldLevelEncryptionConfigRequest generates a "aws/request.Request" representing the
931// client's request for the CreateFieldLevelEncryptionConfig operation. The "output" return
932// value will be populated with the request's response once the request completes
933// successfully.
934//
935// Use "Send" method on the returned Request to send the API call to the service.
936// the "output" return value is not valid until after Send returns without error.
937//
938// See CreateFieldLevelEncryptionConfig for more information on using the CreateFieldLevelEncryptionConfig
939// API call, and error handling.
940//
941// This method is useful when you want to inject custom logic or configuration
942// into the SDK's request lifecycle. Such as custom headers, or retry logic.
943//
944//
945//    // Example sending a request using the CreateFieldLevelEncryptionConfigRequest method.
946//    req, resp := client.CreateFieldLevelEncryptionConfigRequest(params)
947//
948//    err := req.Send()
949//    if err == nil { // resp is now filled
950//        fmt.Println(resp)
951//    }
952//
953// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateFieldLevelEncryptionConfig
954func (c *CloudFront) CreateFieldLevelEncryptionConfigRequest(input *CreateFieldLevelEncryptionConfigInput) (req *request.Request, output *CreateFieldLevelEncryptionConfigOutput) {
955	op := &request.Operation{
956		Name:       opCreateFieldLevelEncryptionConfig,
957		HTTPMethod: "POST",
958		HTTPPath:   "/2020-05-31/field-level-encryption",
959	}
960
961	if input == nil {
962		input = &CreateFieldLevelEncryptionConfigInput{}
963	}
964
965	output = &CreateFieldLevelEncryptionConfigOutput{}
966	req = c.newRequest(op, input, output)
967	return
968}
969
970// CreateFieldLevelEncryptionConfig API operation for Amazon CloudFront.
971//
972// Create a new field-level encryption configuration.
973//
974// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
975// with awserr.Error's Code and Message methods to get detailed information about
976// the error.
977//
978// See the AWS API reference guide for Amazon CloudFront's
979// API operation CreateFieldLevelEncryptionConfig for usage and error information.
980//
981// Returned Error Codes:
982//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
983//   The value of Quantity and the size of Items don't match.
984//
985//   * ErrCodeInvalidArgument "InvalidArgument"
986//   An argument is invalid.
987//
988//   * ErrCodeNoSuchFieldLevelEncryptionProfile "NoSuchFieldLevelEncryptionProfile"
989//   The specified profile for field-level encryption doesn't exist.
990//
991//   * ErrCodeFieldLevelEncryptionConfigAlreadyExists "FieldLevelEncryptionConfigAlreadyExists"
992//   The specified configuration for field-level encryption already exists.
993//
994//   * ErrCodeTooManyFieldLevelEncryptionConfigs "TooManyFieldLevelEncryptionConfigs"
995//   The maximum number of configurations for field-level encryption have been
996//   created.
997//
998//   * ErrCodeTooManyFieldLevelEncryptionQueryArgProfiles "TooManyFieldLevelEncryptionQueryArgProfiles"
999//   The maximum number of query arg profiles for field-level encryption have
1000//   been created.
1001//
1002//   * ErrCodeTooManyFieldLevelEncryptionContentTypeProfiles "TooManyFieldLevelEncryptionContentTypeProfiles"
1003//   The maximum number of content type profiles for field-level encryption have
1004//   been created.
1005//
1006//   * ErrCodeQueryArgProfileEmpty "QueryArgProfileEmpty"
1007//   No profile specified for the field-level encryption query argument.
1008//
1009// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateFieldLevelEncryptionConfig
1010func (c *CloudFront) CreateFieldLevelEncryptionConfig(input *CreateFieldLevelEncryptionConfigInput) (*CreateFieldLevelEncryptionConfigOutput, error) {
1011	req, out := c.CreateFieldLevelEncryptionConfigRequest(input)
1012	return out, req.Send()
1013}
1014
1015// CreateFieldLevelEncryptionConfigWithContext is the same as CreateFieldLevelEncryptionConfig with the addition of
1016// the ability to pass a context and additional request options.
1017//
1018// See CreateFieldLevelEncryptionConfig for details on how to use this API operation.
1019//
1020// The context must be non-nil and will be used for request cancellation. If
1021// the context is nil a panic will occur. In the future the SDK may create
1022// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1023// for more information on using Contexts.
1024func (c *CloudFront) CreateFieldLevelEncryptionConfigWithContext(ctx aws.Context, input *CreateFieldLevelEncryptionConfigInput, opts ...request.Option) (*CreateFieldLevelEncryptionConfigOutput, error) {
1025	req, out := c.CreateFieldLevelEncryptionConfigRequest(input)
1026	req.SetContext(ctx)
1027	req.ApplyOptions(opts...)
1028	return out, req.Send()
1029}
1030
1031const opCreateFieldLevelEncryptionProfile = "CreateFieldLevelEncryptionProfile2020_05_31"
1032
1033// CreateFieldLevelEncryptionProfileRequest generates a "aws/request.Request" representing the
1034// client's request for the CreateFieldLevelEncryptionProfile operation. The "output" return
1035// value will be populated with the request's response once the request completes
1036// successfully.
1037//
1038// Use "Send" method on the returned Request to send the API call to the service.
1039// the "output" return value is not valid until after Send returns without error.
1040//
1041// See CreateFieldLevelEncryptionProfile for more information on using the CreateFieldLevelEncryptionProfile
1042// API call, and error handling.
1043//
1044// This method is useful when you want to inject custom logic or configuration
1045// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1046//
1047//
1048//    // Example sending a request using the CreateFieldLevelEncryptionProfileRequest method.
1049//    req, resp := client.CreateFieldLevelEncryptionProfileRequest(params)
1050//
1051//    err := req.Send()
1052//    if err == nil { // resp is now filled
1053//        fmt.Println(resp)
1054//    }
1055//
1056// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateFieldLevelEncryptionProfile
1057func (c *CloudFront) CreateFieldLevelEncryptionProfileRequest(input *CreateFieldLevelEncryptionProfileInput) (req *request.Request, output *CreateFieldLevelEncryptionProfileOutput) {
1058	op := &request.Operation{
1059		Name:       opCreateFieldLevelEncryptionProfile,
1060		HTTPMethod: "POST",
1061		HTTPPath:   "/2020-05-31/field-level-encryption-profile",
1062	}
1063
1064	if input == nil {
1065		input = &CreateFieldLevelEncryptionProfileInput{}
1066	}
1067
1068	output = &CreateFieldLevelEncryptionProfileOutput{}
1069	req = c.newRequest(op, input, output)
1070	return
1071}
1072
1073// CreateFieldLevelEncryptionProfile API operation for Amazon CloudFront.
1074//
1075// Create a field-level encryption profile.
1076//
1077// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1078// with awserr.Error's Code and Message methods to get detailed information about
1079// the error.
1080//
1081// See the AWS API reference guide for Amazon CloudFront's
1082// API operation CreateFieldLevelEncryptionProfile for usage and error information.
1083//
1084// Returned Error Codes:
1085//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
1086//   The value of Quantity and the size of Items don't match.
1087//
1088//   * ErrCodeInvalidArgument "InvalidArgument"
1089//   An argument is invalid.
1090//
1091//   * ErrCodeNoSuchPublicKey "NoSuchPublicKey"
1092//   The specified public key doesn't exist.
1093//
1094//   * ErrCodeFieldLevelEncryptionProfileAlreadyExists "FieldLevelEncryptionProfileAlreadyExists"
1095//   The specified profile for field-level encryption already exists.
1096//
1097//   * ErrCodeFieldLevelEncryptionProfileSizeExceeded "FieldLevelEncryptionProfileSizeExceeded"
1098//   The maximum size of a profile for field-level encryption was exceeded.
1099//
1100//   * ErrCodeTooManyFieldLevelEncryptionProfiles "TooManyFieldLevelEncryptionProfiles"
1101//   The maximum number of profiles for field-level encryption have been created.
1102//
1103//   * ErrCodeTooManyFieldLevelEncryptionEncryptionEntities "TooManyFieldLevelEncryptionEncryptionEntities"
1104//   The maximum number of encryption entities for field-level encryption have
1105//   been created.
1106//
1107//   * ErrCodeTooManyFieldLevelEncryptionFieldPatterns "TooManyFieldLevelEncryptionFieldPatterns"
1108//   The maximum number of field patterns for field-level encryption have been
1109//   created.
1110//
1111// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateFieldLevelEncryptionProfile
1112func (c *CloudFront) CreateFieldLevelEncryptionProfile(input *CreateFieldLevelEncryptionProfileInput) (*CreateFieldLevelEncryptionProfileOutput, error) {
1113	req, out := c.CreateFieldLevelEncryptionProfileRequest(input)
1114	return out, req.Send()
1115}
1116
1117// CreateFieldLevelEncryptionProfileWithContext is the same as CreateFieldLevelEncryptionProfile with the addition of
1118// the ability to pass a context and additional request options.
1119//
1120// See CreateFieldLevelEncryptionProfile for details on how to use this API operation.
1121//
1122// The context must be non-nil and will be used for request cancellation. If
1123// the context is nil a panic will occur. In the future the SDK may create
1124// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1125// for more information on using Contexts.
1126func (c *CloudFront) CreateFieldLevelEncryptionProfileWithContext(ctx aws.Context, input *CreateFieldLevelEncryptionProfileInput, opts ...request.Option) (*CreateFieldLevelEncryptionProfileOutput, error) {
1127	req, out := c.CreateFieldLevelEncryptionProfileRequest(input)
1128	req.SetContext(ctx)
1129	req.ApplyOptions(opts...)
1130	return out, req.Send()
1131}
1132
1133const opCreateFunction = "CreateFunction2020_05_31"
1134
1135// CreateFunctionRequest generates a "aws/request.Request" representing the
1136// client's request for the CreateFunction operation. The "output" return
1137// value will be populated with the request's response once the request completes
1138// successfully.
1139//
1140// Use "Send" method on the returned Request to send the API call to the service.
1141// the "output" return value is not valid until after Send returns without error.
1142//
1143// See CreateFunction for more information on using the CreateFunction
1144// API call, and error handling.
1145//
1146// This method is useful when you want to inject custom logic or configuration
1147// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1148//
1149//
1150//    // Example sending a request using the CreateFunctionRequest method.
1151//    req, resp := client.CreateFunctionRequest(params)
1152//
1153//    err := req.Send()
1154//    if err == nil { // resp is now filled
1155//        fmt.Println(resp)
1156//    }
1157//
1158// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateFunction
1159func (c *CloudFront) CreateFunctionRequest(input *CreateFunctionInput) (req *request.Request, output *CreateFunctionOutput) {
1160	op := &request.Operation{
1161		Name:       opCreateFunction,
1162		HTTPMethod: "POST",
1163		HTTPPath:   "/2020-05-31/function",
1164	}
1165
1166	if input == nil {
1167		input = &CreateFunctionInput{}
1168	}
1169
1170	output = &CreateFunctionOutput{}
1171	req = c.newRequest(op, input, output)
1172	return
1173}
1174
1175// CreateFunction API operation for Amazon CloudFront.
1176//
1177// Creates a CloudFront function.
1178//
1179// To create a function, you provide the function code and some configuration
1180// information about the function. The response contains an Amazon Resource
1181// Name (ARN) that uniquely identifies the function.
1182//
1183// When you create a function, it’s in the DEVELOPMENT stage. In this stage,
1184// you can test the function with TestFunction, and update it with UpdateFunction.
1185//
1186// When you’re ready to use your function with a CloudFront distribution,
1187// use PublishFunction to copy the function from the DEVELOPMENT stage to LIVE.
1188// When it’s live, you can attach the function to a distribution’s cache
1189// behavior, using the function’s ARN.
1190//
1191// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1192// with awserr.Error's Code and Message methods to get detailed information about
1193// the error.
1194//
1195// See the AWS API reference guide for Amazon CloudFront's
1196// API operation CreateFunction for usage and error information.
1197//
1198// Returned Error Codes:
1199//   * ErrCodeTooManyFunctions "TooManyFunctions"
1200//   You have reached the maximum number of CloudFront functions for this account.
1201//   For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
1202//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
1203//
1204//   * ErrCodeFunctionAlreadyExists "FunctionAlreadyExists"
1205//   A function with the same name already exists in this account. To create a
1206//   function, you must provide a unique name. To update an existing function,
1207//   use UpdateFunction.
1208//
1209//   * ErrCodeFunctionSizeLimitExceeded "FunctionSizeLimitExceeded"
1210//   The function is too large. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
1211//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
1212//
1213//   * ErrCodeInvalidArgument "InvalidArgument"
1214//   An argument is invalid.
1215//
1216//   * ErrCodeUnsupportedOperation "UnsupportedOperation"
1217//   This operation is not supported in this region.
1218//
1219// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateFunction
1220func (c *CloudFront) CreateFunction(input *CreateFunctionInput) (*CreateFunctionOutput, error) {
1221	req, out := c.CreateFunctionRequest(input)
1222	return out, req.Send()
1223}
1224
1225// CreateFunctionWithContext is the same as CreateFunction with the addition of
1226// the ability to pass a context and additional request options.
1227//
1228// See CreateFunction for details on how to use this API operation.
1229//
1230// The context must be non-nil and will be used for request cancellation. If
1231// the context is nil a panic will occur. In the future the SDK may create
1232// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1233// for more information on using Contexts.
1234func (c *CloudFront) CreateFunctionWithContext(ctx aws.Context, input *CreateFunctionInput, opts ...request.Option) (*CreateFunctionOutput, error) {
1235	req, out := c.CreateFunctionRequest(input)
1236	req.SetContext(ctx)
1237	req.ApplyOptions(opts...)
1238	return out, req.Send()
1239}
1240
1241const opCreateInvalidation = "CreateInvalidation2020_05_31"
1242
1243// CreateInvalidationRequest generates a "aws/request.Request" representing the
1244// client's request for the CreateInvalidation operation. The "output" return
1245// value will be populated with the request's response once the request completes
1246// successfully.
1247//
1248// Use "Send" method on the returned Request to send the API call to the service.
1249// the "output" return value is not valid until after Send returns without error.
1250//
1251// See CreateInvalidation for more information on using the CreateInvalidation
1252// API call, and error handling.
1253//
1254// This method is useful when you want to inject custom logic or configuration
1255// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1256//
1257//
1258//    // Example sending a request using the CreateInvalidationRequest method.
1259//    req, resp := client.CreateInvalidationRequest(params)
1260//
1261//    err := req.Send()
1262//    if err == nil { // resp is now filled
1263//        fmt.Println(resp)
1264//    }
1265//
1266// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateInvalidation
1267func (c *CloudFront) CreateInvalidationRequest(input *CreateInvalidationInput) (req *request.Request, output *CreateInvalidationOutput) {
1268	op := &request.Operation{
1269		Name:       opCreateInvalidation,
1270		HTTPMethod: "POST",
1271		HTTPPath:   "/2020-05-31/distribution/{DistributionId}/invalidation",
1272	}
1273
1274	if input == nil {
1275		input = &CreateInvalidationInput{}
1276	}
1277
1278	output = &CreateInvalidationOutput{}
1279	req = c.newRequest(op, input, output)
1280	return
1281}
1282
1283// CreateInvalidation API operation for Amazon CloudFront.
1284//
1285// Create a new invalidation.
1286//
1287// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1288// with awserr.Error's Code and Message methods to get detailed information about
1289// the error.
1290//
1291// See the AWS API reference guide for Amazon CloudFront's
1292// API operation CreateInvalidation for usage and error information.
1293//
1294// Returned Error Codes:
1295//   * ErrCodeAccessDenied "AccessDenied"
1296//   Access denied.
1297//
1298//   * ErrCodeMissingBody "MissingBody"
1299//   This operation requires a body. Ensure that the body is present and the Content-Type
1300//   header is set.
1301//
1302//   * ErrCodeInvalidArgument "InvalidArgument"
1303//   An argument is invalid.
1304//
1305//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
1306//   The specified distribution does not exist.
1307//
1308//   * ErrCodeBatchTooLarge "BatchTooLarge"
1309//   Invalidation batch specified is too large.
1310//
1311//   * ErrCodeTooManyInvalidationsInProgress "TooManyInvalidationsInProgress"
1312//   You have exceeded the maximum number of allowable InProgress invalidation
1313//   batch requests, or invalidation objects.
1314//
1315//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
1316//   The value of Quantity and the size of Items don't match.
1317//
1318// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateInvalidation
1319func (c *CloudFront) CreateInvalidation(input *CreateInvalidationInput) (*CreateInvalidationOutput, error) {
1320	req, out := c.CreateInvalidationRequest(input)
1321	return out, req.Send()
1322}
1323
1324// CreateInvalidationWithContext is the same as CreateInvalidation with the addition of
1325// the ability to pass a context and additional request options.
1326//
1327// See CreateInvalidation for details on how to use this API operation.
1328//
1329// The context must be non-nil and will be used for request cancellation. If
1330// the context is nil a panic will occur. In the future the SDK may create
1331// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1332// for more information on using Contexts.
1333func (c *CloudFront) CreateInvalidationWithContext(ctx aws.Context, input *CreateInvalidationInput, opts ...request.Option) (*CreateInvalidationOutput, error) {
1334	req, out := c.CreateInvalidationRequest(input)
1335	req.SetContext(ctx)
1336	req.ApplyOptions(opts...)
1337	return out, req.Send()
1338}
1339
1340const opCreateKeyGroup = "CreateKeyGroup2020_05_31"
1341
1342// CreateKeyGroupRequest generates a "aws/request.Request" representing the
1343// client's request for the CreateKeyGroup operation. The "output" return
1344// value will be populated with the request's response once the request completes
1345// successfully.
1346//
1347// Use "Send" method on the returned Request to send the API call to the service.
1348// the "output" return value is not valid until after Send returns without error.
1349//
1350// See CreateKeyGroup for more information on using the CreateKeyGroup
1351// API call, and error handling.
1352//
1353// This method is useful when you want to inject custom logic or configuration
1354// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1355//
1356//
1357//    // Example sending a request using the CreateKeyGroupRequest method.
1358//    req, resp := client.CreateKeyGroupRequest(params)
1359//
1360//    err := req.Send()
1361//    if err == nil { // resp is now filled
1362//        fmt.Println(resp)
1363//    }
1364//
1365// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateKeyGroup
1366func (c *CloudFront) CreateKeyGroupRequest(input *CreateKeyGroupInput) (req *request.Request, output *CreateKeyGroupOutput) {
1367	op := &request.Operation{
1368		Name:       opCreateKeyGroup,
1369		HTTPMethod: "POST",
1370		HTTPPath:   "/2020-05-31/key-group",
1371	}
1372
1373	if input == nil {
1374		input = &CreateKeyGroupInput{}
1375	}
1376
1377	output = &CreateKeyGroupOutput{}
1378	req = c.newRequest(op, input, output)
1379	return
1380}
1381
1382// CreateKeyGroup API operation for Amazon CloudFront.
1383//
1384// Creates a key group that you can use with CloudFront signed URLs and signed
1385// cookies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html).
1386//
1387// To create a key group, you must specify at least one public key for the key
1388// group. After you create a key group, you can reference it from one or more
1389// cache behaviors. When you reference a key group in a cache behavior, CloudFront
1390// requires signed URLs or signed cookies for all requests that match the cache
1391// behavior. The URLs or cookies must be signed with a private key whose corresponding
1392// public key is in the key group. The signed URL or cookie contains information
1393// about which public key CloudFront should use to verify the signature. For
1394// more information, see Serving private content (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html)
1395// in the Amazon CloudFront Developer Guide.
1396//
1397// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1398// with awserr.Error's Code and Message methods to get detailed information about
1399// the error.
1400//
1401// See the AWS API reference guide for Amazon CloudFront's
1402// API operation CreateKeyGroup for usage and error information.
1403//
1404// Returned Error Codes:
1405//   * ErrCodeInvalidArgument "InvalidArgument"
1406//   An argument is invalid.
1407//
1408//   * ErrCodeKeyGroupAlreadyExists "KeyGroupAlreadyExists"
1409//   A key group with this name already exists. You must provide a unique name.
1410//   To modify an existing key group, use UpdateKeyGroup.
1411//
1412//   * ErrCodeTooManyKeyGroups "TooManyKeyGroups"
1413//   You have reached the maximum number of key groups for this account. For more
1414//   information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
1415//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
1416//
1417//   * ErrCodeTooManyPublicKeysInKeyGroup "TooManyPublicKeysInKeyGroup"
1418//   The number of public keys in this key group is more than the maximum allowed.
1419//   For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
1420//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
1421//
1422// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateKeyGroup
1423func (c *CloudFront) CreateKeyGroup(input *CreateKeyGroupInput) (*CreateKeyGroupOutput, error) {
1424	req, out := c.CreateKeyGroupRequest(input)
1425	return out, req.Send()
1426}
1427
1428// CreateKeyGroupWithContext is the same as CreateKeyGroup with the addition of
1429// the ability to pass a context and additional request options.
1430//
1431// See CreateKeyGroup for details on how to use this API operation.
1432//
1433// The context must be non-nil and will be used for request cancellation. If
1434// the context is nil a panic will occur. In the future the SDK may create
1435// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1436// for more information on using Contexts.
1437func (c *CloudFront) CreateKeyGroupWithContext(ctx aws.Context, input *CreateKeyGroupInput, opts ...request.Option) (*CreateKeyGroupOutput, error) {
1438	req, out := c.CreateKeyGroupRequest(input)
1439	req.SetContext(ctx)
1440	req.ApplyOptions(opts...)
1441	return out, req.Send()
1442}
1443
1444const opCreateMonitoringSubscription = "CreateMonitoringSubscription2020_05_31"
1445
1446// CreateMonitoringSubscriptionRequest generates a "aws/request.Request" representing the
1447// client's request for the CreateMonitoringSubscription operation. The "output" return
1448// value will be populated with the request's response once the request completes
1449// successfully.
1450//
1451// Use "Send" method on the returned Request to send the API call to the service.
1452// the "output" return value is not valid until after Send returns without error.
1453//
1454// See CreateMonitoringSubscription for more information on using the CreateMonitoringSubscription
1455// API call, and error handling.
1456//
1457// This method is useful when you want to inject custom logic or configuration
1458// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1459//
1460//
1461//    // Example sending a request using the CreateMonitoringSubscriptionRequest method.
1462//    req, resp := client.CreateMonitoringSubscriptionRequest(params)
1463//
1464//    err := req.Send()
1465//    if err == nil { // resp is now filled
1466//        fmt.Println(resp)
1467//    }
1468//
1469// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateMonitoringSubscription
1470func (c *CloudFront) CreateMonitoringSubscriptionRequest(input *CreateMonitoringSubscriptionInput) (req *request.Request, output *CreateMonitoringSubscriptionOutput) {
1471	op := &request.Operation{
1472		Name:       opCreateMonitoringSubscription,
1473		HTTPMethod: "POST",
1474		HTTPPath:   "/2020-05-31/distributions/{DistributionId}/monitoring-subscription",
1475	}
1476
1477	if input == nil {
1478		input = &CreateMonitoringSubscriptionInput{}
1479	}
1480
1481	output = &CreateMonitoringSubscriptionOutput{}
1482	req = c.newRequest(op, input, output)
1483	return
1484}
1485
1486// CreateMonitoringSubscription API operation for Amazon CloudFront.
1487//
1488// Enables additional CloudWatch metrics for the specified CloudFront distribution.
1489// The additional metrics incur an additional cost.
1490//
1491// For more information, see Viewing additional CloudFront distribution metrics
1492// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/viewing-cloudfront-metrics.html#monitoring-console.distributions-additional)
1493// in the Amazon CloudFront Developer Guide.
1494//
1495// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1496// with awserr.Error's Code and Message methods to get detailed information about
1497// the error.
1498//
1499// See the AWS API reference guide for Amazon CloudFront's
1500// API operation CreateMonitoringSubscription for usage and error information.
1501//
1502// Returned Error Codes:
1503//   * ErrCodeAccessDenied "AccessDenied"
1504//   Access denied.
1505//
1506//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
1507//   The specified distribution does not exist.
1508//
1509//   * ErrCodeUnsupportedOperation "UnsupportedOperation"
1510//   This operation is not supported in this region.
1511//
1512// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateMonitoringSubscription
1513func (c *CloudFront) CreateMonitoringSubscription(input *CreateMonitoringSubscriptionInput) (*CreateMonitoringSubscriptionOutput, error) {
1514	req, out := c.CreateMonitoringSubscriptionRequest(input)
1515	return out, req.Send()
1516}
1517
1518// CreateMonitoringSubscriptionWithContext is the same as CreateMonitoringSubscription with the addition of
1519// the ability to pass a context and additional request options.
1520//
1521// See CreateMonitoringSubscription for details on how to use this API operation.
1522//
1523// The context must be non-nil and will be used for request cancellation. If
1524// the context is nil a panic will occur. In the future the SDK may create
1525// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1526// for more information on using Contexts.
1527func (c *CloudFront) CreateMonitoringSubscriptionWithContext(ctx aws.Context, input *CreateMonitoringSubscriptionInput, opts ...request.Option) (*CreateMonitoringSubscriptionOutput, error) {
1528	req, out := c.CreateMonitoringSubscriptionRequest(input)
1529	req.SetContext(ctx)
1530	req.ApplyOptions(opts...)
1531	return out, req.Send()
1532}
1533
1534const opCreateOriginRequestPolicy = "CreateOriginRequestPolicy2020_05_31"
1535
1536// CreateOriginRequestPolicyRequest generates a "aws/request.Request" representing the
1537// client's request for the CreateOriginRequestPolicy operation. The "output" return
1538// value will be populated with the request's response once the request completes
1539// successfully.
1540//
1541// Use "Send" method on the returned Request to send the API call to the service.
1542// the "output" return value is not valid until after Send returns without error.
1543//
1544// See CreateOriginRequestPolicy for more information on using the CreateOriginRequestPolicy
1545// API call, and error handling.
1546//
1547// This method is useful when you want to inject custom logic or configuration
1548// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1549//
1550//
1551//    // Example sending a request using the CreateOriginRequestPolicyRequest method.
1552//    req, resp := client.CreateOriginRequestPolicyRequest(params)
1553//
1554//    err := req.Send()
1555//    if err == nil { // resp is now filled
1556//        fmt.Println(resp)
1557//    }
1558//
1559// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateOriginRequestPolicy
1560func (c *CloudFront) CreateOriginRequestPolicyRequest(input *CreateOriginRequestPolicyInput) (req *request.Request, output *CreateOriginRequestPolicyOutput) {
1561	op := &request.Operation{
1562		Name:       opCreateOriginRequestPolicy,
1563		HTTPMethod: "POST",
1564		HTTPPath:   "/2020-05-31/origin-request-policy",
1565	}
1566
1567	if input == nil {
1568		input = &CreateOriginRequestPolicyInput{}
1569	}
1570
1571	output = &CreateOriginRequestPolicyOutput{}
1572	req = c.newRequest(op, input, output)
1573	return
1574}
1575
1576// CreateOriginRequestPolicy API operation for Amazon CloudFront.
1577//
1578// Creates an origin request policy.
1579//
1580// After you create an origin request policy, you can attach it to one or more
1581// cache behaviors. When it’s attached to a cache behavior, the origin request
1582// policy determines the values that CloudFront includes in requests that it
1583// sends to the origin. Each request that CloudFront sends to the origin includes
1584// the following:
1585//
1586//    * The request body and the URL path (without the domain name) from the
1587//    viewer request.
1588//
1589//    * The headers that CloudFront automatically includes in every origin request,
1590//    including Host, User-Agent, and X-Amz-Cf-Id.
1591//
1592//    * All HTTP headers, cookies, and URL query strings that are specified
1593//    in the cache policy or the origin request policy. These can include items
1594//    from the viewer request and, in the case of headers, additional ones that
1595//    are added by CloudFront.
1596//
1597// CloudFront sends a request when it can’t find a valid object in its cache
1598// that matches the request. If you want to send values to the origin and also
1599// include them in the cache key, use CachePolicy.
1600//
1601// For more information about origin request policies, see Controlling origin
1602// requests (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html)
1603// in the Amazon CloudFront Developer Guide.
1604//
1605// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1606// with awserr.Error's Code and Message methods to get detailed information about
1607// the error.
1608//
1609// See the AWS API reference guide for Amazon CloudFront's
1610// API operation CreateOriginRequestPolicy for usage and error information.
1611//
1612// Returned Error Codes:
1613//   * ErrCodeAccessDenied "AccessDenied"
1614//   Access denied.
1615//
1616//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
1617//   The value of Quantity and the size of Items don't match.
1618//
1619//   * ErrCodeInvalidArgument "InvalidArgument"
1620//   An argument is invalid.
1621//
1622//   * ErrCodeOriginRequestPolicyAlreadyExists "OriginRequestPolicyAlreadyExists"
1623//   An origin request policy with this name already exists. You must provide
1624//   a unique name. To modify an existing origin request policy, use UpdateOriginRequestPolicy.
1625//
1626//   * ErrCodeTooManyOriginRequestPolicies "TooManyOriginRequestPolicies"
1627//   You have reached the maximum number of origin request policies for this account.
1628//   For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
1629//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
1630//
1631//   * ErrCodeTooManyHeadersInOriginRequestPolicy "TooManyHeadersInOriginRequestPolicy"
1632//   The number of headers in the origin request policy exceeds the maximum. For
1633//   more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
1634//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
1635//
1636//   * ErrCodeTooManyCookiesInOriginRequestPolicy "TooManyCookiesInOriginRequestPolicy"
1637//   The number of cookies in the origin request policy exceeds the maximum. For
1638//   more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
1639//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
1640//
1641//   * ErrCodeTooManyQueryStringsInOriginRequestPolicy "TooManyQueryStringsInOriginRequestPolicy"
1642//   The number of query strings in the origin request policy exceeds the maximum.
1643//   For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
1644//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
1645//
1646// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateOriginRequestPolicy
1647func (c *CloudFront) CreateOriginRequestPolicy(input *CreateOriginRequestPolicyInput) (*CreateOriginRequestPolicyOutput, error) {
1648	req, out := c.CreateOriginRequestPolicyRequest(input)
1649	return out, req.Send()
1650}
1651
1652// CreateOriginRequestPolicyWithContext is the same as CreateOriginRequestPolicy with the addition of
1653// the ability to pass a context and additional request options.
1654//
1655// See CreateOriginRequestPolicy for details on how to use this API operation.
1656//
1657// The context must be non-nil and will be used for request cancellation. If
1658// the context is nil a panic will occur. In the future the SDK may create
1659// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1660// for more information on using Contexts.
1661func (c *CloudFront) CreateOriginRequestPolicyWithContext(ctx aws.Context, input *CreateOriginRequestPolicyInput, opts ...request.Option) (*CreateOriginRequestPolicyOutput, error) {
1662	req, out := c.CreateOriginRequestPolicyRequest(input)
1663	req.SetContext(ctx)
1664	req.ApplyOptions(opts...)
1665	return out, req.Send()
1666}
1667
1668const opCreatePublicKey = "CreatePublicKey2020_05_31"
1669
1670// CreatePublicKeyRequest generates a "aws/request.Request" representing the
1671// client's request for the CreatePublicKey operation. The "output" return
1672// value will be populated with the request's response once the request completes
1673// successfully.
1674//
1675// Use "Send" method on the returned Request to send the API call to the service.
1676// the "output" return value is not valid until after Send returns without error.
1677//
1678// See CreatePublicKey for more information on using the CreatePublicKey
1679// API call, and error handling.
1680//
1681// This method is useful when you want to inject custom logic or configuration
1682// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1683//
1684//
1685//    // Example sending a request using the CreatePublicKeyRequest method.
1686//    req, resp := client.CreatePublicKeyRequest(params)
1687//
1688//    err := req.Send()
1689//    if err == nil { // resp is now filled
1690//        fmt.Println(resp)
1691//    }
1692//
1693// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreatePublicKey
1694func (c *CloudFront) CreatePublicKeyRequest(input *CreatePublicKeyInput) (req *request.Request, output *CreatePublicKeyOutput) {
1695	op := &request.Operation{
1696		Name:       opCreatePublicKey,
1697		HTTPMethod: "POST",
1698		HTTPPath:   "/2020-05-31/public-key",
1699	}
1700
1701	if input == nil {
1702		input = &CreatePublicKeyInput{}
1703	}
1704
1705	output = &CreatePublicKeyOutput{}
1706	req = c.newRequest(op, input, output)
1707	return
1708}
1709
1710// CreatePublicKey API operation for Amazon CloudFront.
1711//
1712// Uploads a public key to CloudFront that you can use with signed URLs and
1713// signed cookies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html),
1714// or with field-level encryption (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).
1715//
1716// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1717// with awserr.Error's Code and Message methods to get detailed information about
1718// the error.
1719//
1720// See the AWS API reference guide for Amazon CloudFront's
1721// API operation CreatePublicKey for usage and error information.
1722//
1723// Returned Error Codes:
1724//   * ErrCodePublicKeyAlreadyExists "PublicKeyAlreadyExists"
1725//   The specified public key already exists.
1726//
1727//   * ErrCodeInvalidArgument "InvalidArgument"
1728//   An argument is invalid.
1729//
1730//   * ErrCodeTooManyPublicKeys "TooManyPublicKeys"
1731//   The maximum number of public keys for field-level encryption have been created.
1732//   To create a new public key, delete one of the existing keys.
1733//
1734// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreatePublicKey
1735func (c *CloudFront) CreatePublicKey(input *CreatePublicKeyInput) (*CreatePublicKeyOutput, error) {
1736	req, out := c.CreatePublicKeyRequest(input)
1737	return out, req.Send()
1738}
1739
1740// CreatePublicKeyWithContext is the same as CreatePublicKey with the addition of
1741// the ability to pass a context and additional request options.
1742//
1743// See CreatePublicKey for details on how to use this API operation.
1744//
1745// The context must be non-nil and will be used for request cancellation. If
1746// the context is nil a panic will occur. In the future the SDK may create
1747// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1748// for more information on using Contexts.
1749func (c *CloudFront) CreatePublicKeyWithContext(ctx aws.Context, input *CreatePublicKeyInput, opts ...request.Option) (*CreatePublicKeyOutput, error) {
1750	req, out := c.CreatePublicKeyRequest(input)
1751	req.SetContext(ctx)
1752	req.ApplyOptions(opts...)
1753	return out, req.Send()
1754}
1755
1756const opCreateRealtimeLogConfig = "CreateRealtimeLogConfig2020_05_31"
1757
1758// CreateRealtimeLogConfigRequest generates a "aws/request.Request" representing the
1759// client's request for the CreateRealtimeLogConfig operation. The "output" return
1760// value will be populated with the request's response once the request completes
1761// successfully.
1762//
1763// Use "Send" method on the returned Request to send the API call to the service.
1764// the "output" return value is not valid until after Send returns without error.
1765//
1766// See CreateRealtimeLogConfig for more information on using the CreateRealtimeLogConfig
1767// API call, and error handling.
1768//
1769// This method is useful when you want to inject custom logic or configuration
1770// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1771//
1772//
1773//    // Example sending a request using the CreateRealtimeLogConfigRequest method.
1774//    req, resp := client.CreateRealtimeLogConfigRequest(params)
1775//
1776//    err := req.Send()
1777//    if err == nil { // resp is now filled
1778//        fmt.Println(resp)
1779//    }
1780//
1781// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateRealtimeLogConfig
1782func (c *CloudFront) CreateRealtimeLogConfigRequest(input *CreateRealtimeLogConfigInput) (req *request.Request, output *CreateRealtimeLogConfigOutput) {
1783	op := &request.Operation{
1784		Name:       opCreateRealtimeLogConfig,
1785		HTTPMethod: "POST",
1786		HTTPPath:   "/2020-05-31/realtime-log-config",
1787	}
1788
1789	if input == nil {
1790		input = &CreateRealtimeLogConfigInput{}
1791	}
1792
1793	output = &CreateRealtimeLogConfigOutput{}
1794	req = c.newRequest(op, input, output)
1795	return
1796}
1797
1798// CreateRealtimeLogConfig API operation for Amazon CloudFront.
1799//
1800// Creates a real-time log configuration.
1801//
1802// After you create a real-time log configuration, you can attach it to one
1803// or more cache behaviors to send real-time log data to the specified Amazon
1804// Kinesis data stream.
1805//
1806// For more information about real-time log configurations, see Real-time logs
1807// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html)
1808// in the Amazon CloudFront Developer Guide.
1809//
1810// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1811// with awserr.Error's Code and Message methods to get detailed information about
1812// the error.
1813//
1814// See the AWS API reference guide for Amazon CloudFront's
1815// API operation CreateRealtimeLogConfig for usage and error information.
1816//
1817// Returned Error Codes:
1818//   * ErrCodeRealtimeLogConfigAlreadyExists "RealtimeLogConfigAlreadyExists"
1819//   A real-time log configuration with this name already exists. You must provide
1820//   a unique name. To modify an existing real-time log configuration, use UpdateRealtimeLogConfig.
1821//
1822//   * ErrCodeTooManyRealtimeLogConfigs "TooManyRealtimeLogConfigs"
1823//   You have reached the maximum number of real-time log configurations for this
1824//   account. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
1825//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
1826//
1827//   * ErrCodeInvalidArgument "InvalidArgument"
1828//   An argument is invalid.
1829//
1830//   * ErrCodeAccessDenied "AccessDenied"
1831//   Access denied.
1832//
1833// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateRealtimeLogConfig
1834func (c *CloudFront) CreateRealtimeLogConfig(input *CreateRealtimeLogConfigInput) (*CreateRealtimeLogConfigOutput, error) {
1835	req, out := c.CreateRealtimeLogConfigRequest(input)
1836	return out, req.Send()
1837}
1838
1839// CreateRealtimeLogConfigWithContext is the same as CreateRealtimeLogConfig with the addition of
1840// the ability to pass a context and additional request options.
1841//
1842// See CreateRealtimeLogConfig for details on how to use this API operation.
1843//
1844// The context must be non-nil and will be used for request cancellation. If
1845// the context is nil a panic will occur. In the future the SDK may create
1846// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1847// for more information on using Contexts.
1848func (c *CloudFront) CreateRealtimeLogConfigWithContext(ctx aws.Context, input *CreateRealtimeLogConfigInput, opts ...request.Option) (*CreateRealtimeLogConfigOutput, error) {
1849	req, out := c.CreateRealtimeLogConfigRequest(input)
1850	req.SetContext(ctx)
1851	req.ApplyOptions(opts...)
1852	return out, req.Send()
1853}
1854
1855const opCreateStreamingDistribution = "CreateStreamingDistribution2020_05_31"
1856
1857// CreateStreamingDistributionRequest generates a "aws/request.Request" representing the
1858// client's request for the CreateStreamingDistribution operation. The "output" return
1859// value will be populated with the request's response once the request completes
1860// successfully.
1861//
1862// Use "Send" method on the returned Request to send the API call to the service.
1863// the "output" return value is not valid until after Send returns without error.
1864//
1865// See CreateStreamingDistribution for more information on using the CreateStreamingDistribution
1866// API call, and error handling.
1867//
1868// This method is useful when you want to inject custom logic or configuration
1869// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1870//
1871//
1872//    // Example sending a request using the CreateStreamingDistributionRequest method.
1873//    req, resp := client.CreateStreamingDistributionRequest(params)
1874//
1875//    err := req.Send()
1876//    if err == nil { // resp is now filled
1877//        fmt.Println(resp)
1878//    }
1879//
1880// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateStreamingDistribution
1881func (c *CloudFront) CreateStreamingDistributionRequest(input *CreateStreamingDistributionInput) (req *request.Request, output *CreateStreamingDistributionOutput) {
1882	op := &request.Operation{
1883		Name:       opCreateStreamingDistribution,
1884		HTTPMethod: "POST",
1885		HTTPPath:   "/2020-05-31/streaming-distribution",
1886	}
1887
1888	if input == nil {
1889		input = &CreateStreamingDistributionInput{}
1890	}
1891
1892	output = &CreateStreamingDistributionOutput{}
1893	req = c.newRequest(op, input, output)
1894	return
1895}
1896
1897// CreateStreamingDistribution API operation for Amazon CloudFront.
1898//
1899// This API is deprecated. Amazon CloudFront is deprecating real-time messaging
1900// protocol (RTMP) distributions on December 31, 2020. For more information,
1901// read the announcement (http://forums.aws.amazon.com/ann.jspa?annID=7356)
1902// on the Amazon CloudFront discussion forum.
1903//
1904// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1905// with awserr.Error's Code and Message methods to get detailed information about
1906// the error.
1907//
1908// See the AWS API reference guide for Amazon CloudFront's
1909// API operation CreateStreamingDistribution for usage and error information.
1910//
1911// Returned Error Codes:
1912//   * ErrCodeCNAMEAlreadyExists "CNAMEAlreadyExists"
1913//   The CNAME specified is already defined for CloudFront.
1914//
1915//   * ErrCodeStreamingDistributionAlreadyExists "StreamingDistributionAlreadyExists"
1916//   The caller reference you attempted to create the streaming distribution with
1917//   is associated with another distribution
1918//
1919//   * ErrCodeInvalidOrigin "InvalidOrigin"
1920//   The Amazon S3 origin server specified does not refer to a valid Amazon S3
1921//   bucket.
1922//
1923//   * ErrCodeInvalidOriginAccessIdentity "InvalidOriginAccessIdentity"
1924//   The origin access identity is not valid or doesn't exist.
1925//
1926//   * ErrCodeAccessDenied "AccessDenied"
1927//   Access denied.
1928//
1929//   * ErrCodeTooManyTrustedSigners "TooManyTrustedSigners"
1930//   Your request contains more trusted signers than are allowed per distribution.
1931//
1932//   * ErrCodeTrustedSignerDoesNotExist "TrustedSignerDoesNotExist"
1933//   One or more of your trusted signers don't exist.
1934//
1935//   * ErrCodeMissingBody "MissingBody"
1936//   This operation requires a body. Ensure that the body is present and the Content-Type
1937//   header is set.
1938//
1939//   * ErrCodeTooManyStreamingDistributionCNAMEs "TooManyStreamingDistributionCNAMEs"
1940//   Your request contains more CNAMEs than are allowed per distribution.
1941//
1942//   * ErrCodeTooManyStreamingDistributions "TooManyStreamingDistributions"
1943//   Processing your request would cause you to exceed the maximum number of streaming
1944//   distributions allowed.
1945//
1946//   * ErrCodeInvalidArgument "InvalidArgument"
1947//   An argument is invalid.
1948//
1949//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
1950//   The value of Quantity and the size of Items don't match.
1951//
1952// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateStreamingDistribution
1953func (c *CloudFront) CreateStreamingDistribution(input *CreateStreamingDistributionInput) (*CreateStreamingDistributionOutput, error) {
1954	req, out := c.CreateStreamingDistributionRequest(input)
1955	return out, req.Send()
1956}
1957
1958// CreateStreamingDistributionWithContext is the same as CreateStreamingDistribution with the addition of
1959// the ability to pass a context and additional request options.
1960//
1961// See CreateStreamingDistribution for details on how to use this API operation.
1962//
1963// The context must be non-nil and will be used for request cancellation. If
1964// the context is nil a panic will occur. In the future the SDK may create
1965// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1966// for more information on using Contexts.
1967func (c *CloudFront) CreateStreamingDistributionWithContext(ctx aws.Context, input *CreateStreamingDistributionInput, opts ...request.Option) (*CreateStreamingDistributionOutput, error) {
1968	req, out := c.CreateStreamingDistributionRequest(input)
1969	req.SetContext(ctx)
1970	req.ApplyOptions(opts...)
1971	return out, req.Send()
1972}
1973
1974const opCreateStreamingDistributionWithTags = "CreateStreamingDistributionWithTags2020_05_31"
1975
1976// CreateStreamingDistributionWithTagsRequest generates a "aws/request.Request" representing the
1977// client's request for the CreateStreamingDistributionWithTags operation. The "output" return
1978// value will be populated with the request's response once the request completes
1979// successfully.
1980//
1981// Use "Send" method on the returned Request to send the API call to the service.
1982// the "output" return value is not valid until after Send returns without error.
1983//
1984// See CreateStreamingDistributionWithTags for more information on using the CreateStreamingDistributionWithTags
1985// API call, and error handling.
1986//
1987// This method is useful when you want to inject custom logic or configuration
1988// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1989//
1990//
1991//    // Example sending a request using the CreateStreamingDistributionWithTagsRequest method.
1992//    req, resp := client.CreateStreamingDistributionWithTagsRequest(params)
1993//
1994//    err := req.Send()
1995//    if err == nil { // resp is now filled
1996//        fmt.Println(resp)
1997//    }
1998//
1999// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateStreamingDistributionWithTags
2000func (c *CloudFront) CreateStreamingDistributionWithTagsRequest(input *CreateStreamingDistributionWithTagsInput) (req *request.Request, output *CreateStreamingDistributionWithTagsOutput) {
2001	op := &request.Operation{
2002		Name:       opCreateStreamingDistributionWithTags,
2003		HTTPMethod: "POST",
2004		HTTPPath:   "/2020-05-31/streaming-distribution?WithTags",
2005	}
2006
2007	if input == nil {
2008		input = &CreateStreamingDistributionWithTagsInput{}
2009	}
2010
2011	output = &CreateStreamingDistributionWithTagsOutput{}
2012	req = c.newRequest(op, input, output)
2013	return
2014}
2015
2016// CreateStreamingDistributionWithTags API operation for Amazon CloudFront.
2017//
2018// This API is deprecated. Amazon CloudFront is deprecating real-time messaging
2019// protocol (RTMP) distributions on December 31, 2020. For more information,
2020// read the announcement (http://forums.aws.amazon.com/ann.jspa?annID=7356)
2021// on the Amazon CloudFront discussion forum.
2022//
2023// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2024// with awserr.Error's Code and Message methods to get detailed information about
2025// the error.
2026//
2027// See the AWS API reference guide for Amazon CloudFront's
2028// API operation CreateStreamingDistributionWithTags for usage and error information.
2029//
2030// Returned Error Codes:
2031//   * ErrCodeCNAMEAlreadyExists "CNAMEAlreadyExists"
2032//   The CNAME specified is already defined for CloudFront.
2033//
2034//   * ErrCodeStreamingDistributionAlreadyExists "StreamingDistributionAlreadyExists"
2035//   The caller reference you attempted to create the streaming distribution with
2036//   is associated with another distribution
2037//
2038//   * ErrCodeInvalidOrigin "InvalidOrigin"
2039//   The Amazon S3 origin server specified does not refer to a valid Amazon S3
2040//   bucket.
2041//
2042//   * ErrCodeInvalidOriginAccessIdentity "InvalidOriginAccessIdentity"
2043//   The origin access identity is not valid or doesn't exist.
2044//
2045//   * ErrCodeAccessDenied "AccessDenied"
2046//   Access denied.
2047//
2048//   * ErrCodeTooManyTrustedSigners "TooManyTrustedSigners"
2049//   Your request contains more trusted signers than are allowed per distribution.
2050//
2051//   * ErrCodeTrustedSignerDoesNotExist "TrustedSignerDoesNotExist"
2052//   One or more of your trusted signers don't exist.
2053//
2054//   * ErrCodeMissingBody "MissingBody"
2055//   This operation requires a body. Ensure that the body is present and the Content-Type
2056//   header is set.
2057//
2058//   * ErrCodeTooManyStreamingDistributionCNAMEs "TooManyStreamingDistributionCNAMEs"
2059//   Your request contains more CNAMEs than are allowed per distribution.
2060//
2061//   * ErrCodeTooManyStreamingDistributions "TooManyStreamingDistributions"
2062//   Processing your request would cause you to exceed the maximum number of streaming
2063//   distributions allowed.
2064//
2065//   * ErrCodeInvalidArgument "InvalidArgument"
2066//   An argument is invalid.
2067//
2068//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
2069//   The value of Quantity and the size of Items don't match.
2070//
2071//   * ErrCodeInvalidTagging "InvalidTagging"
2072//   The tagging specified is not valid.
2073//
2074// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateStreamingDistributionWithTags
2075func (c *CloudFront) CreateStreamingDistributionWithTags(input *CreateStreamingDistributionWithTagsInput) (*CreateStreamingDistributionWithTagsOutput, error) {
2076	req, out := c.CreateStreamingDistributionWithTagsRequest(input)
2077	return out, req.Send()
2078}
2079
2080// CreateStreamingDistributionWithTagsWithContext is the same as CreateStreamingDistributionWithTags with the addition of
2081// the ability to pass a context and additional request options.
2082//
2083// See CreateStreamingDistributionWithTags for details on how to use this API operation.
2084//
2085// The context must be non-nil and will be used for request cancellation. If
2086// the context is nil a panic will occur. In the future the SDK may create
2087// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2088// for more information on using Contexts.
2089func (c *CloudFront) CreateStreamingDistributionWithTagsWithContext(ctx aws.Context, input *CreateStreamingDistributionWithTagsInput, opts ...request.Option) (*CreateStreamingDistributionWithTagsOutput, error) {
2090	req, out := c.CreateStreamingDistributionWithTagsRequest(input)
2091	req.SetContext(ctx)
2092	req.ApplyOptions(opts...)
2093	return out, req.Send()
2094}
2095
2096const opDeleteCachePolicy = "DeleteCachePolicy2020_05_31"
2097
2098// DeleteCachePolicyRequest generates a "aws/request.Request" representing the
2099// client's request for the DeleteCachePolicy operation. The "output" return
2100// value will be populated with the request's response once the request completes
2101// successfully.
2102//
2103// Use "Send" method on the returned Request to send the API call to the service.
2104// the "output" return value is not valid until after Send returns without error.
2105//
2106// See DeleteCachePolicy for more information on using the DeleteCachePolicy
2107// API call, and error handling.
2108//
2109// This method is useful when you want to inject custom logic or configuration
2110// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2111//
2112//
2113//    // Example sending a request using the DeleteCachePolicyRequest method.
2114//    req, resp := client.DeleteCachePolicyRequest(params)
2115//
2116//    err := req.Send()
2117//    if err == nil { // resp is now filled
2118//        fmt.Println(resp)
2119//    }
2120//
2121// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteCachePolicy
2122func (c *CloudFront) DeleteCachePolicyRequest(input *DeleteCachePolicyInput) (req *request.Request, output *DeleteCachePolicyOutput) {
2123	op := &request.Operation{
2124		Name:       opDeleteCachePolicy,
2125		HTTPMethod: "DELETE",
2126		HTTPPath:   "/2020-05-31/cache-policy/{Id}",
2127	}
2128
2129	if input == nil {
2130		input = &DeleteCachePolicyInput{}
2131	}
2132
2133	output = &DeleteCachePolicyOutput{}
2134	req = c.newRequest(op, input, output)
2135	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2136	return
2137}
2138
2139// DeleteCachePolicy API operation for Amazon CloudFront.
2140//
2141// Deletes a cache policy.
2142//
2143// You cannot delete a cache policy if it’s attached to a cache behavior.
2144// First update your distributions to remove the cache policy from all cache
2145// behaviors, then delete the cache policy.
2146//
2147// To delete a cache policy, you must provide the policy’s identifier and
2148// version. To get these values, you can use ListCachePolicies or GetCachePolicy.
2149//
2150// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2151// with awserr.Error's Code and Message methods to get detailed information about
2152// the error.
2153//
2154// See the AWS API reference guide for Amazon CloudFront's
2155// API operation DeleteCachePolicy for usage and error information.
2156//
2157// Returned Error Codes:
2158//   * ErrCodeAccessDenied "AccessDenied"
2159//   Access denied.
2160//
2161//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
2162//   The If-Match version is missing or not valid.
2163//
2164//   * ErrCodeNoSuchCachePolicy "NoSuchCachePolicy"
2165//   The cache policy does not exist.
2166//
2167//   * ErrCodePreconditionFailed "PreconditionFailed"
2168//   The precondition in one or more of the request fields evaluated to false.
2169//
2170//   * ErrCodeIllegalDelete "IllegalDelete"
2171//   You cannot delete a managed policy.
2172//
2173//   * ErrCodeCachePolicyInUse "CachePolicyInUse"
2174//   Cannot delete the cache policy because it is attached to one or more cache
2175//   behaviors.
2176//
2177// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteCachePolicy
2178func (c *CloudFront) DeleteCachePolicy(input *DeleteCachePolicyInput) (*DeleteCachePolicyOutput, error) {
2179	req, out := c.DeleteCachePolicyRequest(input)
2180	return out, req.Send()
2181}
2182
2183// DeleteCachePolicyWithContext is the same as DeleteCachePolicy with the addition of
2184// the ability to pass a context and additional request options.
2185//
2186// See DeleteCachePolicy for details on how to use this API operation.
2187//
2188// The context must be non-nil and will be used for request cancellation. If
2189// the context is nil a panic will occur. In the future the SDK may create
2190// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2191// for more information on using Contexts.
2192func (c *CloudFront) DeleteCachePolicyWithContext(ctx aws.Context, input *DeleteCachePolicyInput, opts ...request.Option) (*DeleteCachePolicyOutput, error) {
2193	req, out := c.DeleteCachePolicyRequest(input)
2194	req.SetContext(ctx)
2195	req.ApplyOptions(opts...)
2196	return out, req.Send()
2197}
2198
2199const opDeleteCloudFrontOriginAccessIdentity = "DeleteCloudFrontOriginAccessIdentity2020_05_31"
2200
2201// DeleteCloudFrontOriginAccessIdentityRequest generates a "aws/request.Request" representing the
2202// client's request for the DeleteCloudFrontOriginAccessIdentity operation. The "output" return
2203// value will be populated with the request's response once the request completes
2204// successfully.
2205//
2206// Use "Send" method on the returned Request to send the API call to the service.
2207// the "output" return value is not valid until after Send returns without error.
2208//
2209// See DeleteCloudFrontOriginAccessIdentity for more information on using the DeleteCloudFrontOriginAccessIdentity
2210// API call, and error handling.
2211//
2212// This method is useful when you want to inject custom logic or configuration
2213// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2214//
2215//
2216//    // Example sending a request using the DeleteCloudFrontOriginAccessIdentityRequest method.
2217//    req, resp := client.DeleteCloudFrontOriginAccessIdentityRequest(params)
2218//
2219//    err := req.Send()
2220//    if err == nil { // resp is now filled
2221//        fmt.Println(resp)
2222//    }
2223//
2224// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteCloudFrontOriginAccessIdentity
2225func (c *CloudFront) DeleteCloudFrontOriginAccessIdentityRequest(input *DeleteCloudFrontOriginAccessIdentityInput) (req *request.Request, output *DeleteCloudFrontOriginAccessIdentityOutput) {
2226	op := &request.Operation{
2227		Name:       opDeleteCloudFrontOriginAccessIdentity,
2228		HTTPMethod: "DELETE",
2229		HTTPPath:   "/2020-05-31/origin-access-identity/cloudfront/{Id}",
2230	}
2231
2232	if input == nil {
2233		input = &DeleteCloudFrontOriginAccessIdentityInput{}
2234	}
2235
2236	output = &DeleteCloudFrontOriginAccessIdentityOutput{}
2237	req = c.newRequest(op, input, output)
2238	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2239	return
2240}
2241
2242// DeleteCloudFrontOriginAccessIdentity API operation for Amazon CloudFront.
2243//
2244// Delete an origin access identity.
2245//
2246// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2247// with awserr.Error's Code and Message methods to get detailed information about
2248// the error.
2249//
2250// See the AWS API reference guide for Amazon CloudFront's
2251// API operation DeleteCloudFrontOriginAccessIdentity for usage and error information.
2252//
2253// Returned Error Codes:
2254//   * ErrCodeAccessDenied "AccessDenied"
2255//   Access denied.
2256//
2257//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
2258//   The If-Match version is missing or not valid.
2259//
2260//   * ErrCodeNoSuchCloudFrontOriginAccessIdentity "NoSuchCloudFrontOriginAccessIdentity"
2261//   The specified origin access identity does not exist.
2262//
2263//   * ErrCodePreconditionFailed "PreconditionFailed"
2264//   The precondition in one or more of the request fields evaluated to false.
2265//
2266//   * ErrCodeOriginAccessIdentityInUse "CloudFrontOriginAccessIdentityInUse"
2267//   The Origin Access Identity specified is already in use.
2268//
2269// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteCloudFrontOriginAccessIdentity
2270func (c *CloudFront) DeleteCloudFrontOriginAccessIdentity(input *DeleteCloudFrontOriginAccessIdentityInput) (*DeleteCloudFrontOriginAccessIdentityOutput, error) {
2271	req, out := c.DeleteCloudFrontOriginAccessIdentityRequest(input)
2272	return out, req.Send()
2273}
2274
2275// DeleteCloudFrontOriginAccessIdentityWithContext is the same as DeleteCloudFrontOriginAccessIdentity with the addition of
2276// the ability to pass a context and additional request options.
2277//
2278// See DeleteCloudFrontOriginAccessIdentity for details on how to use this API operation.
2279//
2280// The context must be non-nil and will be used for request cancellation. If
2281// the context is nil a panic will occur. In the future the SDK may create
2282// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2283// for more information on using Contexts.
2284func (c *CloudFront) DeleteCloudFrontOriginAccessIdentityWithContext(ctx aws.Context, input *DeleteCloudFrontOriginAccessIdentityInput, opts ...request.Option) (*DeleteCloudFrontOriginAccessIdentityOutput, error) {
2285	req, out := c.DeleteCloudFrontOriginAccessIdentityRequest(input)
2286	req.SetContext(ctx)
2287	req.ApplyOptions(opts...)
2288	return out, req.Send()
2289}
2290
2291const opDeleteDistribution = "DeleteDistribution2020_05_31"
2292
2293// DeleteDistributionRequest generates a "aws/request.Request" representing the
2294// client's request for the DeleteDistribution operation. The "output" return
2295// value will be populated with the request's response once the request completes
2296// successfully.
2297//
2298// Use "Send" method on the returned Request to send the API call to the service.
2299// the "output" return value is not valid until after Send returns without error.
2300//
2301// See DeleteDistribution for more information on using the DeleteDistribution
2302// API call, and error handling.
2303//
2304// This method is useful when you want to inject custom logic or configuration
2305// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2306//
2307//
2308//    // Example sending a request using the DeleteDistributionRequest method.
2309//    req, resp := client.DeleteDistributionRequest(params)
2310//
2311//    err := req.Send()
2312//    if err == nil { // resp is now filled
2313//        fmt.Println(resp)
2314//    }
2315//
2316// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteDistribution
2317func (c *CloudFront) DeleteDistributionRequest(input *DeleteDistributionInput) (req *request.Request, output *DeleteDistributionOutput) {
2318	op := &request.Operation{
2319		Name:       opDeleteDistribution,
2320		HTTPMethod: "DELETE",
2321		HTTPPath:   "/2020-05-31/distribution/{Id}",
2322	}
2323
2324	if input == nil {
2325		input = &DeleteDistributionInput{}
2326	}
2327
2328	output = &DeleteDistributionOutput{}
2329	req = c.newRequest(op, input, output)
2330	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2331	return
2332}
2333
2334// DeleteDistribution API operation for Amazon CloudFront.
2335//
2336// Delete a distribution.
2337//
2338// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2339// with awserr.Error's Code and Message methods to get detailed information about
2340// the error.
2341//
2342// See the AWS API reference guide for Amazon CloudFront's
2343// API operation DeleteDistribution for usage and error information.
2344//
2345// Returned Error Codes:
2346//   * ErrCodeAccessDenied "AccessDenied"
2347//   Access denied.
2348//
2349//   * ErrCodeDistributionNotDisabled "DistributionNotDisabled"
2350//   The specified CloudFront distribution is not disabled. You must disable the
2351//   distribution before you can delete it.
2352//
2353//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
2354//   The If-Match version is missing or not valid.
2355//
2356//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
2357//   The specified distribution does not exist.
2358//
2359//   * ErrCodePreconditionFailed "PreconditionFailed"
2360//   The precondition in one or more of the request fields evaluated to false.
2361//
2362// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteDistribution
2363func (c *CloudFront) DeleteDistribution(input *DeleteDistributionInput) (*DeleteDistributionOutput, error) {
2364	req, out := c.DeleteDistributionRequest(input)
2365	return out, req.Send()
2366}
2367
2368// DeleteDistributionWithContext is the same as DeleteDistribution with the addition of
2369// the ability to pass a context and additional request options.
2370//
2371// See DeleteDistribution for details on how to use this API operation.
2372//
2373// The context must be non-nil and will be used for request cancellation. If
2374// the context is nil a panic will occur. In the future the SDK may create
2375// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2376// for more information on using Contexts.
2377func (c *CloudFront) DeleteDistributionWithContext(ctx aws.Context, input *DeleteDistributionInput, opts ...request.Option) (*DeleteDistributionOutput, error) {
2378	req, out := c.DeleteDistributionRequest(input)
2379	req.SetContext(ctx)
2380	req.ApplyOptions(opts...)
2381	return out, req.Send()
2382}
2383
2384const opDeleteFieldLevelEncryptionConfig = "DeleteFieldLevelEncryptionConfig2020_05_31"
2385
2386// DeleteFieldLevelEncryptionConfigRequest generates a "aws/request.Request" representing the
2387// client's request for the DeleteFieldLevelEncryptionConfig operation. The "output" return
2388// value will be populated with the request's response once the request completes
2389// successfully.
2390//
2391// Use "Send" method on the returned Request to send the API call to the service.
2392// the "output" return value is not valid until after Send returns without error.
2393//
2394// See DeleteFieldLevelEncryptionConfig for more information on using the DeleteFieldLevelEncryptionConfig
2395// API call, and error handling.
2396//
2397// This method is useful when you want to inject custom logic or configuration
2398// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2399//
2400//
2401//    // Example sending a request using the DeleteFieldLevelEncryptionConfigRequest method.
2402//    req, resp := client.DeleteFieldLevelEncryptionConfigRequest(params)
2403//
2404//    err := req.Send()
2405//    if err == nil { // resp is now filled
2406//        fmt.Println(resp)
2407//    }
2408//
2409// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteFieldLevelEncryptionConfig
2410func (c *CloudFront) DeleteFieldLevelEncryptionConfigRequest(input *DeleteFieldLevelEncryptionConfigInput) (req *request.Request, output *DeleteFieldLevelEncryptionConfigOutput) {
2411	op := &request.Operation{
2412		Name:       opDeleteFieldLevelEncryptionConfig,
2413		HTTPMethod: "DELETE",
2414		HTTPPath:   "/2020-05-31/field-level-encryption/{Id}",
2415	}
2416
2417	if input == nil {
2418		input = &DeleteFieldLevelEncryptionConfigInput{}
2419	}
2420
2421	output = &DeleteFieldLevelEncryptionConfigOutput{}
2422	req = c.newRequest(op, input, output)
2423	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2424	return
2425}
2426
2427// DeleteFieldLevelEncryptionConfig API operation for Amazon CloudFront.
2428//
2429// Remove a field-level encryption configuration.
2430//
2431// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2432// with awserr.Error's Code and Message methods to get detailed information about
2433// the error.
2434//
2435// See the AWS API reference guide for Amazon CloudFront's
2436// API operation DeleteFieldLevelEncryptionConfig for usage and error information.
2437//
2438// Returned Error Codes:
2439//   * ErrCodeAccessDenied "AccessDenied"
2440//   Access denied.
2441//
2442//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
2443//   The If-Match version is missing or not valid.
2444//
2445//   * ErrCodeNoSuchFieldLevelEncryptionConfig "NoSuchFieldLevelEncryptionConfig"
2446//   The specified configuration for field-level encryption doesn't exist.
2447//
2448//   * ErrCodePreconditionFailed "PreconditionFailed"
2449//   The precondition in one or more of the request fields evaluated to false.
2450//
2451//   * ErrCodeFieldLevelEncryptionConfigInUse "FieldLevelEncryptionConfigInUse"
2452//   The specified configuration for field-level encryption is in use.
2453//
2454// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteFieldLevelEncryptionConfig
2455func (c *CloudFront) DeleteFieldLevelEncryptionConfig(input *DeleteFieldLevelEncryptionConfigInput) (*DeleteFieldLevelEncryptionConfigOutput, error) {
2456	req, out := c.DeleteFieldLevelEncryptionConfigRequest(input)
2457	return out, req.Send()
2458}
2459
2460// DeleteFieldLevelEncryptionConfigWithContext is the same as DeleteFieldLevelEncryptionConfig with the addition of
2461// the ability to pass a context and additional request options.
2462//
2463// See DeleteFieldLevelEncryptionConfig for details on how to use this API operation.
2464//
2465// The context must be non-nil and will be used for request cancellation. If
2466// the context is nil a panic will occur. In the future the SDK may create
2467// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2468// for more information on using Contexts.
2469func (c *CloudFront) DeleteFieldLevelEncryptionConfigWithContext(ctx aws.Context, input *DeleteFieldLevelEncryptionConfigInput, opts ...request.Option) (*DeleteFieldLevelEncryptionConfigOutput, error) {
2470	req, out := c.DeleteFieldLevelEncryptionConfigRequest(input)
2471	req.SetContext(ctx)
2472	req.ApplyOptions(opts...)
2473	return out, req.Send()
2474}
2475
2476const opDeleteFieldLevelEncryptionProfile = "DeleteFieldLevelEncryptionProfile2020_05_31"
2477
2478// DeleteFieldLevelEncryptionProfileRequest generates a "aws/request.Request" representing the
2479// client's request for the DeleteFieldLevelEncryptionProfile operation. The "output" return
2480// value will be populated with the request's response once the request completes
2481// successfully.
2482//
2483// Use "Send" method on the returned Request to send the API call to the service.
2484// the "output" return value is not valid until after Send returns without error.
2485//
2486// See DeleteFieldLevelEncryptionProfile for more information on using the DeleteFieldLevelEncryptionProfile
2487// API call, and error handling.
2488//
2489// This method is useful when you want to inject custom logic or configuration
2490// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2491//
2492//
2493//    // Example sending a request using the DeleteFieldLevelEncryptionProfileRequest method.
2494//    req, resp := client.DeleteFieldLevelEncryptionProfileRequest(params)
2495//
2496//    err := req.Send()
2497//    if err == nil { // resp is now filled
2498//        fmt.Println(resp)
2499//    }
2500//
2501// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteFieldLevelEncryptionProfile
2502func (c *CloudFront) DeleteFieldLevelEncryptionProfileRequest(input *DeleteFieldLevelEncryptionProfileInput) (req *request.Request, output *DeleteFieldLevelEncryptionProfileOutput) {
2503	op := &request.Operation{
2504		Name:       opDeleteFieldLevelEncryptionProfile,
2505		HTTPMethod: "DELETE",
2506		HTTPPath:   "/2020-05-31/field-level-encryption-profile/{Id}",
2507	}
2508
2509	if input == nil {
2510		input = &DeleteFieldLevelEncryptionProfileInput{}
2511	}
2512
2513	output = &DeleteFieldLevelEncryptionProfileOutput{}
2514	req = c.newRequest(op, input, output)
2515	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2516	return
2517}
2518
2519// DeleteFieldLevelEncryptionProfile API operation for Amazon CloudFront.
2520//
2521// Remove a field-level encryption profile.
2522//
2523// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2524// with awserr.Error's Code and Message methods to get detailed information about
2525// the error.
2526//
2527// See the AWS API reference guide for Amazon CloudFront's
2528// API operation DeleteFieldLevelEncryptionProfile for usage and error information.
2529//
2530// Returned Error Codes:
2531//   * ErrCodeAccessDenied "AccessDenied"
2532//   Access denied.
2533//
2534//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
2535//   The If-Match version is missing or not valid.
2536//
2537//   * ErrCodeNoSuchFieldLevelEncryptionProfile "NoSuchFieldLevelEncryptionProfile"
2538//   The specified profile for field-level encryption doesn't exist.
2539//
2540//   * ErrCodePreconditionFailed "PreconditionFailed"
2541//   The precondition in one or more of the request fields evaluated to false.
2542//
2543//   * ErrCodeFieldLevelEncryptionProfileInUse "FieldLevelEncryptionProfileInUse"
2544//   The specified profile for field-level encryption is in use.
2545//
2546// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteFieldLevelEncryptionProfile
2547func (c *CloudFront) DeleteFieldLevelEncryptionProfile(input *DeleteFieldLevelEncryptionProfileInput) (*DeleteFieldLevelEncryptionProfileOutput, error) {
2548	req, out := c.DeleteFieldLevelEncryptionProfileRequest(input)
2549	return out, req.Send()
2550}
2551
2552// DeleteFieldLevelEncryptionProfileWithContext is the same as DeleteFieldLevelEncryptionProfile with the addition of
2553// the ability to pass a context and additional request options.
2554//
2555// See DeleteFieldLevelEncryptionProfile for details on how to use this API operation.
2556//
2557// The context must be non-nil and will be used for request cancellation. If
2558// the context is nil a panic will occur. In the future the SDK may create
2559// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2560// for more information on using Contexts.
2561func (c *CloudFront) DeleteFieldLevelEncryptionProfileWithContext(ctx aws.Context, input *DeleteFieldLevelEncryptionProfileInput, opts ...request.Option) (*DeleteFieldLevelEncryptionProfileOutput, error) {
2562	req, out := c.DeleteFieldLevelEncryptionProfileRequest(input)
2563	req.SetContext(ctx)
2564	req.ApplyOptions(opts...)
2565	return out, req.Send()
2566}
2567
2568const opDeleteFunction = "DeleteFunction2020_05_31"
2569
2570// DeleteFunctionRequest generates a "aws/request.Request" representing the
2571// client's request for the DeleteFunction operation. The "output" return
2572// value will be populated with the request's response once the request completes
2573// successfully.
2574//
2575// Use "Send" method on the returned Request to send the API call to the service.
2576// the "output" return value is not valid until after Send returns without error.
2577//
2578// See DeleteFunction for more information on using the DeleteFunction
2579// API call, and error handling.
2580//
2581// This method is useful when you want to inject custom logic or configuration
2582// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2583//
2584//
2585//    // Example sending a request using the DeleteFunctionRequest method.
2586//    req, resp := client.DeleteFunctionRequest(params)
2587//
2588//    err := req.Send()
2589//    if err == nil { // resp is now filled
2590//        fmt.Println(resp)
2591//    }
2592//
2593// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteFunction
2594func (c *CloudFront) DeleteFunctionRequest(input *DeleteFunctionInput) (req *request.Request, output *DeleteFunctionOutput) {
2595	op := &request.Operation{
2596		Name:       opDeleteFunction,
2597		HTTPMethod: "DELETE",
2598		HTTPPath:   "/2020-05-31/function/{Name}",
2599	}
2600
2601	if input == nil {
2602		input = &DeleteFunctionInput{}
2603	}
2604
2605	output = &DeleteFunctionOutput{}
2606	req = c.newRequest(op, input, output)
2607	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2608	return
2609}
2610
2611// DeleteFunction API operation for Amazon CloudFront.
2612//
2613// Deletes a CloudFront function.
2614//
2615// You cannot delete a function if it’s associated with a cache behavior.
2616// First, update your distributions to remove the function association from
2617// all cache behaviors, then delete the function.
2618//
2619// To delete a function, you must provide the function’s name and version
2620// (ETag value). To get these values, you can use ListFunctions and DescribeFunction.
2621//
2622// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2623// with awserr.Error's Code and Message methods to get detailed information about
2624// the error.
2625//
2626// See the AWS API reference guide for Amazon CloudFront's
2627// API operation DeleteFunction for usage and error information.
2628//
2629// Returned Error Codes:
2630//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
2631//   The If-Match version is missing or not valid.
2632//
2633//   * ErrCodeNoSuchFunctionExists "NoSuchFunctionExists"
2634//   The function does not exist.
2635//
2636//   * ErrCodeFunctionInUse "FunctionInUse"
2637//   Cannot delete the function because it’s attached to one or more cache behaviors.
2638//
2639//   * ErrCodePreconditionFailed "PreconditionFailed"
2640//   The precondition in one or more of the request fields evaluated to false.
2641//
2642//   * ErrCodeUnsupportedOperation "UnsupportedOperation"
2643//   This operation is not supported in this region.
2644//
2645// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteFunction
2646func (c *CloudFront) DeleteFunction(input *DeleteFunctionInput) (*DeleteFunctionOutput, error) {
2647	req, out := c.DeleteFunctionRequest(input)
2648	return out, req.Send()
2649}
2650
2651// DeleteFunctionWithContext is the same as DeleteFunction with the addition of
2652// the ability to pass a context and additional request options.
2653//
2654// See DeleteFunction for details on how to use this API operation.
2655//
2656// The context must be non-nil and will be used for request cancellation. If
2657// the context is nil a panic will occur. In the future the SDK may create
2658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2659// for more information on using Contexts.
2660func (c *CloudFront) DeleteFunctionWithContext(ctx aws.Context, input *DeleteFunctionInput, opts ...request.Option) (*DeleteFunctionOutput, error) {
2661	req, out := c.DeleteFunctionRequest(input)
2662	req.SetContext(ctx)
2663	req.ApplyOptions(opts...)
2664	return out, req.Send()
2665}
2666
2667const opDeleteKeyGroup = "DeleteKeyGroup2020_05_31"
2668
2669// DeleteKeyGroupRequest generates a "aws/request.Request" representing the
2670// client's request for the DeleteKeyGroup operation. The "output" return
2671// value will be populated with the request's response once the request completes
2672// successfully.
2673//
2674// Use "Send" method on the returned Request to send the API call to the service.
2675// the "output" return value is not valid until after Send returns without error.
2676//
2677// See DeleteKeyGroup for more information on using the DeleteKeyGroup
2678// API call, and error handling.
2679//
2680// This method is useful when you want to inject custom logic or configuration
2681// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2682//
2683//
2684//    // Example sending a request using the DeleteKeyGroupRequest method.
2685//    req, resp := client.DeleteKeyGroupRequest(params)
2686//
2687//    err := req.Send()
2688//    if err == nil { // resp is now filled
2689//        fmt.Println(resp)
2690//    }
2691//
2692// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteKeyGroup
2693func (c *CloudFront) DeleteKeyGroupRequest(input *DeleteKeyGroupInput) (req *request.Request, output *DeleteKeyGroupOutput) {
2694	op := &request.Operation{
2695		Name:       opDeleteKeyGroup,
2696		HTTPMethod: "DELETE",
2697		HTTPPath:   "/2020-05-31/key-group/{Id}",
2698	}
2699
2700	if input == nil {
2701		input = &DeleteKeyGroupInput{}
2702	}
2703
2704	output = &DeleteKeyGroupOutput{}
2705	req = c.newRequest(op, input, output)
2706	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2707	return
2708}
2709
2710// DeleteKeyGroup API operation for Amazon CloudFront.
2711//
2712// Deletes a key group.
2713//
2714// You cannot delete a key group that is referenced in a cache behavior. First
2715// update your distributions to remove the key group from all cache behaviors,
2716// then delete the key group.
2717//
2718// To delete a key group, you must provide the key group’s identifier and
2719// version. To get these values, use ListKeyGroups followed by GetKeyGroup or
2720// GetKeyGroupConfig.
2721//
2722// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2723// with awserr.Error's Code and Message methods to get detailed information about
2724// the error.
2725//
2726// See the AWS API reference guide for Amazon CloudFront's
2727// API operation DeleteKeyGroup for usage and error information.
2728//
2729// Returned Error Codes:
2730//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
2731//   The If-Match version is missing or not valid.
2732//
2733//   * ErrCodeNoSuchResource "NoSuchResource"
2734//   A resource that was specified is not valid.
2735//
2736//   * ErrCodePreconditionFailed "PreconditionFailed"
2737//   The precondition in one or more of the request fields evaluated to false.
2738//
2739//   * ErrCodeResourceInUse "ResourceInUse"
2740//   Cannot delete this resource because it is in use.
2741//
2742// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteKeyGroup
2743func (c *CloudFront) DeleteKeyGroup(input *DeleteKeyGroupInput) (*DeleteKeyGroupOutput, error) {
2744	req, out := c.DeleteKeyGroupRequest(input)
2745	return out, req.Send()
2746}
2747
2748// DeleteKeyGroupWithContext is the same as DeleteKeyGroup with the addition of
2749// the ability to pass a context and additional request options.
2750//
2751// See DeleteKeyGroup for details on how to use this API operation.
2752//
2753// The context must be non-nil and will be used for request cancellation. If
2754// the context is nil a panic will occur. In the future the SDK may create
2755// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2756// for more information on using Contexts.
2757func (c *CloudFront) DeleteKeyGroupWithContext(ctx aws.Context, input *DeleteKeyGroupInput, opts ...request.Option) (*DeleteKeyGroupOutput, error) {
2758	req, out := c.DeleteKeyGroupRequest(input)
2759	req.SetContext(ctx)
2760	req.ApplyOptions(opts...)
2761	return out, req.Send()
2762}
2763
2764const opDeleteMonitoringSubscription = "DeleteMonitoringSubscription2020_05_31"
2765
2766// DeleteMonitoringSubscriptionRequest generates a "aws/request.Request" representing the
2767// client's request for the DeleteMonitoringSubscription operation. The "output" return
2768// value will be populated with the request's response once the request completes
2769// successfully.
2770//
2771// Use "Send" method on the returned Request to send the API call to the service.
2772// the "output" return value is not valid until after Send returns without error.
2773//
2774// See DeleteMonitoringSubscription for more information on using the DeleteMonitoringSubscription
2775// API call, and error handling.
2776//
2777// This method is useful when you want to inject custom logic or configuration
2778// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2779//
2780//
2781//    // Example sending a request using the DeleteMonitoringSubscriptionRequest method.
2782//    req, resp := client.DeleteMonitoringSubscriptionRequest(params)
2783//
2784//    err := req.Send()
2785//    if err == nil { // resp is now filled
2786//        fmt.Println(resp)
2787//    }
2788//
2789// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteMonitoringSubscription
2790func (c *CloudFront) DeleteMonitoringSubscriptionRequest(input *DeleteMonitoringSubscriptionInput) (req *request.Request, output *DeleteMonitoringSubscriptionOutput) {
2791	op := &request.Operation{
2792		Name:       opDeleteMonitoringSubscription,
2793		HTTPMethod: "DELETE",
2794		HTTPPath:   "/2020-05-31/distributions/{DistributionId}/monitoring-subscription",
2795	}
2796
2797	if input == nil {
2798		input = &DeleteMonitoringSubscriptionInput{}
2799	}
2800
2801	output = &DeleteMonitoringSubscriptionOutput{}
2802	req = c.newRequest(op, input, output)
2803	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2804	return
2805}
2806
2807// DeleteMonitoringSubscription API operation for Amazon CloudFront.
2808//
2809// Disables additional CloudWatch metrics for the specified CloudFront distribution.
2810//
2811// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2812// with awserr.Error's Code and Message methods to get detailed information about
2813// the error.
2814//
2815// See the AWS API reference guide for Amazon CloudFront's
2816// API operation DeleteMonitoringSubscription for usage and error information.
2817//
2818// Returned Error Codes:
2819//   * ErrCodeAccessDenied "AccessDenied"
2820//   Access denied.
2821//
2822//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
2823//   The specified distribution does not exist.
2824//
2825//   * ErrCodeUnsupportedOperation "UnsupportedOperation"
2826//   This operation is not supported in this region.
2827//
2828// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteMonitoringSubscription
2829func (c *CloudFront) DeleteMonitoringSubscription(input *DeleteMonitoringSubscriptionInput) (*DeleteMonitoringSubscriptionOutput, error) {
2830	req, out := c.DeleteMonitoringSubscriptionRequest(input)
2831	return out, req.Send()
2832}
2833
2834// DeleteMonitoringSubscriptionWithContext is the same as DeleteMonitoringSubscription with the addition of
2835// the ability to pass a context and additional request options.
2836//
2837// See DeleteMonitoringSubscription for details on how to use this API operation.
2838//
2839// The context must be non-nil and will be used for request cancellation. If
2840// the context is nil a panic will occur. In the future the SDK may create
2841// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2842// for more information on using Contexts.
2843func (c *CloudFront) DeleteMonitoringSubscriptionWithContext(ctx aws.Context, input *DeleteMonitoringSubscriptionInput, opts ...request.Option) (*DeleteMonitoringSubscriptionOutput, error) {
2844	req, out := c.DeleteMonitoringSubscriptionRequest(input)
2845	req.SetContext(ctx)
2846	req.ApplyOptions(opts...)
2847	return out, req.Send()
2848}
2849
2850const opDeleteOriginRequestPolicy = "DeleteOriginRequestPolicy2020_05_31"
2851
2852// DeleteOriginRequestPolicyRequest generates a "aws/request.Request" representing the
2853// client's request for the DeleteOriginRequestPolicy operation. The "output" return
2854// value will be populated with the request's response once the request completes
2855// successfully.
2856//
2857// Use "Send" method on the returned Request to send the API call to the service.
2858// the "output" return value is not valid until after Send returns without error.
2859//
2860// See DeleteOriginRequestPolicy for more information on using the DeleteOriginRequestPolicy
2861// API call, and error handling.
2862//
2863// This method is useful when you want to inject custom logic or configuration
2864// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2865//
2866//
2867//    // Example sending a request using the DeleteOriginRequestPolicyRequest method.
2868//    req, resp := client.DeleteOriginRequestPolicyRequest(params)
2869//
2870//    err := req.Send()
2871//    if err == nil { // resp is now filled
2872//        fmt.Println(resp)
2873//    }
2874//
2875// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteOriginRequestPolicy
2876func (c *CloudFront) DeleteOriginRequestPolicyRequest(input *DeleteOriginRequestPolicyInput) (req *request.Request, output *DeleteOriginRequestPolicyOutput) {
2877	op := &request.Operation{
2878		Name:       opDeleteOriginRequestPolicy,
2879		HTTPMethod: "DELETE",
2880		HTTPPath:   "/2020-05-31/origin-request-policy/{Id}",
2881	}
2882
2883	if input == nil {
2884		input = &DeleteOriginRequestPolicyInput{}
2885	}
2886
2887	output = &DeleteOriginRequestPolicyOutput{}
2888	req = c.newRequest(op, input, output)
2889	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2890	return
2891}
2892
2893// DeleteOriginRequestPolicy API operation for Amazon CloudFront.
2894//
2895// Deletes an origin request policy.
2896//
2897// You cannot delete an origin request policy if it’s attached to any cache
2898// behaviors. First update your distributions to remove the origin request policy
2899// from all cache behaviors, then delete the origin request policy.
2900//
2901// To delete an origin request policy, you must provide the policy’s identifier
2902// and version. To get the identifier, you can use ListOriginRequestPolicies
2903// or GetOriginRequestPolicy.
2904//
2905// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2906// with awserr.Error's Code and Message methods to get detailed information about
2907// the error.
2908//
2909// See the AWS API reference guide for Amazon CloudFront's
2910// API operation DeleteOriginRequestPolicy for usage and error information.
2911//
2912// Returned Error Codes:
2913//   * ErrCodeAccessDenied "AccessDenied"
2914//   Access denied.
2915//
2916//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
2917//   The If-Match version is missing or not valid.
2918//
2919//   * ErrCodeNoSuchOriginRequestPolicy "NoSuchOriginRequestPolicy"
2920//   The origin request policy does not exist.
2921//
2922//   * ErrCodePreconditionFailed "PreconditionFailed"
2923//   The precondition in one or more of the request fields evaluated to false.
2924//
2925//   * ErrCodeIllegalDelete "IllegalDelete"
2926//   You cannot delete a managed policy.
2927//
2928//   * ErrCodeOriginRequestPolicyInUse "OriginRequestPolicyInUse"
2929//   Cannot delete the origin request policy because it is attached to one or
2930//   more cache behaviors.
2931//
2932// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteOriginRequestPolicy
2933func (c *CloudFront) DeleteOriginRequestPolicy(input *DeleteOriginRequestPolicyInput) (*DeleteOriginRequestPolicyOutput, error) {
2934	req, out := c.DeleteOriginRequestPolicyRequest(input)
2935	return out, req.Send()
2936}
2937
2938// DeleteOriginRequestPolicyWithContext is the same as DeleteOriginRequestPolicy with the addition of
2939// the ability to pass a context and additional request options.
2940//
2941// See DeleteOriginRequestPolicy for details on how to use this API operation.
2942//
2943// The context must be non-nil and will be used for request cancellation. If
2944// the context is nil a panic will occur. In the future the SDK may create
2945// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2946// for more information on using Contexts.
2947func (c *CloudFront) DeleteOriginRequestPolicyWithContext(ctx aws.Context, input *DeleteOriginRequestPolicyInput, opts ...request.Option) (*DeleteOriginRequestPolicyOutput, error) {
2948	req, out := c.DeleteOriginRequestPolicyRequest(input)
2949	req.SetContext(ctx)
2950	req.ApplyOptions(opts...)
2951	return out, req.Send()
2952}
2953
2954const opDeletePublicKey = "DeletePublicKey2020_05_31"
2955
2956// DeletePublicKeyRequest generates a "aws/request.Request" representing the
2957// client's request for the DeletePublicKey operation. The "output" return
2958// value will be populated with the request's response once the request completes
2959// successfully.
2960//
2961// Use "Send" method on the returned Request to send the API call to the service.
2962// the "output" return value is not valid until after Send returns without error.
2963//
2964// See DeletePublicKey for more information on using the DeletePublicKey
2965// API call, and error handling.
2966//
2967// This method is useful when you want to inject custom logic or configuration
2968// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2969//
2970//
2971//    // Example sending a request using the DeletePublicKeyRequest method.
2972//    req, resp := client.DeletePublicKeyRequest(params)
2973//
2974//    err := req.Send()
2975//    if err == nil { // resp is now filled
2976//        fmt.Println(resp)
2977//    }
2978//
2979// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeletePublicKey
2980func (c *CloudFront) DeletePublicKeyRequest(input *DeletePublicKeyInput) (req *request.Request, output *DeletePublicKeyOutput) {
2981	op := &request.Operation{
2982		Name:       opDeletePublicKey,
2983		HTTPMethod: "DELETE",
2984		HTTPPath:   "/2020-05-31/public-key/{Id}",
2985	}
2986
2987	if input == nil {
2988		input = &DeletePublicKeyInput{}
2989	}
2990
2991	output = &DeletePublicKeyOutput{}
2992	req = c.newRequest(op, input, output)
2993	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2994	return
2995}
2996
2997// DeletePublicKey API operation for Amazon CloudFront.
2998//
2999// Remove a public key you previously added to CloudFront.
3000//
3001// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3002// with awserr.Error's Code and Message methods to get detailed information about
3003// the error.
3004//
3005// See the AWS API reference guide for Amazon CloudFront's
3006// API operation DeletePublicKey for usage and error information.
3007//
3008// Returned Error Codes:
3009//   * ErrCodeAccessDenied "AccessDenied"
3010//   Access denied.
3011//
3012//   * ErrCodePublicKeyInUse "PublicKeyInUse"
3013//   The specified public key is in use.
3014//
3015//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
3016//   The If-Match version is missing or not valid.
3017//
3018//   * ErrCodeNoSuchPublicKey "NoSuchPublicKey"
3019//   The specified public key doesn't exist.
3020//
3021//   * ErrCodePreconditionFailed "PreconditionFailed"
3022//   The precondition in one or more of the request fields evaluated to false.
3023//
3024// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeletePublicKey
3025func (c *CloudFront) DeletePublicKey(input *DeletePublicKeyInput) (*DeletePublicKeyOutput, error) {
3026	req, out := c.DeletePublicKeyRequest(input)
3027	return out, req.Send()
3028}
3029
3030// DeletePublicKeyWithContext is the same as DeletePublicKey with the addition of
3031// the ability to pass a context and additional request options.
3032//
3033// See DeletePublicKey for details on how to use this API operation.
3034//
3035// The context must be non-nil and will be used for request cancellation. If
3036// the context is nil a panic will occur. In the future the SDK may create
3037// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3038// for more information on using Contexts.
3039func (c *CloudFront) DeletePublicKeyWithContext(ctx aws.Context, input *DeletePublicKeyInput, opts ...request.Option) (*DeletePublicKeyOutput, error) {
3040	req, out := c.DeletePublicKeyRequest(input)
3041	req.SetContext(ctx)
3042	req.ApplyOptions(opts...)
3043	return out, req.Send()
3044}
3045
3046const opDeleteRealtimeLogConfig = "DeleteRealtimeLogConfig2020_05_31"
3047
3048// DeleteRealtimeLogConfigRequest generates a "aws/request.Request" representing the
3049// client's request for the DeleteRealtimeLogConfig operation. The "output" return
3050// value will be populated with the request's response once the request completes
3051// successfully.
3052//
3053// Use "Send" method on the returned Request to send the API call to the service.
3054// the "output" return value is not valid until after Send returns without error.
3055//
3056// See DeleteRealtimeLogConfig for more information on using the DeleteRealtimeLogConfig
3057// API call, and error handling.
3058//
3059// This method is useful when you want to inject custom logic or configuration
3060// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3061//
3062//
3063//    // Example sending a request using the DeleteRealtimeLogConfigRequest method.
3064//    req, resp := client.DeleteRealtimeLogConfigRequest(params)
3065//
3066//    err := req.Send()
3067//    if err == nil { // resp is now filled
3068//        fmt.Println(resp)
3069//    }
3070//
3071// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteRealtimeLogConfig
3072func (c *CloudFront) DeleteRealtimeLogConfigRequest(input *DeleteRealtimeLogConfigInput) (req *request.Request, output *DeleteRealtimeLogConfigOutput) {
3073	op := &request.Operation{
3074		Name:       opDeleteRealtimeLogConfig,
3075		HTTPMethod: "POST",
3076		HTTPPath:   "/2020-05-31/delete-realtime-log-config/",
3077	}
3078
3079	if input == nil {
3080		input = &DeleteRealtimeLogConfigInput{}
3081	}
3082
3083	output = &DeleteRealtimeLogConfigOutput{}
3084	req = c.newRequest(op, input, output)
3085	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3086	return
3087}
3088
3089// DeleteRealtimeLogConfig API operation for Amazon CloudFront.
3090//
3091// Deletes a real-time log configuration.
3092//
3093// You cannot delete a real-time log configuration if it’s attached to a cache
3094// behavior. First update your distributions to remove the real-time log configuration
3095// from all cache behaviors, then delete the real-time log configuration.
3096//
3097// To delete a real-time log configuration, you can provide the configuration’s
3098// name or its Amazon Resource Name (ARN). You must provide at least one. If
3099// you provide both, CloudFront uses the name to identify the real-time log
3100// configuration to delete.
3101//
3102// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3103// with awserr.Error's Code and Message methods to get detailed information about
3104// the error.
3105//
3106// See the AWS API reference guide for Amazon CloudFront's
3107// API operation DeleteRealtimeLogConfig for usage and error information.
3108//
3109// Returned Error Codes:
3110//   * ErrCodeNoSuchRealtimeLogConfig "NoSuchRealtimeLogConfig"
3111//   The real-time log configuration does not exist.
3112//
3113//   * ErrCodeRealtimeLogConfigInUse "RealtimeLogConfigInUse"
3114//   Cannot delete the real-time log configuration because it is attached to one
3115//   or more cache behaviors.
3116//
3117//   * ErrCodeInvalidArgument "InvalidArgument"
3118//   An argument is invalid.
3119//
3120//   * ErrCodeAccessDenied "AccessDenied"
3121//   Access denied.
3122//
3123// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteRealtimeLogConfig
3124func (c *CloudFront) DeleteRealtimeLogConfig(input *DeleteRealtimeLogConfigInput) (*DeleteRealtimeLogConfigOutput, error) {
3125	req, out := c.DeleteRealtimeLogConfigRequest(input)
3126	return out, req.Send()
3127}
3128
3129// DeleteRealtimeLogConfigWithContext is the same as DeleteRealtimeLogConfig with the addition of
3130// the ability to pass a context and additional request options.
3131//
3132// See DeleteRealtimeLogConfig for details on how to use this API operation.
3133//
3134// The context must be non-nil and will be used for request cancellation. If
3135// the context is nil a panic will occur. In the future the SDK may create
3136// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3137// for more information on using Contexts.
3138func (c *CloudFront) DeleteRealtimeLogConfigWithContext(ctx aws.Context, input *DeleteRealtimeLogConfigInput, opts ...request.Option) (*DeleteRealtimeLogConfigOutput, error) {
3139	req, out := c.DeleteRealtimeLogConfigRequest(input)
3140	req.SetContext(ctx)
3141	req.ApplyOptions(opts...)
3142	return out, req.Send()
3143}
3144
3145const opDeleteStreamingDistribution = "DeleteStreamingDistribution2020_05_31"
3146
3147// DeleteStreamingDistributionRequest generates a "aws/request.Request" representing the
3148// client's request for the DeleteStreamingDistribution operation. The "output" return
3149// value will be populated with the request's response once the request completes
3150// successfully.
3151//
3152// Use "Send" method on the returned Request to send the API call to the service.
3153// the "output" return value is not valid until after Send returns without error.
3154//
3155// See DeleteStreamingDistribution for more information on using the DeleteStreamingDistribution
3156// API call, and error handling.
3157//
3158// This method is useful when you want to inject custom logic or configuration
3159// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3160//
3161//
3162//    // Example sending a request using the DeleteStreamingDistributionRequest method.
3163//    req, resp := client.DeleteStreamingDistributionRequest(params)
3164//
3165//    err := req.Send()
3166//    if err == nil { // resp is now filled
3167//        fmt.Println(resp)
3168//    }
3169//
3170// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteStreamingDistribution
3171func (c *CloudFront) DeleteStreamingDistributionRequest(input *DeleteStreamingDistributionInput) (req *request.Request, output *DeleteStreamingDistributionOutput) {
3172	op := &request.Operation{
3173		Name:       opDeleteStreamingDistribution,
3174		HTTPMethod: "DELETE",
3175		HTTPPath:   "/2020-05-31/streaming-distribution/{Id}",
3176	}
3177
3178	if input == nil {
3179		input = &DeleteStreamingDistributionInput{}
3180	}
3181
3182	output = &DeleteStreamingDistributionOutput{}
3183	req = c.newRequest(op, input, output)
3184	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3185	return
3186}
3187
3188// DeleteStreamingDistribution API operation for Amazon CloudFront.
3189//
3190// Delete a streaming distribution. To delete an RTMP distribution using the
3191// CloudFront API, perform the following steps.
3192//
3193// To delete an RTMP distribution using the CloudFront API:
3194//
3195// Disable the RTMP distribution.
3196//
3197// Submit a GET Streaming Distribution Config request to get the current configuration
3198// and the Etag header for the distribution.
3199//
3200// Update the XML document that was returned in the response to your GET Streaming
3201// Distribution Config request to change the value of Enabled to false.
3202//
3203// Submit a PUT Streaming Distribution Config request to update the configuration
3204// for your distribution. In the request body, include the XML document that
3205// you updated in Step 3. Then set the value of the HTTP If-Match header to
3206// the value of the ETag header that CloudFront returned when you submitted
3207// the GET Streaming Distribution Config request in Step 2.
3208//
3209// Review the response to the PUT Streaming Distribution Config request to confirm
3210// that the distribution was successfully disabled.
3211//
3212// Submit a GET Streaming Distribution Config request to confirm that your changes
3213// have propagated. When propagation is complete, the value of Status is Deployed.
3214//
3215// Submit a DELETE Streaming Distribution request. Set the value of the HTTP
3216// If-Match header to the value of the ETag header that CloudFront returned
3217// when you submitted the GET Streaming Distribution Config request in Step
3218// 2.
3219//
3220// Review the response to your DELETE Streaming Distribution request to confirm
3221// that the distribution was successfully deleted.
3222//
3223// For information about deleting a distribution using the CloudFront console,
3224// see Deleting a Distribution (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowToDeleteDistribution.html)
3225// in the Amazon CloudFront Developer Guide.
3226//
3227// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3228// with awserr.Error's Code and Message methods to get detailed information about
3229// the error.
3230//
3231// See the AWS API reference guide for Amazon CloudFront's
3232// API operation DeleteStreamingDistribution for usage and error information.
3233//
3234// Returned Error Codes:
3235//   * ErrCodeAccessDenied "AccessDenied"
3236//   Access denied.
3237//
3238//   * ErrCodeStreamingDistributionNotDisabled "StreamingDistributionNotDisabled"
3239//   The specified CloudFront distribution is not disabled. You must disable the
3240//   distribution before you can delete it.
3241//
3242//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
3243//   The If-Match version is missing or not valid.
3244//
3245//   * ErrCodeNoSuchStreamingDistribution "NoSuchStreamingDistribution"
3246//   The specified streaming distribution does not exist.
3247//
3248//   * ErrCodePreconditionFailed "PreconditionFailed"
3249//   The precondition in one or more of the request fields evaluated to false.
3250//
3251// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DeleteStreamingDistribution
3252func (c *CloudFront) DeleteStreamingDistribution(input *DeleteStreamingDistributionInput) (*DeleteStreamingDistributionOutput, error) {
3253	req, out := c.DeleteStreamingDistributionRequest(input)
3254	return out, req.Send()
3255}
3256
3257// DeleteStreamingDistributionWithContext is the same as DeleteStreamingDistribution with the addition of
3258// the ability to pass a context and additional request options.
3259//
3260// See DeleteStreamingDistribution for details on how to use this API operation.
3261//
3262// The context must be non-nil and will be used for request cancellation. If
3263// the context is nil a panic will occur. In the future the SDK may create
3264// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3265// for more information on using Contexts.
3266func (c *CloudFront) DeleteStreamingDistributionWithContext(ctx aws.Context, input *DeleteStreamingDistributionInput, opts ...request.Option) (*DeleteStreamingDistributionOutput, error) {
3267	req, out := c.DeleteStreamingDistributionRequest(input)
3268	req.SetContext(ctx)
3269	req.ApplyOptions(opts...)
3270	return out, req.Send()
3271}
3272
3273const opDescribeFunction = "DescribeFunction2020_05_31"
3274
3275// DescribeFunctionRequest generates a "aws/request.Request" representing the
3276// client's request for the DescribeFunction operation. The "output" return
3277// value will be populated with the request's response once the request completes
3278// successfully.
3279//
3280// Use "Send" method on the returned Request to send the API call to the service.
3281// the "output" return value is not valid until after Send returns without error.
3282//
3283// See DescribeFunction for more information on using the DescribeFunction
3284// API call, and error handling.
3285//
3286// This method is useful when you want to inject custom logic or configuration
3287// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3288//
3289//
3290//    // Example sending a request using the DescribeFunctionRequest method.
3291//    req, resp := client.DescribeFunctionRequest(params)
3292//
3293//    err := req.Send()
3294//    if err == nil { // resp is now filled
3295//        fmt.Println(resp)
3296//    }
3297//
3298// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DescribeFunction
3299func (c *CloudFront) DescribeFunctionRequest(input *DescribeFunctionInput) (req *request.Request, output *DescribeFunctionOutput) {
3300	op := &request.Operation{
3301		Name:       opDescribeFunction,
3302		HTTPMethod: "GET",
3303		HTTPPath:   "/2020-05-31/function/{Name}/describe",
3304	}
3305
3306	if input == nil {
3307		input = &DescribeFunctionInput{}
3308	}
3309
3310	output = &DescribeFunctionOutput{}
3311	req = c.newRequest(op, input, output)
3312	return
3313}
3314
3315// DescribeFunction API operation for Amazon CloudFront.
3316//
3317// Gets configuration information and metadata about a CloudFront function,
3318// but not the function’s code. To get a function’s code, use GetFunction.
3319//
3320// To get configuration information and metadata about a function, you must
3321// provide the function’s name and stage. To get these values, you can use
3322// ListFunctions.
3323//
3324// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3325// with awserr.Error's Code and Message methods to get detailed information about
3326// the error.
3327//
3328// See the AWS API reference guide for Amazon CloudFront's
3329// API operation DescribeFunction for usage and error information.
3330//
3331// Returned Error Codes:
3332//   * ErrCodeNoSuchFunctionExists "NoSuchFunctionExists"
3333//   The function does not exist.
3334//
3335//   * ErrCodeUnsupportedOperation "UnsupportedOperation"
3336//   This operation is not supported in this region.
3337//
3338// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/DescribeFunction
3339func (c *CloudFront) DescribeFunction(input *DescribeFunctionInput) (*DescribeFunctionOutput, error) {
3340	req, out := c.DescribeFunctionRequest(input)
3341	return out, req.Send()
3342}
3343
3344// DescribeFunctionWithContext is the same as DescribeFunction with the addition of
3345// the ability to pass a context and additional request options.
3346//
3347// See DescribeFunction for details on how to use this API operation.
3348//
3349// The context must be non-nil and will be used for request cancellation. If
3350// the context is nil a panic will occur. In the future the SDK may create
3351// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3352// for more information on using Contexts.
3353func (c *CloudFront) DescribeFunctionWithContext(ctx aws.Context, input *DescribeFunctionInput, opts ...request.Option) (*DescribeFunctionOutput, error) {
3354	req, out := c.DescribeFunctionRequest(input)
3355	req.SetContext(ctx)
3356	req.ApplyOptions(opts...)
3357	return out, req.Send()
3358}
3359
3360const opGetCachePolicy = "GetCachePolicy2020_05_31"
3361
3362// GetCachePolicyRequest generates a "aws/request.Request" representing the
3363// client's request for the GetCachePolicy operation. The "output" return
3364// value will be populated with the request's response once the request completes
3365// successfully.
3366//
3367// Use "Send" method on the returned Request to send the API call to the service.
3368// the "output" return value is not valid until after Send returns without error.
3369//
3370// See GetCachePolicy for more information on using the GetCachePolicy
3371// API call, and error handling.
3372//
3373// This method is useful when you want to inject custom logic or configuration
3374// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3375//
3376//
3377//    // Example sending a request using the GetCachePolicyRequest method.
3378//    req, resp := client.GetCachePolicyRequest(params)
3379//
3380//    err := req.Send()
3381//    if err == nil { // resp is now filled
3382//        fmt.Println(resp)
3383//    }
3384//
3385// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetCachePolicy
3386func (c *CloudFront) GetCachePolicyRequest(input *GetCachePolicyInput) (req *request.Request, output *GetCachePolicyOutput) {
3387	op := &request.Operation{
3388		Name:       opGetCachePolicy,
3389		HTTPMethod: "GET",
3390		HTTPPath:   "/2020-05-31/cache-policy/{Id}",
3391	}
3392
3393	if input == nil {
3394		input = &GetCachePolicyInput{}
3395	}
3396
3397	output = &GetCachePolicyOutput{}
3398	req = c.newRequest(op, input, output)
3399	return
3400}
3401
3402// GetCachePolicy API operation for Amazon CloudFront.
3403//
3404// Gets a cache policy, including the following metadata:
3405//
3406//    * The policy’s identifier.
3407//
3408//    * The date and time when the policy was last modified.
3409//
3410// To get a cache policy, you must provide the policy’s identifier. If the
3411// cache policy is attached to a distribution’s cache behavior, you can get
3412// the policy’s identifier using ListDistributions or GetDistribution. If
3413// the cache policy is not attached to a cache behavior, you can get the identifier
3414// using ListCachePolicies.
3415//
3416// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3417// with awserr.Error's Code and Message methods to get detailed information about
3418// the error.
3419//
3420// See the AWS API reference guide for Amazon CloudFront's
3421// API operation GetCachePolicy for usage and error information.
3422//
3423// Returned Error Codes:
3424//   * ErrCodeAccessDenied "AccessDenied"
3425//   Access denied.
3426//
3427//   * ErrCodeNoSuchCachePolicy "NoSuchCachePolicy"
3428//   The cache policy does not exist.
3429//
3430// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetCachePolicy
3431func (c *CloudFront) GetCachePolicy(input *GetCachePolicyInput) (*GetCachePolicyOutput, error) {
3432	req, out := c.GetCachePolicyRequest(input)
3433	return out, req.Send()
3434}
3435
3436// GetCachePolicyWithContext is the same as GetCachePolicy with the addition of
3437// the ability to pass a context and additional request options.
3438//
3439// See GetCachePolicy for details on how to use this API operation.
3440//
3441// The context must be non-nil and will be used for request cancellation. If
3442// the context is nil a panic will occur. In the future the SDK may create
3443// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3444// for more information on using Contexts.
3445func (c *CloudFront) GetCachePolicyWithContext(ctx aws.Context, input *GetCachePolicyInput, opts ...request.Option) (*GetCachePolicyOutput, error) {
3446	req, out := c.GetCachePolicyRequest(input)
3447	req.SetContext(ctx)
3448	req.ApplyOptions(opts...)
3449	return out, req.Send()
3450}
3451
3452const opGetCachePolicyConfig = "GetCachePolicyConfig2020_05_31"
3453
3454// GetCachePolicyConfigRequest generates a "aws/request.Request" representing the
3455// client's request for the GetCachePolicyConfig operation. The "output" return
3456// value will be populated with the request's response once the request completes
3457// successfully.
3458//
3459// Use "Send" method on the returned Request to send the API call to the service.
3460// the "output" return value is not valid until after Send returns without error.
3461//
3462// See GetCachePolicyConfig for more information on using the GetCachePolicyConfig
3463// API call, and error handling.
3464//
3465// This method is useful when you want to inject custom logic or configuration
3466// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3467//
3468//
3469//    // Example sending a request using the GetCachePolicyConfigRequest method.
3470//    req, resp := client.GetCachePolicyConfigRequest(params)
3471//
3472//    err := req.Send()
3473//    if err == nil { // resp is now filled
3474//        fmt.Println(resp)
3475//    }
3476//
3477// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetCachePolicyConfig
3478func (c *CloudFront) GetCachePolicyConfigRequest(input *GetCachePolicyConfigInput) (req *request.Request, output *GetCachePolicyConfigOutput) {
3479	op := &request.Operation{
3480		Name:       opGetCachePolicyConfig,
3481		HTTPMethod: "GET",
3482		HTTPPath:   "/2020-05-31/cache-policy/{Id}/config",
3483	}
3484
3485	if input == nil {
3486		input = &GetCachePolicyConfigInput{}
3487	}
3488
3489	output = &GetCachePolicyConfigOutput{}
3490	req = c.newRequest(op, input, output)
3491	return
3492}
3493
3494// GetCachePolicyConfig API operation for Amazon CloudFront.
3495//
3496// Gets a cache policy configuration.
3497//
3498// To get a cache policy configuration, you must provide the policy’s identifier.
3499// If the cache policy is attached to a distribution’s cache behavior, you
3500// can get the policy’s identifier using ListDistributions or GetDistribution.
3501// If the cache policy is not attached to a cache behavior, you can get the
3502// identifier using ListCachePolicies.
3503//
3504// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3505// with awserr.Error's Code and Message methods to get detailed information about
3506// the error.
3507//
3508// See the AWS API reference guide for Amazon CloudFront's
3509// API operation GetCachePolicyConfig for usage and error information.
3510//
3511// Returned Error Codes:
3512//   * ErrCodeAccessDenied "AccessDenied"
3513//   Access denied.
3514//
3515//   * ErrCodeNoSuchCachePolicy "NoSuchCachePolicy"
3516//   The cache policy does not exist.
3517//
3518// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetCachePolicyConfig
3519func (c *CloudFront) GetCachePolicyConfig(input *GetCachePolicyConfigInput) (*GetCachePolicyConfigOutput, error) {
3520	req, out := c.GetCachePolicyConfigRequest(input)
3521	return out, req.Send()
3522}
3523
3524// GetCachePolicyConfigWithContext is the same as GetCachePolicyConfig with the addition of
3525// the ability to pass a context and additional request options.
3526//
3527// See GetCachePolicyConfig for details on how to use this API operation.
3528//
3529// The context must be non-nil and will be used for request cancellation. If
3530// the context is nil a panic will occur. In the future the SDK may create
3531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3532// for more information on using Contexts.
3533func (c *CloudFront) GetCachePolicyConfigWithContext(ctx aws.Context, input *GetCachePolicyConfigInput, opts ...request.Option) (*GetCachePolicyConfigOutput, error) {
3534	req, out := c.GetCachePolicyConfigRequest(input)
3535	req.SetContext(ctx)
3536	req.ApplyOptions(opts...)
3537	return out, req.Send()
3538}
3539
3540const opGetCloudFrontOriginAccessIdentity = "GetCloudFrontOriginAccessIdentity2020_05_31"
3541
3542// GetCloudFrontOriginAccessIdentityRequest generates a "aws/request.Request" representing the
3543// client's request for the GetCloudFrontOriginAccessIdentity operation. The "output" return
3544// value will be populated with the request's response once the request completes
3545// successfully.
3546//
3547// Use "Send" method on the returned Request to send the API call to the service.
3548// the "output" return value is not valid until after Send returns without error.
3549//
3550// See GetCloudFrontOriginAccessIdentity for more information on using the GetCloudFrontOriginAccessIdentity
3551// API call, and error handling.
3552//
3553// This method is useful when you want to inject custom logic or configuration
3554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3555//
3556//
3557//    // Example sending a request using the GetCloudFrontOriginAccessIdentityRequest method.
3558//    req, resp := client.GetCloudFrontOriginAccessIdentityRequest(params)
3559//
3560//    err := req.Send()
3561//    if err == nil { // resp is now filled
3562//        fmt.Println(resp)
3563//    }
3564//
3565// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetCloudFrontOriginAccessIdentity
3566func (c *CloudFront) GetCloudFrontOriginAccessIdentityRequest(input *GetCloudFrontOriginAccessIdentityInput) (req *request.Request, output *GetCloudFrontOriginAccessIdentityOutput) {
3567	op := &request.Operation{
3568		Name:       opGetCloudFrontOriginAccessIdentity,
3569		HTTPMethod: "GET",
3570		HTTPPath:   "/2020-05-31/origin-access-identity/cloudfront/{Id}",
3571	}
3572
3573	if input == nil {
3574		input = &GetCloudFrontOriginAccessIdentityInput{}
3575	}
3576
3577	output = &GetCloudFrontOriginAccessIdentityOutput{}
3578	req = c.newRequest(op, input, output)
3579	return
3580}
3581
3582// GetCloudFrontOriginAccessIdentity API operation for Amazon CloudFront.
3583//
3584// Get the information about an origin access identity.
3585//
3586// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3587// with awserr.Error's Code and Message methods to get detailed information about
3588// the error.
3589//
3590// See the AWS API reference guide for Amazon CloudFront's
3591// API operation GetCloudFrontOriginAccessIdentity for usage and error information.
3592//
3593// Returned Error Codes:
3594//   * ErrCodeNoSuchCloudFrontOriginAccessIdentity "NoSuchCloudFrontOriginAccessIdentity"
3595//   The specified origin access identity does not exist.
3596//
3597//   * ErrCodeAccessDenied "AccessDenied"
3598//   Access denied.
3599//
3600// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetCloudFrontOriginAccessIdentity
3601func (c *CloudFront) GetCloudFrontOriginAccessIdentity(input *GetCloudFrontOriginAccessIdentityInput) (*GetCloudFrontOriginAccessIdentityOutput, error) {
3602	req, out := c.GetCloudFrontOriginAccessIdentityRequest(input)
3603	return out, req.Send()
3604}
3605
3606// GetCloudFrontOriginAccessIdentityWithContext is the same as GetCloudFrontOriginAccessIdentity with the addition of
3607// the ability to pass a context and additional request options.
3608//
3609// See GetCloudFrontOriginAccessIdentity for details on how to use this API operation.
3610//
3611// The context must be non-nil and will be used for request cancellation. If
3612// the context is nil a panic will occur. In the future the SDK may create
3613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3614// for more information on using Contexts.
3615func (c *CloudFront) GetCloudFrontOriginAccessIdentityWithContext(ctx aws.Context, input *GetCloudFrontOriginAccessIdentityInput, opts ...request.Option) (*GetCloudFrontOriginAccessIdentityOutput, error) {
3616	req, out := c.GetCloudFrontOriginAccessIdentityRequest(input)
3617	req.SetContext(ctx)
3618	req.ApplyOptions(opts...)
3619	return out, req.Send()
3620}
3621
3622const opGetCloudFrontOriginAccessIdentityConfig = "GetCloudFrontOriginAccessIdentityConfig2020_05_31"
3623
3624// GetCloudFrontOriginAccessIdentityConfigRequest generates a "aws/request.Request" representing the
3625// client's request for the GetCloudFrontOriginAccessIdentityConfig operation. The "output" return
3626// value will be populated with the request's response once the request completes
3627// successfully.
3628//
3629// Use "Send" method on the returned Request to send the API call to the service.
3630// the "output" return value is not valid until after Send returns without error.
3631//
3632// See GetCloudFrontOriginAccessIdentityConfig for more information on using the GetCloudFrontOriginAccessIdentityConfig
3633// API call, and error handling.
3634//
3635// This method is useful when you want to inject custom logic or configuration
3636// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3637//
3638//
3639//    // Example sending a request using the GetCloudFrontOriginAccessIdentityConfigRequest method.
3640//    req, resp := client.GetCloudFrontOriginAccessIdentityConfigRequest(params)
3641//
3642//    err := req.Send()
3643//    if err == nil { // resp is now filled
3644//        fmt.Println(resp)
3645//    }
3646//
3647// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetCloudFrontOriginAccessIdentityConfig
3648func (c *CloudFront) GetCloudFrontOriginAccessIdentityConfigRequest(input *GetCloudFrontOriginAccessIdentityConfigInput) (req *request.Request, output *GetCloudFrontOriginAccessIdentityConfigOutput) {
3649	op := &request.Operation{
3650		Name:       opGetCloudFrontOriginAccessIdentityConfig,
3651		HTTPMethod: "GET",
3652		HTTPPath:   "/2020-05-31/origin-access-identity/cloudfront/{Id}/config",
3653	}
3654
3655	if input == nil {
3656		input = &GetCloudFrontOriginAccessIdentityConfigInput{}
3657	}
3658
3659	output = &GetCloudFrontOriginAccessIdentityConfigOutput{}
3660	req = c.newRequest(op, input, output)
3661	return
3662}
3663
3664// GetCloudFrontOriginAccessIdentityConfig API operation for Amazon CloudFront.
3665//
3666// Get the configuration information about an origin access identity.
3667//
3668// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3669// with awserr.Error's Code and Message methods to get detailed information about
3670// the error.
3671//
3672// See the AWS API reference guide for Amazon CloudFront's
3673// API operation GetCloudFrontOriginAccessIdentityConfig for usage and error information.
3674//
3675// Returned Error Codes:
3676//   * ErrCodeNoSuchCloudFrontOriginAccessIdentity "NoSuchCloudFrontOriginAccessIdentity"
3677//   The specified origin access identity does not exist.
3678//
3679//   * ErrCodeAccessDenied "AccessDenied"
3680//   Access denied.
3681//
3682// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetCloudFrontOriginAccessIdentityConfig
3683func (c *CloudFront) GetCloudFrontOriginAccessIdentityConfig(input *GetCloudFrontOriginAccessIdentityConfigInput) (*GetCloudFrontOriginAccessIdentityConfigOutput, error) {
3684	req, out := c.GetCloudFrontOriginAccessIdentityConfigRequest(input)
3685	return out, req.Send()
3686}
3687
3688// GetCloudFrontOriginAccessIdentityConfigWithContext is the same as GetCloudFrontOriginAccessIdentityConfig with the addition of
3689// the ability to pass a context and additional request options.
3690//
3691// See GetCloudFrontOriginAccessIdentityConfig for details on how to use this API operation.
3692//
3693// The context must be non-nil and will be used for request cancellation. If
3694// the context is nil a panic will occur. In the future the SDK may create
3695// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3696// for more information on using Contexts.
3697func (c *CloudFront) GetCloudFrontOriginAccessIdentityConfigWithContext(ctx aws.Context, input *GetCloudFrontOriginAccessIdentityConfigInput, opts ...request.Option) (*GetCloudFrontOriginAccessIdentityConfigOutput, error) {
3698	req, out := c.GetCloudFrontOriginAccessIdentityConfigRequest(input)
3699	req.SetContext(ctx)
3700	req.ApplyOptions(opts...)
3701	return out, req.Send()
3702}
3703
3704const opGetDistribution = "GetDistribution2020_05_31"
3705
3706// GetDistributionRequest generates a "aws/request.Request" representing the
3707// client's request for the GetDistribution operation. The "output" return
3708// value will be populated with the request's response once the request completes
3709// successfully.
3710//
3711// Use "Send" method on the returned Request to send the API call to the service.
3712// the "output" return value is not valid until after Send returns without error.
3713//
3714// See GetDistribution for more information on using the GetDistribution
3715// API call, and error handling.
3716//
3717// This method is useful when you want to inject custom logic or configuration
3718// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3719//
3720//
3721//    // Example sending a request using the GetDistributionRequest method.
3722//    req, resp := client.GetDistributionRequest(params)
3723//
3724//    err := req.Send()
3725//    if err == nil { // resp is now filled
3726//        fmt.Println(resp)
3727//    }
3728//
3729// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetDistribution
3730func (c *CloudFront) GetDistributionRequest(input *GetDistributionInput) (req *request.Request, output *GetDistributionOutput) {
3731	op := &request.Operation{
3732		Name:       opGetDistribution,
3733		HTTPMethod: "GET",
3734		HTTPPath:   "/2020-05-31/distribution/{Id}",
3735	}
3736
3737	if input == nil {
3738		input = &GetDistributionInput{}
3739	}
3740
3741	output = &GetDistributionOutput{}
3742	req = c.newRequest(op, input, output)
3743	return
3744}
3745
3746// GetDistribution API operation for Amazon CloudFront.
3747//
3748// Get the information about a distribution.
3749//
3750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3751// with awserr.Error's Code and Message methods to get detailed information about
3752// the error.
3753//
3754// See the AWS API reference guide for Amazon CloudFront's
3755// API operation GetDistribution for usage and error information.
3756//
3757// Returned Error Codes:
3758//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
3759//   The specified distribution does not exist.
3760//
3761//   * ErrCodeAccessDenied "AccessDenied"
3762//   Access denied.
3763//
3764// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetDistribution
3765func (c *CloudFront) GetDistribution(input *GetDistributionInput) (*GetDistributionOutput, error) {
3766	req, out := c.GetDistributionRequest(input)
3767	return out, req.Send()
3768}
3769
3770// GetDistributionWithContext is the same as GetDistribution with the addition of
3771// the ability to pass a context and additional request options.
3772//
3773// See GetDistribution for details on how to use this API operation.
3774//
3775// The context must be non-nil and will be used for request cancellation. If
3776// the context is nil a panic will occur. In the future the SDK may create
3777// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3778// for more information on using Contexts.
3779func (c *CloudFront) GetDistributionWithContext(ctx aws.Context, input *GetDistributionInput, opts ...request.Option) (*GetDistributionOutput, error) {
3780	req, out := c.GetDistributionRequest(input)
3781	req.SetContext(ctx)
3782	req.ApplyOptions(opts...)
3783	return out, req.Send()
3784}
3785
3786const opGetDistributionConfig = "GetDistributionConfig2020_05_31"
3787
3788// GetDistributionConfigRequest generates a "aws/request.Request" representing the
3789// client's request for the GetDistributionConfig operation. The "output" return
3790// value will be populated with the request's response once the request completes
3791// successfully.
3792//
3793// Use "Send" method on the returned Request to send the API call to the service.
3794// the "output" return value is not valid until after Send returns without error.
3795//
3796// See GetDistributionConfig for more information on using the GetDistributionConfig
3797// API call, and error handling.
3798//
3799// This method is useful when you want to inject custom logic or configuration
3800// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3801//
3802//
3803//    // Example sending a request using the GetDistributionConfigRequest method.
3804//    req, resp := client.GetDistributionConfigRequest(params)
3805//
3806//    err := req.Send()
3807//    if err == nil { // resp is now filled
3808//        fmt.Println(resp)
3809//    }
3810//
3811// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetDistributionConfig
3812func (c *CloudFront) GetDistributionConfigRequest(input *GetDistributionConfigInput) (req *request.Request, output *GetDistributionConfigOutput) {
3813	op := &request.Operation{
3814		Name:       opGetDistributionConfig,
3815		HTTPMethod: "GET",
3816		HTTPPath:   "/2020-05-31/distribution/{Id}/config",
3817	}
3818
3819	if input == nil {
3820		input = &GetDistributionConfigInput{}
3821	}
3822
3823	output = &GetDistributionConfigOutput{}
3824	req = c.newRequest(op, input, output)
3825	return
3826}
3827
3828// GetDistributionConfig API operation for Amazon CloudFront.
3829//
3830// Get the configuration information about a distribution.
3831//
3832// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3833// with awserr.Error's Code and Message methods to get detailed information about
3834// the error.
3835//
3836// See the AWS API reference guide for Amazon CloudFront's
3837// API operation GetDistributionConfig for usage and error information.
3838//
3839// Returned Error Codes:
3840//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
3841//   The specified distribution does not exist.
3842//
3843//   * ErrCodeAccessDenied "AccessDenied"
3844//   Access denied.
3845//
3846// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetDistributionConfig
3847func (c *CloudFront) GetDistributionConfig(input *GetDistributionConfigInput) (*GetDistributionConfigOutput, error) {
3848	req, out := c.GetDistributionConfigRequest(input)
3849	return out, req.Send()
3850}
3851
3852// GetDistributionConfigWithContext is the same as GetDistributionConfig with the addition of
3853// the ability to pass a context and additional request options.
3854//
3855// See GetDistributionConfig for details on how to use this API operation.
3856//
3857// The context must be non-nil and will be used for request cancellation. If
3858// the context is nil a panic will occur. In the future the SDK may create
3859// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3860// for more information on using Contexts.
3861func (c *CloudFront) GetDistributionConfigWithContext(ctx aws.Context, input *GetDistributionConfigInput, opts ...request.Option) (*GetDistributionConfigOutput, error) {
3862	req, out := c.GetDistributionConfigRequest(input)
3863	req.SetContext(ctx)
3864	req.ApplyOptions(opts...)
3865	return out, req.Send()
3866}
3867
3868const opGetFieldLevelEncryption = "GetFieldLevelEncryption2020_05_31"
3869
3870// GetFieldLevelEncryptionRequest generates a "aws/request.Request" representing the
3871// client's request for the GetFieldLevelEncryption operation. The "output" return
3872// value will be populated with the request's response once the request completes
3873// successfully.
3874//
3875// Use "Send" method on the returned Request to send the API call to the service.
3876// the "output" return value is not valid until after Send returns without error.
3877//
3878// See GetFieldLevelEncryption for more information on using the GetFieldLevelEncryption
3879// API call, and error handling.
3880//
3881// This method is useful when you want to inject custom logic or configuration
3882// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3883//
3884//
3885//    // Example sending a request using the GetFieldLevelEncryptionRequest method.
3886//    req, resp := client.GetFieldLevelEncryptionRequest(params)
3887//
3888//    err := req.Send()
3889//    if err == nil { // resp is now filled
3890//        fmt.Println(resp)
3891//    }
3892//
3893// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetFieldLevelEncryption
3894func (c *CloudFront) GetFieldLevelEncryptionRequest(input *GetFieldLevelEncryptionInput) (req *request.Request, output *GetFieldLevelEncryptionOutput) {
3895	op := &request.Operation{
3896		Name:       opGetFieldLevelEncryption,
3897		HTTPMethod: "GET",
3898		HTTPPath:   "/2020-05-31/field-level-encryption/{Id}",
3899	}
3900
3901	if input == nil {
3902		input = &GetFieldLevelEncryptionInput{}
3903	}
3904
3905	output = &GetFieldLevelEncryptionOutput{}
3906	req = c.newRequest(op, input, output)
3907	return
3908}
3909
3910// GetFieldLevelEncryption API operation for Amazon CloudFront.
3911//
3912// Get the field-level encryption configuration information.
3913//
3914// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3915// with awserr.Error's Code and Message methods to get detailed information about
3916// the error.
3917//
3918// See the AWS API reference guide for Amazon CloudFront's
3919// API operation GetFieldLevelEncryption for usage and error information.
3920//
3921// Returned Error Codes:
3922//   * ErrCodeAccessDenied "AccessDenied"
3923//   Access denied.
3924//
3925//   * ErrCodeNoSuchFieldLevelEncryptionConfig "NoSuchFieldLevelEncryptionConfig"
3926//   The specified configuration for field-level encryption doesn't exist.
3927//
3928// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetFieldLevelEncryption
3929func (c *CloudFront) GetFieldLevelEncryption(input *GetFieldLevelEncryptionInput) (*GetFieldLevelEncryptionOutput, error) {
3930	req, out := c.GetFieldLevelEncryptionRequest(input)
3931	return out, req.Send()
3932}
3933
3934// GetFieldLevelEncryptionWithContext is the same as GetFieldLevelEncryption with the addition of
3935// the ability to pass a context and additional request options.
3936//
3937// See GetFieldLevelEncryption for details on how to use this API operation.
3938//
3939// The context must be non-nil and will be used for request cancellation. If
3940// the context is nil a panic will occur. In the future the SDK may create
3941// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3942// for more information on using Contexts.
3943func (c *CloudFront) GetFieldLevelEncryptionWithContext(ctx aws.Context, input *GetFieldLevelEncryptionInput, opts ...request.Option) (*GetFieldLevelEncryptionOutput, error) {
3944	req, out := c.GetFieldLevelEncryptionRequest(input)
3945	req.SetContext(ctx)
3946	req.ApplyOptions(opts...)
3947	return out, req.Send()
3948}
3949
3950const opGetFieldLevelEncryptionConfig = "GetFieldLevelEncryptionConfig2020_05_31"
3951
3952// GetFieldLevelEncryptionConfigRequest generates a "aws/request.Request" representing the
3953// client's request for the GetFieldLevelEncryptionConfig operation. The "output" return
3954// value will be populated with the request's response once the request completes
3955// successfully.
3956//
3957// Use "Send" method on the returned Request to send the API call to the service.
3958// the "output" return value is not valid until after Send returns without error.
3959//
3960// See GetFieldLevelEncryptionConfig for more information on using the GetFieldLevelEncryptionConfig
3961// API call, and error handling.
3962//
3963// This method is useful when you want to inject custom logic or configuration
3964// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3965//
3966//
3967//    // Example sending a request using the GetFieldLevelEncryptionConfigRequest method.
3968//    req, resp := client.GetFieldLevelEncryptionConfigRequest(params)
3969//
3970//    err := req.Send()
3971//    if err == nil { // resp is now filled
3972//        fmt.Println(resp)
3973//    }
3974//
3975// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetFieldLevelEncryptionConfig
3976func (c *CloudFront) GetFieldLevelEncryptionConfigRequest(input *GetFieldLevelEncryptionConfigInput) (req *request.Request, output *GetFieldLevelEncryptionConfigOutput) {
3977	op := &request.Operation{
3978		Name:       opGetFieldLevelEncryptionConfig,
3979		HTTPMethod: "GET",
3980		HTTPPath:   "/2020-05-31/field-level-encryption/{Id}/config",
3981	}
3982
3983	if input == nil {
3984		input = &GetFieldLevelEncryptionConfigInput{}
3985	}
3986
3987	output = &GetFieldLevelEncryptionConfigOutput{}
3988	req = c.newRequest(op, input, output)
3989	return
3990}
3991
3992// GetFieldLevelEncryptionConfig API operation for Amazon CloudFront.
3993//
3994// Get the field-level encryption configuration information.
3995//
3996// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3997// with awserr.Error's Code and Message methods to get detailed information about
3998// the error.
3999//
4000// See the AWS API reference guide for Amazon CloudFront's
4001// API operation GetFieldLevelEncryptionConfig for usage and error information.
4002//
4003// Returned Error Codes:
4004//   * ErrCodeAccessDenied "AccessDenied"
4005//   Access denied.
4006//
4007//   * ErrCodeNoSuchFieldLevelEncryptionConfig "NoSuchFieldLevelEncryptionConfig"
4008//   The specified configuration for field-level encryption doesn't exist.
4009//
4010// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetFieldLevelEncryptionConfig
4011func (c *CloudFront) GetFieldLevelEncryptionConfig(input *GetFieldLevelEncryptionConfigInput) (*GetFieldLevelEncryptionConfigOutput, error) {
4012	req, out := c.GetFieldLevelEncryptionConfigRequest(input)
4013	return out, req.Send()
4014}
4015
4016// GetFieldLevelEncryptionConfigWithContext is the same as GetFieldLevelEncryptionConfig with the addition of
4017// the ability to pass a context and additional request options.
4018//
4019// See GetFieldLevelEncryptionConfig for details on how to use this API operation.
4020//
4021// The context must be non-nil and will be used for request cancellation. If
4022// the context is nil a panic will occur. In the future the SDK may create
4023// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4024// for more information on using Contexts.
4025func (c *CloudFront) GetFieldLevelEncryptionConfigWithContext(ctx aws.Context, input *GetFieldLevelEncryptionConfigInput, opts ...request.Option) (*GetFieldLevelEncryptionConfigOutput, error) {
4026	req, out := c.GetFieldLevelEncryptionConfigRequest(input)
4027	req.SetContext(ctx)
4028	req.ApplyOptions(opts...)
4029	return out, req.Send()
4030}
4031
4032const opGetFieldLevelEncryptionProfile = "GetFieldLevelEncryptionProfile2020_05_31"
4033
4034// GetFieldLevelEncryptionProfileRequest generates a "aws/request.Request" representing the
4035// client's request for the GetFieldLevelEncryptionProfile operation. The "output" return
4036// value will be populated with the request's response once the request completes
4037// successfully.
4038//
4039// Use "Send" method on the returned Request to send the API call to the service.
4040// the "output" return value is not valid until after Send returns without error.
4041//
4042// See GetFieldLevelEncryptionProfile for more information on using the GetFieldLevelEncryptionProfile
4043// API call, and error handling.
4044//
4045// This method is useful when you want to inject custom logic or configuration
4046// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4047//
4048//
4049//    // Example sending a request using the GetFieldLevelEncryptionProfileRequest method.
4050//    req, resp := client.GetFieldLevelEncryptionProfileRequest(params)
4051//
4052//    err := req.Send()
4053//    if err == nil { // resp is now filled
4054//        fmt.Println(resp)
4055//    }
4056//
4057// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetFieldLevelEncryptionProfile
4058func (c *CloudFront) GetFieldLevelEncryptionProfileRequest(input *GetFieldLevelEncryptionProfileInput) (req *request.Request, output *GetFieldLevelEncryptionProfileOutput) {
4059	op := &request.Operation{
4060		Name:       opGetFieldLevelEncryptionProfile,
4061		HTTPMethod: "GET",
4062		HTTPPath:   "/2020-05-31/field-level-encryption-profile/{Id}",
4063	}
4064
4065	if input == nil {
4066		input = &GetFieldLevelEncryptionProfileInput{}
4067	}
4068
4069	output = &GetFieldLevelEncryptionProfileOutput{}
4070	req = c.newRequest(op, input, output)
4071	return
4072}
4073
4074// GetFieldLevelEncryptionProfile API operation for Amazon CloudFront.
4075//
4076// Get the field-level encryption profile information.
4077//
4078// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4079// with awserr.Error's Code and Message methods to get detailed information about
4080// the error.
4081//
4082// See the AWS API reference guide for Amazon CloudFront's
4083// API operation GetFieldLevelEncryptionProfile for usage and error information.
4084//
4085// Returned Error Codes:
4086//   * ErrCodeAccessDenied "AccessDenied"
4087//   Access denied.
4088//
4089//   * ErrCodeNoSuchFieldLevelEncryptionProfile "NoSuchFieldLevelEncryptionProfile"
4090//   The specified profile for field-level encryption doesn't exist.
4091//
4092// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetFieldLevelEncryptionProfile
4093func (c *CloudFront) GetFieldLevelEncryptionProfile(input *GetFieldLevelEncryptionProfileInput) (*GetFieldLevelEncryptionProfileOutput, error) {
4094	req, out := c.GetFieldLevelEncryptionProfileRequest(input)
4095	return out, req.Send()
4096}
4097
4098// GetFieldLevelEncryptionProfileWithContext is the same as GetFieldLevelEncryptionProfile with the addition of
4099// the ability to pass a context and additional request options.
4100//
4101// See GetFieldLevelEncryptionProfile for details on how to use this API operation.
4102//
4103// The context must be non-nil and will be used for request cancellation. If
4104// the context is nil a panic will occur. In the future the SDK may create
4105// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4106// for more information on using Contexts.
4107func (c *CloudFront) GetFieldLevelEncryptionProfileWithContext(ctx aws.Context, input *GetFieldLevelEncryptionProfileInput, opts ...request.Option) (*GetFieldLevelEncryptionProfileOutput, error) {
4108	req, out := c.GetFieldLevelEncryptionProfileRequest(input)
4109	req.SetContext(ctx)
4110	req.ApplyOptions(opts...)
4111	return out, req.Send()
4112}
4113
4114const opGetFieldLevelEncryptionProfileConfig = "GetFieldLevelEncryptionProfileConfig2020_05_31"
4115
4116// GetFieldLevelEncryptionProfileConfigRequest generates a "aws/request.Request" representing the
4117// client's request for the GetFieldLevelEncryptionProfileConfig operation. The "output" return
4118// value will be populated with the request's response once the request completes
4119// successfully.
4120//
4121// Use "Send" method on the returned Request to send the API call to the service.
4122// the "output" return value is not valid until after Send returns without error.
4123//
4124// See GetFieldLevelEncryptionProfileConfig for more information on using the GetFieldLevelEncryptionProfileConfig
4125// API call, and error handling.
4126//
4127// This method is useful when you want to inject custom logic or configuration
4128// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4129//
4130//
4131//    // Example sending a request using the GetFieldLevelEncryptionProfileConfigRequest method.
4132//    req, resp := client.GetFieldLevelEncryptionProfileConfigRequest(params)
4133//
4134//    err := req.Send()
4135//    if err == nil { // resp is now filled
4136//        fmt.Println(resp)
4137//    }
4138//
4139// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetFieldLevelEncryptionProfileConfig
4140func (c *CloudFront) GetFieldLevelEncryptionProfileConfigRequest(input *GetFieldLevelEncryptionProfileConfigInput) (req *request.Request, output *GetFieldLevelEncryptionProfileConfigOutput) {
4141	op := &request.Operation{
4142		Name:       opGetFieldLevelEncryptionProfileConfig,
4143		HTTPMethod: "GET",
4144		HTTPPath:   "/2020-05-31/field-level-encryption-profile/{Id}/config",
4145	}
4146
4147	if input == nil {
4148		input = &GetFieldLevelEncryptionProfileConfigInput{}
4149	}
4150
4151	output = &GetFieldLevelEncryptionProfileConfigOutput{}
4152	req = c.newRequest(op, input, output)
4153	return
4154}
4155
4156// GetFieldLevelEncryptionProfileConfig API operation for Amazon CloudFront.
4157//
4158// Get the field-level encryption profile configuration information.
4159//
4160// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4161// with awserr.Error's Code and Message methods to get detailed information about
4162// the error.
4163//
4164// See the AWS API reference guide for Amazon CloudFront's
4165// API operation GetFieldLevelEncryptionProfileConfig for usage and error information.
4166//
4167// Returned Error Codes:
4168//   * ErrCodeAccessDenied "AccessDenied"
4169//   Access denied.
4170//
4171//   * ErrCodeNoSuchFieldLevelEncryptionProfile "NoSuchFieldLevelEncryptionProfile"
4172//   The specified profile for field-level encryption doesn't exist.
4173//
4174// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetFieldLevelEncryptionProfileConfig
4175func (c *CloudFront) GetFieldLevelEncryptionProfileConfig(input *GetFieldLevelEncryptionProfileConfigInput) (*GetFieldLevelEncryptionProfileConfigOutput, error) {
4176	req, out := c.GetFieldLevelEncryptionProfileConfigRequest(input)
4177	return out, req.Send()
4178}
4179
4180// GetFieldLevelEncryptionProfileConfigWithContext is the same as GetFieldLevelEncryptionProfileConfig with the addition of
4181// the ability to pass a context and additional request options.
4182//
4183// See GetFieldLevelEncryptionProfileConfig for details on how to use this API operation.
4184//
4185// The context must be non-nil and will be used for request cancellation. If
4186// the context is nil a panic will occur. In the future the SDK may create
4187// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4188// for more information on using Contexts.
4189func (c *CloudFront) GetFieldLevelEncryptionProfileConfigWithContext(ctx aws.Context, input *GetFieldLevelEncryptionProfileConfigInput, opts ...request.Option) (*GetFieldLevelEncryptionProfileConfigOutput, error) {
4190	req, out := c.GetFieldLevelEncryptionProfileConfigRequest(input)
4191	req.SetContext(ctx)
4192	req.ApplyOptions(opts...)
4193	return out, req.Send()
4194}
4195
4196const opGetFunction = "GetFunction2020_05_31"
4197
4198// GetFunctionRequest generates a "aws/request.Request" representing the
4199// client's request for the GetFunction operation. The "output" return
4200// value will be populated with the request's response once the request completes
4201// successfully.
4202//
4203// Use "Send" method on the returned Request to send the API call to the service.
4204// the "output" return value is not valid until after Send returns without error.
4205//
4206// See GetFunction for more information on using the GetFunction
4207// API call, and error handling.
4208//
4209// This method is useful when you want to inject custom logic or configuration
4210// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4211//
4212//
4213//    // Example sending a request using the GetFunctionRequest method.
4214//    req, resp := client.GetFunctionRequest(params)
4215//
4216//    err := req.Send()
4217//    if err == nil { // resp is now filled
4218//        fmt.Println(resp)
4219//    }
4220//
4221// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetFunction
4222func (c *CloudFront) GetFunctionRequest(input *GetFunctionInput) (req *request.Request, output *GetFunctionOutput) {
4223	op := &request.Operation{
4224		Name:       opGetFunction,
4225		HTTPMethod: "GET",
4226		HTTPPath:   "/2020-05-31/function/{Name}",
4227	}
4228
4229	if input == nil {
4230		input = &GetFunctionInput{}
4231	}
4232
4233	output = &GetFunctionOutput{}
4234	req = c.newRequest(op, input, output)
4235	return
4236}
4237
4238// GetFunction API operation for Amazon CloudFront.
4239//
4240// Gets the code of a CloudFront function. To get configuration information
4241// and metadata about a function, use DescribeFunction.
4242//
4243// To get a function’s code, you must provide the function’s name and stage.
4244// To get these values, you can use ListFunctions.
4245//
4246// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4247// with awserr.Error's Code and Message methods to get detailed information about
4248// the error.
4249//
4250// See the AWS API reference guide for Amazon CloudFront's
4251// API operation GetFunction for usage and error information.
4252//
4253// Returned Error Codes:
4254//   * ErrCodeNoSuchFunctionExists "NoSuchFunctionExists"
4255//   The function does not exist.
4256//
4257//   * ErrCodeUnsupportedOperation "UnsupportedOperation"
4258//   This operation is not supported in this region.
4259//
4260// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetFunction
4261func (c *CloudFront) GetFunction(input *GetFunctionInput) (*GetFunctionOutput, error) {
4262	req, out := c.GetFunctionRequest(input)
4263	return out, req.Send()
4264}
4265
4266// GetFunctionWithContext is the same as GetFunction with the addition of
4267// the ability to pass a context and additional request options.
4268//
4269// See GetFunction for details on how to use this API operation.
4270//
4271// The context must be non-nil and will be used for request cancellation. If
4272// the context is nil a panic will occur. In the future the SDK may create
4273// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4274// for more information on using Contexts.
4275func (c *CloudFront) GetFunctionWithContext(ctx aws.Context, input *GetFunctionInput, opts ...request.Option) (*GetFunctionOutput, error) {
4276	req, out := c.GetFunctionRequest(input)
4277	req.SetContext(ctx)
4278	req.ApplyOptions(opts...)
4279	return out, req.Send()
4280}
4281
4282const opGetInvalidation = "GetInvalidation2020_05_31"
4283
4284// GetInvalidationRequest generates a "aws/request.Request" representing the
4285// client's request for the GetInvalidation operation. The "output" return
4286// value will be populated with the request's response once the request completes
4287// successfully.
4288//
4289// Use "Send" method on the returned Request to send the API call to the service.
4290// the "output" return value is not valid until after Send returns without error.
4291//
4292// See GetInvalidation for more information on using the GetInvalidation
4293// API call, and error handling.
4294//
4295// This method is useful when you want to inject custom logic or configuration
4296// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4297//
4298//
4299//    // Example sending a request using the GetInvalidationRequest method.
4300//    req, resp := client.GetInvalidationRequest(params)
4301//
4302//    err := req.Send()
4303//    if err == nil { // resp is now filled
4304//        fmt.Println(resp)
4305//    }
4306//
4307// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetInvalidation
4308func (c *CloudFront) GetInvalidationRequest(input *GetInvalidationInput) (req *request.Request, output *GetInvalidationOutput) {
4309	op := &request.Operation{
4310		Name:       opGetInvalidation,
4311		HTTPMethod: "GET",
4312		HTTPPath:   "/2020-05-31/distribution/{DistributionId}/invalidation/{Id}",
4313	}
4314
4315	if input == nil {
4316		input = &GetInvalidationInput{}
4317	}
4318
4319	output = &GetInvalidationOutput{}
4320	req = c.newRequest(op, input, output)
4321	return
4322}
4323
4324// GetInvalidation API operation for Amazon CloudFront.
4325//
4326// Get the information about an invalidation.
4327//
4328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4329// with awserr.Error's Code and Message methods to get detailed information about
4330// the error.
4331//
4332// See the AWS API reference guide for Amazon CloudFront's
4333// API operation GetInvalidation for usage and error information.
4334//
4335// Returned Error Codes:
4336//   * ErrCodeNoSuchInvalidation "NoSuchInvalidation"
4337//   The specified invalidation does not exist.
4338//
4339//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
4340//   The specified distribution does not exist.
4341//
4342//   * ErrCodeAccessDenied "AccessDenied"
4343//   Access denied.
4344//
4345// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetInvalidation
4346func (c *CloudFront) GetInvalidation(input *GetInvalidationInput) (*GetInvalidationOutput, error) {
4347	req, out := c.GetInvalidationRequest(input)
4348	return out, req.Send()
4349}
4350
4351// GetInvalidationWithContext is the same as GetInvalidation with the addition of
4352// the ability to pass a context and additional request options.
4353//
4354// See GetInvalidation for details on how to use this API operation.
4355//
4356// The context must be non-nil and will be used for request cancellation. If
4357// the context is nil a panic will occur. In the future the SDK may create
4358// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4359// for more information on using Contexts.
4360func (c *CloudFront) GetInvalidationWithContext(ctx aws.Context, input *GetInvalidationInput, opts ...request.Option) (*GetInvalidationOutput, error) {
4361	req, out := c.GetInvalidationRequest(input)
4362	req.SetContext(ctx)
4363	req.ApplyOptions(opts...)
4364	return out, req.Send()
4365}
4366
4367const opGetKeyGroup = "GetKeyGroup2020_05_31"
4368
4369// GetKeyGroupRequest generates a "aws/request.Request" representing the
4370// client's request for the GetKeyGroup operation. The "output" return
4371// value will be populated with the request's response once the request completes
4372// successfully.
4373//
4374// Use "Send" method on the returned Request to send the API call to the service.
4375// the "output" return value is not valid until after Send returns without error.
4376//
4377// See GetKeyGroup for more information on using the GetKeyGroup
4378// API call, and error handling.
4379//
4380// This method is useful when you want to inject custom logic or configuration
4381// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4382//
4383//
4384//    // Example sending a request using the GetKeyGroupRequest method.
4385//    req, resp := client.GetKeyGroupRequest(params)
4386//
4387//    err := req.Send()
4388//    if err == nil { // resp is now filled
4389//        fmt.Println(resp)
4390//    }
4391//
4392// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetKeyGroup
4393func (c *CloudFront) GetKeyGroupRequest(input *GetKeyGroupInput) (req *request.Request, output *GetKeyGroupOutput) {
4394	op := &request.Operation{
4395		Name:       opGetKeyGroup,
4396		HTTPMethod: "GET",
4397		HTTPPath:   "/2020-05-31/key-group/{Id}",
4398	}
4399
4400	if input == nil {
4401		input = &GetKeyGroupInput{}
4402	}
4403
4404	output = &GetKeyGroupOutput{}
4405	req = c.newRequest(op, input, output)
4406	return
4407}
4408
4409// GetKeyGroup API operation for Amazon CloudFront.
4410//
4411// Gets a key group, including the date and time when the key group was last
4412// modified.
4413//
4414// To get a key group, you must provide the key group’s identifier. If the
4415// key group is referenced in a distribution’s cache behavior, you can get
4416// the key group’s identifier using ListDistributions or GetDistribution.
4417// If the key group is not referenced in a cache behavior, you can get the identifier
4418// using ListKeyGroups.
4419//
4420// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4421// with awserr.Error's Code and Message methods to get detailed information about
4422// the error.
4423//
4424// See the AWS API reference guide for Amazon CloudFront's
4425// API operation GetKeyGroup for usage and error information.
4426//
4427// Returned Error Codes:
4428//   * ErrCodeNoSuchResource "NoSuchResource"
4429//   A resource that was specified is not valid.
4430//
4431// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetKeyGroup
4432func (c *CloudFront) GetKeyGroup(input *GetKeyGroupInput) (*GetKeyGroupOutput, error) {
4433	req, out := c.GetKeyGroupRequest(input)
4434	return out, req.Send()
4435}
4436
4437// GetKeyGroupWithContext is the same as GetKeyGroup with the addition of
4438// the ability to pass a context and additional request options.
4439//
4440// See GetKeyGroup for details on how to use this API operation.
4441//
4442// The context must be non-nil and will be used for request cancellation. If
4443// the context is nil a panic will occur. In the future the SDK may create
4444// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4445// for more information on using Contexts.
4446func (c *CloudFront) GetKeyGroupWithContext(ctx aws.Context, input *GetKeyGroupInput, opts ...request.Option) (*GetKeyGroupOutput, error) {
4447	req, out := c.GetKeyGroupRequest(input)
4448	req.SetContext(ctx)
4449	req.ApplyOptions(opts...)
4450	return out, req.Send()
4451}
4452
4453const opGetKeyGroupConfig = "GetKeyGroupConfig2020_05_31"
4454
4455// GetKeyGroupConfigRequest generates a "aws/request.Request" representing the
4456// client's request for the GetKeyGroupConfig operation. The "output" return
4457// value will be populated with the request's response once the request completes
4458// successfully.
4459//
4460// Use "Send" method on the returned Request to send the API call to the service.
4461// the "output" return value is not valid until after Send returns without error.
4462//
4463// See GetKeyGroupConfig for more information on using the GetKeyGroupConfig
4464// API call, and error handling.
4465//
4466// This method is useful when you want to inject custom logic or configuration
4467// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4468//
4469//
4470//    // Example sending a request using the GetKeyGroupConfigRequest method.
4471//    req, resp := client.GetKeyGroupConfigRequest(params)
4472//
4473//    err := req.Send()
4474//    if err == nil { // resp is now filled
4475//        fmt.Println(resp)
4476//    }
4477//
4478// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetKeyGroupConfig
4479func (c *CloudFront) GetKeyGroupConfigRequest(input *GetKeyGroupConfigInput) (req *request.Request, output *GetKeyGroupConfigOutput) {
4480	op := &request.Operation{
4481		Name:       opGetKeyGroupConfig,
4482		HTTPMethod: "GET",
4483		HTTPPath:   "/2020-05-31/key-group/{Id}/config",
4484	}
4485
4486	if input == nil {
4487		input = &GetKeyGroupConfigInput{}
4488	}
4489
4490	output = &GetKeyGroupConfigOutput{}
4491	req = c.newRequest(op, input, output)
4492	return
4493}
4494
4495// GetKeyGroupConfig API operation for Amazon CloudFront.
4496//
4497// Gets a key group configuration.
4498//
4499// To get a key group configuration, you must provide the key group’s identifier.
4500// If the key group is referenced in a distribution’s cache behavior, you
4501// can get the key group’s identifier using ListDistributions or GetDistribution.
4502// If the key group is not referenced in a cache behavior, you can get the identifier
4503// using ListKeyGroups.
4504//
4505// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4506// with awserr.Error's Code and Message methods to get detailed information about
4507// the error.
4508//
4509// See the AWS API reference guide for Amazon CloudFront's
4510// API operation GetKeyGroupConfig for usage and error information.
4511//
4512// Returned Error Codes:
4513//   * ErrCodeNoSuchResource "NoSuchResource"
4514//   A resource that was specified is not valid.
4515//
4516// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetKeyGroupConfig
4517func (c *CloudFront) GetKeyGroupConfig(input *GetKeyGroupConfigInput) (*GetKeyGroupConfigOutput, error) {
4518	req, out := c.GetKeyGroupConfigRequest(input)
4519	return out, req.Send()
4520}
4521
4522// GetKeyGroupConfigWithContext is the same as GetKeyGroupConfig with the addition of
4523// the ability to pass a context and additional request options.
4524//
4525// See GetKeyGroupConfig for details on how to use this API operation.
4526//
4527// The context must be non-nil and will be used for request cancellation. If
4528// the context is nil a panic will occur. In the future the SDK may create
4529// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4530// for more information on using Contexts.
4531func (c *CloudFront) GetKeyGroupConfigWithContext(ctx aws.Context, input *GetKeyGroupConfigInput, opts ...request.Option) (*GetKeyGroupConfigOutput, error) {
4532	req, out := c.GetKeyGroupConfigRequest(input)
4533	req.SetContext(ctx)
4534	req.ApplyOptions(opts...)
4535	return out, req.Send()
4536}
4537
4538const opGetMonitoringSubscription = "GetMonitoringSubscription2020_05_31"
4539
4540// GetMonitoringSubscriptionRequest generates a "aws/request.Request" representing the
4541// client's request for the GetMonitoringSubscription operation. The "output" return
4542// value will be populated with the request's response once the request completes
4543// successfully.
4544//
4545// Use "Send" method on the returned Request to send the API call to the service.
4546// the "output" return value is not valid until after Send returns without error.
4547//
4548// See GetMonitoringSubscription for more information on using the GetMonitoringSubscription
4549// API call, and error handling.
4550//
4551// This method is useful when you want to inject custom logic or configuration
4552// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4553//
4554//
4555//    // Example sending a request using the GetMonitoringSubscriptionRequest method.
4556//    req, resp := client.GetMonitoringSubscriptionRequest(params)
4557//
4558//    err := req.Send()
4559//    if err == nil { // resp is now filled
4560//        fmt.Println(resp)
4561//    }
4562//
4563// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetMonitoringSubscription
4564func (c *CloudFront) GetMonitoringSubscriptionRequest(input *GetMonitoringSubscriptionInput) (req *request.Request, output *GetMonitoringSubscriptionOutput) {
4565	op := &request.Operation{
4566		Name:       opGetMonitoringSubscription,
4567		HTTPMethod: "GET",
4568		HTTPPath:   "/2020-05-31/distributions/{DistributionId}/monitoring-subscription",
4569	}
4570
4571	if input == nil {
4572		input = &GetMonitoringSubscriptionInput{}
4573	}
4574
4575	output = &GetMonitoringSubscriptionOutput{}
4576	req = c.newRequest(op, input, output)
4577	return
4578}
4579
4580// GetMonitoringSubscription API operation for Amazon CloudFront.
4581//
4582// Gets information about whether additional CloudWatch metrics are enabled
4583// for the specified CloudFront distribution.
4584//
4585// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4586// with awserr.Error's Code and Message methods to get detailed information about
4587// the error.
4588//
4589// See the AWS API reference guide for Amazon CloudFront's
4590// API operation GetMonitoringSubscription for usage and error information.
4591//
4592// Returned Error Codes:
4593//   * ErrCodeAccessDenied "AccessDenied"
4594//   Access denied.
4595//
4596//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
4597//   The specified distribution does not exist.
4598//
4599//   * ErrCodeUnsupportedOperation "UnsupportedOperation"
4600//   This operation is not supported in this region.
4601//
4602// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetMonitoringSubscription
4603func (c *CloudFront) GetMonitoringSubscription(input *GetMonitoringSubscriptionInput) (*GetMonitoringSubscriptionOutput, error) {
4604	req, out := c.GetMonitoringSubscriptionRequest(input)
4605	return out, req.Send()
4606}
4607
4608// GetMonitoringSubscriptionWithContext is the same as GetMonitoringSubscription with the addition of
4609// the ability to pass a context and additional request options.
4610//
4611// See GetMonitoringSubscription for details on how to use this API operation.
4612//
4613// The context must be non-nil and will be used for request cancellation. If
4614// the context is nil a panic will occur. In the future the SDK may create
4615// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4616// for more information on using Contexts.
4617func (c *CloudFront) GetMonitoringSubscriptionWithContext(ctx aws.Context, input *GetMonitoringSubscriptionInput, opts ...request.Option) (*GetMonitoringSubscriptionOutput, error) {
4618	req, out := c.GetMonitoringSubscriptionRequest(input)
4619	req.SetContext(ctx)
4620	req.ApplyOptions(opts...)
4621	return out, req.Send()
4622}
4623
4624const opGetOriginRequestPolicy = "GetOriginRequestPolicy2020_05_31"
4625
4626// GetOriginRequestPolicyRequest generates a "aws/request.Request" representing the
4627// client's request for the GetOriginRequestPolicy operation. The "output" return
4628// value will be populated with the request's response once the request completes
4629// successfully.
4630//
4631// Use "Send" method on the returned Request to send the API call to the service.
4632// the "output" return value is not valid until after Send returns without error.
4633//
4634// See GetOriginRequestPolicy for more information on using the GetOriginRequestPolicy
4635// API call, and error handling.
4636//
4637// This method is useful when you want to inject custom logic or configuration
4638// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4639//
4640//
4641//    // Example sending a request using the GetOriginRequestPolicyRequest method.
4642//    req, resp := client.GetOriginRequestPolicyRequest(params)
4643//
4644//    err := req.Send()
4645//    if err == nil { // resp is now filled
4646//        fmt.Println(resp)
4647//    }
4648//
4649// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetOriginRequestPolicy
4650func (c *CloudFront) GetOriginRequestPolicyRequest(input *GetOriginRequestPolicyInput) (req *request.Request, output *GetOriginRequestPolicyOutput) {
4651	op := &request.Operation{
4652		Name:       opGetOriginRequestPolicy,
4653		HTTPMethod: "GET",
4654		HTTPPath:   "/2020-05-31/origin-request-policy/{Id}",
4655	}
4656
4657	if input == nil {
4658		input = &GetOriginRequestPolicyInput{}
4659	}
4660
4661	output = &GetOriginRequestPolicyOutput{}
4662	req = c.newRequest(op, input, output)
4663	return
4664}
4665
4666// GetOriginRequestPolicy API operation for Amazon CloudFront.
4667//
4668// Gets an origin request policy, including the following metadata:
4669//
4670//    * The policy’s identifier.
4671//
4672//    * The date and time when the policy was last modified.
4673//
4674// To get an origin request policy, you must provide the policy’s identifier.
4675// If the origin request policy is attached to a distribution’s cache behavior,
4676// you can get the policy’s identifier using ListDistributions or GetDistribution.
4677// If the origin request policy is not attached to a cache behavior, you can
4678// get the identifier using ListOriginRequestPolicies.
4679//
4680// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4681// with awserr.Error's Code and Message methods to get detailed information about
4682// the error.
4683//
4684// See the AWS API reference guide for Amazon CloudFront's
4685// API operation GetOriginRequestPolicy for usage and error information.
4686//
4687// Returned Error Codes:
4688//   * ErrCodeAccessDenied "AccessDenied"
4689//   Access denied.
4690//
4691//   * ErrCodeNoSuchOriginRequestPolicy "NoSuchOriginRequestPolicy"
4692//   The origin request policy does not exist.
4693//
4694// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetOriginRequestPolicy
4695func (c *CloudFront) GetOriginRequestPolicy(input *GetOriginRequestPolicyInput) (*GetOriginRequestPolicyOutput, error) {
4696	req, out := c.GetOriginRequestPolicyRequest(input)
4697	return out, req.Send()
4698}
4699
4700// GetOriginRequestPolicyWithContext is the same as GetOriginRequestPolicy with the addition of
4701// the ability to pass a context and additional request options.
4702//
4703// See GetOriginRequestPolicy for details on how to use this API operation.
4704//
4705// The context must be non-nil and will be used for request cancellation. If
4706// the context is nil a panic will occur. In the future the SDK may create
4707// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4708// for more information on using Contexts.
4709func (c *CloudFront) GetOriginRequestPolicyWithContext(ctx aws.Context, input *GetOriginRequestPolicyInput, opts ...request.Option) (*GetOriginRequestPolicyOutput, error) {
4710	req, out := c.GetOriginRequestPolicyRequest(input)
4711	req.SetContext(ctx)
4712	req.ApplyOptions(opts...)
4713	return out, req.Send()
4714}
4715
4716const opGetOriginRequestPolicyConfig = "GetOriginRequestPolicyConfig2020_05_31"
4717
4718// GetOriginRequestPolicyConfigRequest generates a "aws/request.Request" representing the
4719// client's request for the GetOriginRequestPolicyConfig operation. The "output" return
4720// value will be populated with the request's response once the request completes
4721// successfully.
4722//
4723// Use "Send" method on the returned Request to send the API call to the service.
4724// the "output" return value is not valid until after Send returns without error.
4725//
4726// See GetOriginRequestPolicyConfig for more information on using the GetOriginRequestPolicyConfig
4727// API call, and error handling.
4728//
4729// This method is useful when you want to inject custom logic or configuration
4730// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4731//
4732//
4733//    // Example sending a request using the GetOriginRequestPolicyConfigRequest method.
4734//    req, resp := client.GetOriginRequestPolicyConfigRequest(params)
4735//
4736//    err := req.Send()
4737//    if err == nil { // resp is now filled
4738//        fmt.Println(resp)
4739//    }
4740//
4741// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetOriginRequestPolicyConfig
4742func (c *CloudFront) GetOriginRequestPolicyConfigRequest(input *GetOriginRequestPolicyConfigInput) (req *request.Request, output *GetOriginRequestPolicyConfigOutput) {
4743	op := &request.Operation{
4744		Name:       opGetOriginRequestPolicyConfig,
4745		HTTPMethod: "GET",
4746		HTTPPath:   "/2020-05-31/origin-request-policy/{Id}/config",
4747	}
4748
4749	if input == nil {
4750		input = &GetOriginRequestPolicyConfigInput{}
4751	}
4752
4753	output = &GetOriginRequestPolicyConfigOutput{}
4754	req = c.newRequest(op, input, output)
4755	return
4756}
4757
4758// GetOriginRequestPolicyConfig API operation for Amazon CloudFront.
4759//
4760// Gets an origin request policy configuration.
4761//
4762// To get an origin request policy configuration, you must provide the policy’s
4763// identifier. If the origin request policy is attached to a distribution’s
4764// cache behavior, you can get the policy’s identifier using ListDistributions
4765// or GetDistribution. If the origin request policy is not attached to a cache
4766// behavior, you can get the identifier using ListOriginRequestPolicies.
4767//
4768// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4769// with awserr.Error's Code and Message methods to get detailed information about
4770// the error.
4771//
4772// See the AWS API reference guide for Amazon CloudFront's
4773// API operation GetOriginRequestPolicyConfig for usage and error information.
4774//
4775// Returned Error Codes:
4776//   * ErrCodeAccessDenied "AccessDenied"
4777//   Access denied.
4778//
4779//   * ErrCodeNoSuchOriginRequestPolicy "NoSuchOriginRequestPolicy"
4780//   The origin request policy does not exist.
4781//
4782// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetOriginRequestPolicyConfig
4783func (c *CloudFront) GetOriginRequestPolicyConfig(input *GetOriginRequestPolicyConfigInput) (*GetOriginRequestPolicyConfigOutput, error) {
4784	req, out := c.GetOriginRequestPolicyConfigRequest(input)
4785	return out, req.Send()
4786}
4787
4788// GetOriginRequestPolicyConfigWithContext is the same as GetOriginRequestPolicyConfig with the addition of
4789// the ability to pass a context and additional request options.
4790//
4791// See GetOriginRequestPolicyConfig for details on how to use this API operation.
4792//
4793// The context must be non-nil and will be used for request cancellation. If
4794// the context is nil a panic will occur. In the future the SDK may create
4795// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4796// for more information on using Contexts.
4797func (c *CloudFront) GetOriginRequestPolicyConfigWithContext(ctx aws.Context, input *GetOriginRequestPolicyConfigInput, opts ...request.Option) (*GetOriginRequestPolicyConfigOutput, error) {
4798	req, out := c.GetOriginRequestPolicyConfigRequest(input)
4799	req.SetContext(ctx)
4800	req.ApplyOptions(opts...)
4801	return out, req.Send()
4802}
4803
4804const opGetPublicKey = "GetPublicKey2020_05_31"
4805
4806// GetPublicKeyRequest generates a "aws/request.Request" representing the
4807// client's request for the GetPublicKey operation. The "output" return
4808// value will be populated with the request's response once the request completes
4809// successfully.
4810//
4811// Use "Send" method on the returned Request to send the API call to the service.
4812// the "output" return value is not valid until after Send returns without error.
4813//
4814// See GetPublicKey for more information on using the GetPublicKey
4815// API call, and error handling.
4816//
4817// This method is useful when you want to inject custom logic or configuration
4818// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4819//
4820//
4821//    // Example sending a request using the GetPublicKeyRequest method.
4822//    req, resp := client.GetPublicKeyRequest(params)
4823//
4824//    err := req.Send()
4825//    if err == nil { // resp is now filled
4826//        fmt.Println(resp)
4827//    }
4828//
4829// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKey
4830func (c *CloudFront) GetPublicKeyRequest(input *GetPublicKeyInput) (req *request.Request, output *GetPublicKeyOutput) {
4831	op := &request.Operation{
4832		Name:       opGetPublicKey,
4833		HTTPMethod: "GET",
4834		HTTPPath:   "/2020-05-31/public-key/{Id}",
4835	}
4836
4837	if input == nil {
4838		input = &GetPublicKeyInput{}
4839	}
4840
4841	output = &GetPublicKeyOutput{}
4842	req = c.newRequest(op, input, output)
4843	return
4844}
4845
4846// GetPublicKey API operation for Amazon CloudFront.
4847//
4848// Gets a public key.
4849//
4850// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4851// with awserr.Error's Code and Message methods to get detailed information about
4852// the error.
4853//
4854// See the AWS API reference guide for Amazon CloudFront's
4855// API operation GetPublicKey for usage and error information.
4856//
4857// Returned Error Codes:
4858//   * ErrCodeAccessDenied "AccessDenied"
4859//   Access denied.
4860//
4861//   * ErrCodeNoSuchPublicKey "NoSuchPublicKey"
4862//   The specified public key doesn't exist.
4863//
4864// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKey
4865func (c *CloudFront) GetPublicKey(input *GetPublicKeyInput) (*GetPublicKeyOutput, error) {
4866	req, out := c.GetPublicKeyRequest(input)
4867	return out, req.Send()
4868}
4869
4870// GetPublicKeyWithContext is the same as GetPublicKey with the addition of
4871// the ability to pass a context and additional request options.
4872//
4873// See GetPublicKey for details on how to use this API operation.
4874//
4875// The context must be non-nil and will be used for request cancellation. If
4876// the context is nil a panic will occur. In the future the SDK may create
4877// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4878// for more information on using Contexts.
4879func (c *CloudFront) GetPublicKeyWithContext(ctx aws.Context, input *GetPublicKeyInput, opts ...request.Option) (*GetPublicKeyOutput, error) {
4880	req, out := c.GetPublicKeyRequest(input)
4881	req.SetContext(ctx)
4882	req.ApplyOptions(opts...)
4883	return out, req.Send()
4884}
4885
4886const opGetPublicKeyConfig = "GetPublicKeyConfig2020_05_31"
4887
4888// GetPublicKeyConfigRequest generates a "aws/request.Request" representing the
4889// client's request for the GetPublicKeyConfig operation. The "output" return
4890// value will be populated with the request's response once the request completes
4891// successfully.
4892//
4893// Use "Send" method on the returned Request to send the API call to the service.
4894// the "output" return value is not valid until after Send returns without error.
4895//
4896// See GetPublicKeyConfig for more information on using the GetPublicKeyConfig
4897// API call, and error handling.
4898//
4899// This method is useful when you want to inject custom logic or configuration
4900// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4901//
4902//
4903//    // Example sending a request using the GetPublicKeyConfigRequest method.
4904//    req, resp := client.GetPublicKeyConfigRequest(params)
4905//
4906//    err := req.Send()
4907//    if err == nil { // resp is now filled
4908//        fmt.Println(resp)
4909//    }
4910//
4911// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKeyConfig
4912func (c *CloudFront) GetPublicKeyConfigRequest(input *GetPublicKeyConfigInput) (req *request.Request, output *GetPublicKeyConfigOutput) {
4913	op := &request.Operation{
4914		Name:       opGetPublicKeyConfig,
4915		HTTPMethod: "GET",
4916		HTTPPath:   "/2020-05-31/public-key/{Id}/config",
4917	}
4918
4919	if input == nil {
4920		input = &GetPublicKeyConfigInput{}
4921	}
4922
4923	output = &GetPublicKeyConfigOutput{}
4924	req = c.newRequest(op, input, output)
4925	return
4926}
4927
4928// GetPublicKeyConfig API operation for Amazon CloudFront.
4929//
4930// Gets a public key configuration.
4931//
4932// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4933// with awserr.Error's Code and Message methods to get detailed information about
4934// the error.
4935//
4936// See the AWS API reference guide for Amazon CloudFront's
4937// API operation GetPublicKeyConfig for usage and error information.
4938//
4939// Returned Error Codes:
4940//   * ErrCodeAccessDenied "AccessDenied"
4941//   Access denied.
4942//
4943//   * ErrCodeNoSuchPublicKey "NoSuchPublicKey"
4944//   The specified public key doesn't exist.
4945//
4946// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetPublicKeyConfig
4947func (c *CloudFront) GetPublicKeyConfig(input *GetPublicKeyConfigInput) (*GetPublicKeyConfigOutput, error) {
4948	req, out := c.GetPublicKeyConfigRequest(input)
4949	return out, req.Send()
4950}
4951
4952// GetPublicKeyConfigWithContext is the same as GetPublicKeyConfig with the addition of
4953// the ability to pass a context and additional request options.
4954//
4955// See GetPublicKeyConfig for details on how to use this API operation.
4956//
4957// The context must be non-nil and will be used for request cancellation. If
4958// the context is nil a panic will occur. In the future the SDK may create
4959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4960// for more information on using Contexts.
4961func (c *CloudFront) GetPublicKeyConfigWithContext(ctx aws.Context, input *GetPublicKeyConfigInput, opts ...request.Option) (*GetPublicKeyConfigOutput, error) {
4962	req, out := c.GetPublicKeyConfigRequest(input)
4963	req.SetContext(ctx)
4964	req.ApplyOptions(opts...)
4965	return out, req.Send()
4966}
4967
4968const opGetRealtimeLogConfig = "GetRealtimeLogConfig2020_05_31"
4969
4970// GetRealtimeLogConfigRequest generates a "aws/request.Request" representing the
4971// client's request for the GetRealtimeLogConfig operation. The "output" return
4972// value will be populated with the request's response once the request completes
4973// successfully.
4974//
4975// Use "Send" method on the returned Request to send the API call to the service.
4976// the "output" return value is not valid until after Send returns without error.
4977//
4978// See GetRealtimeLogConfig for more information on using the GetRealtimeLogConfig
4979// API call, and error handling.
4980//
4981// This method is useful when you want to inject custom logic or configuration
4982// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4983//
4984//
4985//    // Example sending a request using the GetRealtimeLogConfigRequest method.
4986//    req, resp := client.GetRealtimeLogConfigRequest(params)
4987//
4988//    err := req.Send()
4989//    if err == nil { // resp is now filled
4990//        fmt.Println(resp)
4991//    }
4992//
4993// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetRealtimeLogConfig
4994func (c *CloudFront) GetRealtimeLogConfigRequest(input *GetRealtimeLogConfigInput) (req *request.Request, output *GetRealtimeLogConfigOutput) {
4995	op := &request.Operation{
4996		Name:       opGetRealtimeLogConfig,
4997		HTTPMethod: "POST",
4998		HTTPPath:   "/2020-05-31/get-realtime-log-config/",
4999	}
5000
5001	if input == nil {
5002		input = &GetRealtimeLogConfigInput{}
5003	}
5004
5005	output = &GetRealtimeLogConfigOutput{}
5006	req = c.newRequest(op, input, output)
5007	return
5008}
5009
5010// GetRealtimeLogConfig API operation for Amazon CloudFront.
5011//
5012// Gets a real-time log configuration.
5013//
5014// To get a real-time log configuration, you can provide the configuration’s
5015// name or its Amazon Resource Name (ARN). You must provide at least one. If
5016// you provide both, CloudFront uses the name to identify the real-time log
5017// configuration to get.
5018//
5019// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5020// with awserr.Error's Code and Message methods to get detailed information about
5021// the error.
5022//
5023// See the AWS API reference guide for Amazon CloudFront's
5024// API operation GetRealtimeLogConfig for usage and error information.
5025//
5026// Returned Error Codes:
5027//   * ErrCodeNoSuchRealtimeLogConfig "NoSuchRealtimeLogConfig"
5028//   The real-time log configuration does not exist.
5029//
5030//   * ErrCodeInvalidArgument "InvalidArgument"
5031//   An argument is invalid.
5032//
5033//   * ErrCodeAccessDenied "AccessDenied"
5034//   Access denied.
5035//
5036// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetRealtimeLogConfig
5037func (c *CloudFront) GetRealtimeLogConfig(input *GetRealtimeLogConfigInput) (*GetRealtimeLogConfigOutput, error) {
5038	req, out := c.GetRealtimeLogConfigRequest(input)
5039	return out, req.Send()
5040}
5041
5042// GetRealtimeLogConfigWithContext is the same as GetRealtimeLogConfig with the addition of
5043// the ability to pass a context and additional request options.
5044//
5045// See GetRealtimeLogConfig for details on how to use this API operation.
5046//
5047// The context must be non-nil and will be used for request cancellation. If
5048// the context is nil a panic will occur. In the future the SDK may create
5049// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5050// for more information on using Contexts.
5051func (c *CloudFront) GetRealtimeLogConfigWithContext(ctx aws.Context, input *GetRealtimeLogConfigInput, opts ...request.Option) (*GetRealtimeLogConfigOutput, error) {
5052	req, out := c.GetRealtimeLogConfigRequest(input)
5053	req.SetContext(ctx)
5054	req.ApplyOptions(opts...)
5055	return out, req.Send()
5056}
5057
5058const opGetStreamingDistribution = "GetStreamingDistribution2020_05_31"
5059
5060// GetStreamingDistributionRequest generates a "aws/request.Request" representing the
5061// client's request for the GetStreamingDistribution operation. The "output" return
5062// value will be populated with the request's response once the request completes
5063// successfully.
5064//
5065// Use "Send" method on the returned Request to send the API call to the service.
5066// the "output" return value is not valid until after Send returns without error.
5067//
5068// See GetStreamingDistribution for more information on using the GetStreamingDistribution
5069// API call, and error handling.
5070//
5071// This method is useful when you want to inject custom logic or configuration
5072// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5073//
5074//
5075//    // Example sending a request using the GetStreamingDistributionRequest method.
5076//    req, resp := client.GetStreamingDistributionRequest(params)
5077//
5078//    err := req.Send()
5079//    if err == nil { // resp is now filled
5080//        fmt.Println(resp)
5081//    }
5082//
5083// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetStreamingDistribution
5084func (c *CloudFront) GetStreamingDistributionRequest(input *GetStreamingDistributionInput) (req *request.Request, output *GetStreamingDistributionOutput) {
5085	op := &request.Operation{
5086		Name:       opGetStreamingDistribution,
5087		HTTPMethod: "GET",
5088		HTTPPath:   "/2020-05-31/streaming-distribution/{Id}",
5089	}
5090
5091	if input == nil {
5092		input = &GetStreamingDistributionInput{}
5093	}
5094
5095	output = &GetStreamingDistributionOutput{}
5096	req = c.newRequest(op, input, output)
5097	return
5098}
5099
5100// GetStreamingDistribution API operation for Amazon CloudFront.
5101//
5102// Gets information about a specified RTMP distribution, including the distribution
5103// configuration.
5104//
5105// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5106// with awserr.Error's Code and Message methods to get detailed information about
5107// the error.
5108//
5109// See the AWS API reference guide for Amazon CloudFront's
5110// API operation GetStreamingDistribution for usage and error information.
5111//
5112// Returned Error Codes:
5113//   * ErrCodeNoSuchStreamingDistribution "NoSuchStreamingDistribution"
5114//   The specified streaming distribution does not exist.
5115//
5116//   * ErrCodeAccessDenied "AccessDenied"
5117//   Access denied.
5118//
5119// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetStreamingDistribution
5120func (c *CloudFront) GetStreamingDistribution(input *GetStreamingDistributionInput) (*GetStreamingDistributionOutput, error) {
5121	req, out := c.GetStreamingDistributionRequest(input)
5122	return out, req.Send()
5123}
5124
5125// GetStreamingDistributionWithContext is the same as GetStreamingDistribution with the addition of
5126// the ability to pass a context and additional request options.
5127//
5128// See GetStreamingDistribution for details on how to use this API operation.
5129//
5130// The context must be non-nil and will be used for request cancellation. If
5131// the context is nil a panic will occur. In the future the SDK may create
5132// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5133// for more information on using Contexts.
5134func (c *CloudFront) GetStreamingDistributionWithContext(ctx aws.Context, input *GetStreamingDistributionInput, opts ...request.Option) (*GetStreamingDistributionOutput, error) {
5135	req, out := c.GetStreamingDistributionRequest(input)
5136	req.SetContext(ctx)
5137	req.ApplyOptions(opts...)
5138	return out, req.Send()
5139}
5140
5141const opGetStreamingDistributionConfig = "GetStreamingDistributionConfig2020_05_31"
5142
5143// GetStreamingDistributionConfigRequest generates a "aws/request.Request" representing the
5144// client's request for the GetStreamingDistributionConfig operation. The "output" return
5145// value will be populated with the request's response once the request completes
5146// successfully.
5147//
5148// Use "Send" method on the returned Request to send the API call to the service.
5149// the "output" return value is not valid until after Send returns without error.
5150//
5151// See GetStreamingDistributionConfig for more information on using the GetStreamingDistributionConfig
5152// API call, and error handling.
5153//
5154// This method is useful when you want to inject custom logic or configuration
5155// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5156//
5157//
5158//    // Example sending a request using the GetStreamingDistributionConfigRequest method.
5159//    req, resp := client.GetStreamingDistributionConfigRequest(params)
5160//
5161//    err := req.Send()
5162//    if err == nil { // resp is now filled
5163//        fmt.Println(resp)
5164//    }
5165//
5166// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetStreamingDistributionConfig
5167func (c *CloudFront) GetStreamingDistributionConfigRequest(input *GetStreamingDistributionConfigInput) (req *request.Request, output *GetStreamingDistributionConfigOutput) {
5168	op := &request.Operation{
5169		Name:       opGetStreamingDistributionConfig,
5170		HTTPMethod: "GET",
5171		HTTPPath:   "/2020-05-31/streaming-distribution/{Id}/config",
5172	}
5173
5174	if input == nil {
5175		input = &GetStreamingDistributionConfigInput{}
5176	}
5177
5178	output = &GetStreamingDistributionConfigOutput{}
5179	req = c.newRequest(op, input, output)
5180	return
5181}
5182
5183// GetStreamingDistributionConfig API operation for Amazon CloudFront.
5184//
5185// Get the configuration information about a streaming distribution.
5186//
5187// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5188// with awserr.Error's Code and Message methods to get detailed information about
5189// the error.
5190//
5191// See the AWS API reference guide for Amazon CloudFront's
5192// API operation GetStreamingDistributionConfig for usage and error information.
5193//
5194// Returned Error Codes:
5195//   * ErrCodeNoSuchStreamingDistribution "NoSuchStreamingDistribution"
5196//   The specified streaming distribution does not exist.
5197//
5198//   * ErrCodeAccessDenied "AccessDenied"
5199//   Access denied.
5200//
5201// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/GetStreamingDistributionConfig
5202func (c *CloudFront) GetStreamingDistributionConfig(input *GetStreamingDistributionConfigInput) (*GetStreamingDistributionConfigOutput, error) {
5203	req, out := c.GetStreamingDistributionConfigRequest(input)
5204	return out, req.Send()
5205}
5206
5207// GetStreamingDistributionConfigWithContext is the same as GetStreamingDistributionConfig with the addition of
5208// the ability to pass a context and additional request options.
5209//
5210// See GetStreamingDistributionConfig for details on how to use this API operation.
5211//
5212// The context must be non-nil and will be used for request cancellation. If
5213// the context is nil a panic will occur. In the future the SDK may create
5214// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5215// for more information on using Contexts.
5216func (c *CloudFront) GetStreamingDistributionConfigWithContext(ctx aws.Context, input *GetStreamingDistributionConfigInput, opts ...request.Option) (*GetStreamingDistributionConfigOutput, error) {
5217	req, out := c.GetStreamingDistributionConfigRequest(input)
5218	req.SetContext(ctx)
5219	req.ApplyOptions(opts...)
5220	return out, req.Send()
5221}
5222
5223const opListCachePolicies = "ListCachePolicies2020_05_31"
5224
5225// ListCachePoliciesRequest generates a "aws/request.Request" representing the
5226// client's request for the ListCachePolicies operation. The "output" return
5227// value will be populated with the request's response once the request completes
5228// successfully.
5229//
5230// Use "Send" method on the returned Request to send the API call to the service.
5231// the "output" return value is not valid until after Send returns without error.
5232//
5233// See ListCachePolicies for more information on using the ListCachePolicies
5234// API call, and error handling.
5235//
5236// This method is useful when you want to inject custom logic or configuration
5237// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5238//
5239//
5240//    // Example sending a request using the ListCachePoliciesRequest method.
5241//    req, resp := client.ListCachePoliciesRequest(params)
5242//
5243//    err := req.Send()
5244//    if err == nil { // resp is now filled
5245//        fmt.Println(resp)
5246//    }
5247//
5248// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListCachePolicies
5249func (c *CloudFront) ListCachePoliciesRequest(input *ListCachePoliciesInput) (req *request.Request, output *ListCachePoliciesOutput) {
5250	op := &request.Operation{
5251		Name:       opListCachePolicies,
5252		HTTPMethod: "GET",
5253		HTTPPath:   "/2020-05-31/cache-policy",
5254	}
5255
5256	if input == nil {
5257		input = &ListCachePoliciesInput{}
5258	}
5259
5260	output = &ListCachePoliciesOutput{}
5261	req = c.newRequest(op, input, output)
5262	return
5263}
5264
5265// ListCachePolicies API operation for Amazon CloudFront.
5266//
5267// Gets a list of cache policies.
5268//
5269// You can optionally apply a filter to return only the managed policies created
5270// by Amazon Web Services, or only the custom policies created in your account.
5271//
5272// You can optionally specify the maximum number of items to receive in the
5273// response. If the total number of items in the list exceeds the maximum that
5274// you specify, or the default maximum, the response is paginated. To get the
5275// next page of items, send a subsequent request that specifies the NextMarker
5276// value from the current response as the Marker value in the subsequent request.
5277//
5278// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5279// with awserr.Error's Code and Message methods to get detailed information about
5280// the error.
5281//
5282// See the AWS API reference guide for Amazon CloudFront's
5283// API operation ListCachePolicies for usage and error information.
5284//
5285// Returned Error Codes:
5286//   * ErrCodeAccessDenied "AccessDenied"
5287//   Access denied.
5288//
5289//   * ErrCodeNoSuchCachePolicy "NoSuchCachePolicy"
5290//   The cache policy does not exist.
5291//
5292//   * ErrCodeInvalidArgument "InvalidArgument"
5293//   An argument is invalid.
5294//
5295// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListCachePolicies
5296func (c *CloudFront) ListCachePolicies(input *ListCachePoliciesInput) (*ListCachePoliciesOutput, error) {
5297	req, out := c.ListCachePoliciesRequest(input)
5298	return out, req.Send()
5299}
5300
5301// ListCachePoliciesWithContext is the same as ListCachePolicies with the addition of
5302// the ability to pass a context and additional request options.
5303//
5304// See ListCachePolicies for details on how to use this API operation.
5305//
5306// The context must be non-nil and will be used for request cancellation. If
5307// the context is nil a panic will occur. In the future the SDK may create
5308// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5309// for more information on using Contexts.
5310func (c *CloudFront) ListCachePoliciesWithContext(ctx aws.Context, input *ListCachePoliciesInput, opts ...request.Option) (*ListCachePoliciesOutput, error) {
5311	req, out := c.ListCachePoliciesRequest(input)
5312	req.SetContext(ctx)
5313	req.ApplyOptions(opts...)
5314	return out, req.Send()
5315}
5316
5317const opListCloudFrontOriginAccessIdentities = "ListCloudFrontOriginAccessIdentities2020_05_31"
5318
5319// ListCloudFrontOriginAccessIdentitiesRequest generates a "aws/request.Request" representing the
5320// client's request for the ListCloudFrontOriginAccessIdentities operation. The "output" return
5321// value will be populated with the request's response once the request completes
5322// successfully.
5323//
5324// Use "Send" method on the returned Request to send the API call to the service.
5325// the "output" return value is not valid until after Send returns without error.
5326//
5327// See ListCloudFrontOriginAccessIdentities for more information on using the ListCloudFrontOriginAccessIdentities
5328// API call, and error handling.
5329//
5330// This method is useful when you want to inject custom logic or configuration
5331// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5332//
5333//
5334//    // Example sending a request using the ListCloudFrontOriginAccessIdentitiesRequest method.
5335//    req, resp := client.ListCloudFrontOriginAccessIdentitiesRequest(params)
5336//
5337//    err := req.Send()
5338//    if err == nil { // resp is now filled
5339//        fmt.Println(resp)
5340//    }
5341//
5342// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListCloudFrontOriginAccessIdentities
5343func (c *CloudFront) ListCloudFrontOriginAccessIdentitiesRequest(input *ListCloudFrontOriginAccessIdentitiesInput) (req *request.Request, output *ListCloudFrontOriginAccessIdentitiesOutput) {
5344	op := &request.Operation{
5345		Name:       opListCloudFrontOriginAccessIdentities,
5346		HTTPMethod: "GET",
5347		HTTPPath:   "/2020-05-31/origin-access-identity/cloudfront",
5348		Paginator: &request.Paginator{
5349			InputTokens:     []string{"Marker"},
5350			OutputTokens:    []string{"CloudFrontOriginAccessIdentityList.NextMarker"},
5351			LimitToken:      "MaxItems",
5352			TruncationToken: "CloudFrontOriginAccessIdentityList.IsTruncated",
5353		},
5354	}
5355
5356	if input == nil {
5357		input = &ListCloudFrontOriginAccessIdentitiesInput{}
5358	}
5359
5360	output = &ListCloudFrontOriginAccessIdentitiesOutput{}
5361	req = c.newRequest(op, input, output)
5362	return
5363}
5364
5365// ListCloudFrontOriginAccessIdentities API operation for Amazon CloudFront.
5366//
5367// Lists origin access identities.
5368//
5369// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5370// with awserr.Error's Code and Message methods to get detailed information about
5371// the error.
5372//
5373// See the AWS API reference guide for Amazon CloudFront's
5374// API operation ListCloudFrontOriginAccessIdentities for usage and error information.
5375//
5376// Returned Error Codes:
5377//   * ErrCodeInvalidArgument "InvalidArgument"
5378//   An argument is invalid.
5379//
5380// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListCloudFrontOriginAccessIdentities
5381func (c *CloudFront) ListCloudFrontOriginAccessIdentities(input *ListCloudFrontOriginAccessIdentitiesInput) (*ListCloudFrontOriginAccessIdentitiesOutput, error) {
5382	req, out := c.ListCloudFrontOriginAccessIdentitiesRequest(input)
5383	return out, req.Send()
5384}
5385
5386// ListCloudFrontOriginAccessIdentitiesWithContext is the same as ListCloudFrontOriginAccessIdentities with the addition of
5387// the ability to pass a context and additional request options.
5388//
5389// See ListCloudFrontOriginAccessIdentities for details on how to use this API operation.
5390//
5391// The context must be non-nil and will be used for request cancellation. If
5392// the context is nil a panic will occur. In the future the SDK may create
5393// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5394// for more information on using Contexts.
5395func (c *CloudFront) ListCloudFrontOriginAccessIdentitiesWithContext(ctx aws.Context, input *ListCloudFrontOriginAccessIdentitiesInput, opts ...request.Option) (*ListCloudFrontOriginAccessIdentitiesOutput, error) {
5396	req, out := c.ListCloudFrontOriginAccessIdentitiesRequest(input)
5397	req.SetContext(ctx)
5398	req.ApplyOptions(opts...)
5399	return out, req.Send()
5400}
5401
5402// ListCloudFrontOriginAccessIdentitiesPages iterates over the pages of a ListCloudFrontOriginAccessIdentities operation,
5403// calling the "fn" function with the response data for each page. To stop
5404// iterating, return false from the fn function.
5405//
5406// See ListCloudFrontOriginAccessIdentities method for more information on how to use this operation.
5407//
5408// Note: This operation can generate multiple requests to a service.
5409//
5410//    // Example iterating over at most 3 pages of a ListCloudFrontOriginAccessIdentities operation.
5411//    pageNum := 0
5412//    err := client.ListCloudFrontOriginAccessIdentitiesPages(params,
5413//        func(page *cloudfront.ListCloudFrontOriginAccessIdentitiesOutput, lastPage bool) bool {
5414//            pageNum++
5415//            fmt.Println(page)
5416//            return pageNum <= 3
5417//        })
5418//
5419func (c *CloudFront) ListCloudFrontOriginAccessIdentitiesPages(input *ListCloudFrontOriginAccessIdentitiesInput, fn func(*ListCloudFrontOriginAccessIdentitiesOutput, bool) bool) error {
5420	return c.ListCloudFrontOriginAccessIdentitiesPagesWithContext(aws.BackgroundContext(), input, fn)
5421}
5422
5423// ListCloudFrontOriginAccessIdentitiesPagesWithContext same as ListCloudFrontOriginAccessIdentitiesPages except
5424// it takes a Context and allows setting request options on the pages.
5425//
5426// The context must be non-nil and will be used for request cancellation. If
5427// the context is nil a panic will occur. In the future the SDK may create
5428// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5429// for more information on using Contexts.
5430func (c *CloudFront) ListCloudFrontOriginAccessIdentitiesPagesWithContext(ctx aws.Context, input *ListCloudFrontOriginAccessIdentitiesInput, fn func(*ListCloudFrontOriginAccessIdentitiesOutput, bool) bool, opts ...request.Option) error {
5431	p := request.Pagination{
5432		NewRequest: func() (*request.Request, error) {
5433			var inCpy *ListCloudFrontOriginAccessIdentitiesInput
5434			if input != nil {
5435				tmp := *input
5436				inCpy = &tmp
5437			}
5438			req, _ := c.ListCloudFrontOriginAccessIdentitiesRequest(inCpy)
5439			req.SetContext(ctx)
5440			req.ApplyOptions(opts...)
5441			return req, nil
5442		},
5443	}
5444
5445	for p.Next() {
5446		if !fn(p.Page().(*ListCloudFrontOriginAccessIdentitiesOutput), !p.HasNextPage()) {
5447			break
5448		}
5449	}
5450
5451	return p.Err()
5452}
5453
5454const opListConflictingAliases = "ListConflictingAliases2020_05_31"
5455
5456// ListConflictingAliasesRequest generates a "aws/request.Request" representing the
5457// client's request for the ListConflictingAliases operation. The "output" return
5458// value will be populated with the request's response once the request completes
5459// successfully.
5460//
5461// Use "Send" method on the returned Request to send the API call to the service.
5462// the "output" return value is not valid until after Send returns without error.
5463//
5464// See ListConflictingAliases for more information on using the ListConflictingAliases
5465// API call, and error handling.
5466//
5467// This method is useful when you want to inject custom logic or configuration
5468// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5469//
5470//
5471//    // Example sending a request using the ListConflictingAliasesRequest method.
5472//    req, resp := client.ListConflictingAliasesRequest(params)
5473//
5474//    err := req.Send()
5475//    if err == nil { // resp is now filled
5476//        fmt.Println(resp)
5477//    }
5478//
5479// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListConflictingAliases
5480func (c *CloudFront) ListConflictingAliasesRequest(input *ListConflictingAliasesInput) (req *request.Request, output *ListConflictingAliasesOutput) {
5481	op := &request.Operation{
5482		Name:       opListConflictingAliases,
5483		HTTPMethod: "GET",
5484		HTTPPath:   "/2020-05-31/conflicting-alias",
5485	}
5486
5487	if input == nil {
5488		input = &ListConflictingAliasesInput{}
5489	}
5490
5491	output = &ListConflictingAliasesOutput{}
5492	req = c.newRequest(op, input, output)
5493	return
5494}
5495
5496// ListConflictingAliases API operation for Amazon CloudFront.
5497//
5498// Gets a list of aliases (also called CNAMEs or alternate domain names) that
5499// conflict or overlap with the provided alias, and the associated CloudFront
5500// distributions and Amazon Web Services accounts for each conflicting alias.
5501// In the returned list, the distribution and account IDs are partially hidden,
5502// which allows you to identify the distributions and accounts that you own,
5503// but helps to protect the information of ones that you don’t own.
5504//
5505// Use this operation to find aliases that are in use in CloudFront that conflict
5506// or overlap with the provided alias. For example, if you provide www.example.com
5507// as input, the returned list can include www.example.com and the overlapping
5508// wildcard alternate domain name (*.example.com), if they exist. If you provide
5509// *.example.com as input, the returned list can include *.example.com and any
5510// alternate domain names covered by that wildcard (for example, www.example.com,
5511// test.example.com, dev.example.com, and so on), if they exist.
5512//
5513// To list conflicting aliases, you provide the alias to search and the ID of
5514// a distribution in your account that has an attached SSL/TLS certificate that
5515// includes the provided alias. For more information, including how to set up
5516// the distribution and certificate, see Moving an alternate domain name to
5517// a different distribution (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move)
5518// in the Amazon CloudFront Developer Guide.
5519//
5520// You can optionally specify the maximum number of items to receive in the
5521// response. If the total number of items in the list exceeds the maximum that
5522// you specify, or the default maximum, the response is paginated. To get the
5523// next page of items, send a subsequent request that specifies the NextMarker
5524// value from the current response as the Marker value in the subsequent request.
5525//
5526// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5527// with awserr.Error's Code and Message methods to get detailed information about
5528// the error.
5529//
5530// See the AWS API reference guide for Amazon CloudFront's
5531// API operation ListConflictingAliases for usage and error information.
5532//
5533// Returned Error Codes:
5534//   * ErrCodeInvalidArgument "InvalidArgument"
5535//   An argument is invalid.
5536//
5537//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
5538//   The specified distribution does not exist.
5539//
5540// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListConflictingAliases
5541func (c *CloudFront) ListConflictingAliases(input *ListConflictingAliasesInput) (*ListConflictingAliasesOutput, error) {
5542	req, out := c.ListConflictingAliasesRequest(input)
5543	return out, req.Send()
5544}
5545
5546// ListConflictingAliasesWithContext is the same as ListConflictingAliases with the addition of
5547// the ability to pass a context and additional request options.
5548//
5549// See ListConflictingAliases for details on how to use this API operation.
5550//
5551// The context must be non-nil and will be used for request cancellation. If
5552// the context is nil a panic will occur. In the future the SDK may create
5553// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5554// for more information on using Contexts.
5555func (c *CloudFront) ListConflictingAliasesWithContext(ctx aws.Context, input *ListConflictingAliasesInput, opts ...request.Option) (*ListConflictingAliasesOutput, error) {
5556	req, out := c.ListConflictingAliasesRequest(input)
5557	req.SetContext(ctx)
5558	req.ApplyOptions(opts...)
5559	return out, req.Send()
5560}
5561
5562const opListDistributions = "ListDistributions2020_05_31"
5563
5564// ListDistributionsRequest generates a "aws/request.Request" representing the
5565// client's request for the ListDistributions operation. The "output" return
5566// value will be populated with the request's response once the request completes
5567// successfully.
5568//
5569// Use "Send" method on the returned Request to send the API call to the service.
5570// the "output" return value is not valid until after Send returns without error.
5571//
5572// See ListDistributions for more information on using the ListDistributions
5573// API call, and error handling.
5574//
5575// This method is useful when you want to inject custom logic or configuration
5576// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5577//
5578//
5579//    // Example sending a request using the ListDistributionsRequest method.
5580//    req, resp := client.ListDistributionsRequest(params)
5581//
5582//    err := req.Send()
5583//    if err == nil { // resp is now filled
5584//        fmt.Println(resp)
5585//    }
5586//
5587// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributions
5588func (c *CloudFront) ListDistributionsRequest(input *ListDistributionsInput) (req *request.Request, output *ListDistributionsOutput) {
5589	op := &request.Operation{
5590		Name:       opListDistributions,
5591		HTTPMethod: "GET",
5592		HTTPPath:   "/2020-05-31/distribution",
5593		Paginator: &request.Paginator{
5594			InputTokens:     []string{"Marker"},
5595			OutputTokens:    []string{"DistributionList.NextMarker"},
5596			LimitToken:      "MaxItems",
5597			TruncationToken: "DistributionList.IsTruncated",
5598		},
5599	}
5600
5601	if input == nil {
5602		input = &ListDistributionsInput{}
5603	}
5604
5605	output = &ListDistributionsOutput{}
5606	req = c.newRequest(op, input, output)
5607	return
5608}
5609
5610// ListDistributions API operation for Amazon CloudFront.
5611//
5612// List CloudFront distributions.
5613//
5614// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5615// with awserr.Error's Code and Message methods to get detailed information about
5616// the error.
5617//
5618// See the AWS API reference guide for Amazon CloudFront's
5619// API operation ListDistributions for usage and error information.
5620//
5621// Returned Error Codes:
5622//   * ErrCodeInvalidArgument "InvalidArgument"
5623//   An argument is invalid.
5624//
5625// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributions
5626func (c *CloudFront) ListDistributions(input *ListDistributionsInput) (*ListDistributionsOutput, error) {
5627	req, out := c.ListDistributionsRequest(input)
5628	return out, req.Send()
5629}
5630
5631// ListDistributionsWithContext is the same as ListDistributions with the addition of
5632// the ability to pass a context and additional request options.
5633//
5634// See ListDistributions for details on how to use this API operation.
5635//
5636// The context must be non-nil and will be used for request cancellation. If
5637// the context is nil a panic will occur. In the future the SDK may create
5638// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5639// for more information on using Contexts.
5640func (c *CloudFront) ListDistributionsWithContext(ctx aws.Context, input *ListDistributionsInput, opts ...request.Option) (*ListDistributionsOutput, error) {
5641	req, out := c.ListDistributionsRequest(input)
5642	req.SetContext(ctx)
5643	req.ApplyOptions(opts...)
5644	return out, req.Send()
5645}
5646
5647// ListDistributionsPages iterates over the pages of a ListDistributions operation,
5648// calling the "fn" function with the response data for each page. To stop
5649// iterating, return false from the fn function.
5650//
5651// See ListDistributions method for more information on how to use this operation.
5652//
5653// Note: This operation can generate multiple requests to a service.
5654//
5655//    // Example iterating over at most 3 pages of a ListDistributions operation.
5656//    pageNum := 0
5657//    err := client.ListDistributionsPages(params,
5658//        func(page *cloudfront.ListDistributionsOutput, lastPage bool) bool {
5659//            pageNum++
5660//            fmt.Println(page)
5661//            return pageNum <= 3
5662//        })
5663//
5664func (c *CloudFront) ListDistributionsPages(input *ListDistributionsInput, fn func(*ListDistributionsOutput, bool) bool) error {
5665	return c.ListDistributionsPagesWithContext(aws.BackgroundContext(), input, fn)
5666}
5667
5668// ListDistributionsPagesWithContext same as ListDistributionsPages except
5669// it takes a Context and allows setting request options on the pages.
5670//
5671// The context must be non-nil and will be used for request cancellation. If
5672// the context is nil a panic will occur. In the future the SDK may create
5673// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5674// for more information on using Contexts.
5675func (c *CloudFront) ListDistributionsPagesWithContext(ctx aws.Context, input *ListDistributionsInput, fn func(*ListDistributionsOutput, bool) bool, opts ...request.Option) error {
5676	p := request.Pagination{
5677		NewRequest: func() (*request.Request, error) {
5678			var inCpy *ListDistributionsInput
5679			if input != nil {
5680				tmp := *input
5681				inCpy = &tmp
5682			}
5683			req, _ := c.ListDistributionsRequest(inCpy)
5684			req.SetContext(ctx)
5685			req.ApplyOptions(opts...)
5686			return req, nil
5687		},
5688	}
5689
5690	for p.Next() {
5691		if !fn(p.Page().(*ListDistributionsOutput), !p.HasNextPage()) {
5692			break
5693		}
5694	}
5695
5696	return p.Err()
5697}
5698
5699const opListDistributionsByCachePolicyId = "ListDistributionsByCachePolicyId2020_05_31"
5700
5701// ListDistributionsByCachePolicyIdRequest generates a "aws/request.Request" representing the
5702// client's request for the ListDistributionsByCachePolicyId operation. The "output" return
5703// value will be populated with the request's response once the request completes
5704// successfully.
5705//
5706// Use "Send" method on the returned Request to send the API call to the service.
5707// the "output" return value is not valid until after Send returns without error.
5708//
5709// See ListDistributionsByCachePolicyId for more information on using the ListDistributionsByCachePolicyId
5710// API call, and error handling.
5711//
5712// This method is useful when you want to inject custom logic or configuration
5713// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5714//
5715//
5716//    // Example sending a request using the ListDistributionsByCachePolicyIdRequest method.
5717//    req, resp := client.ListDistributionsByCachePolicyIdRequest(params)
5718//
5719//    err := req.Send()
5720//    if err == nil { // resp is now filled
5721//        fmt.Println(resp)
5722//    }
5723//
5724// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByCachePolicyId
5725func (c *CloudFront) ListDistributionsByCachePolicyIdRequest(input *ListDistributionsByCachePolicyIdInput) (req *request.Request, output *ListDistributionsByCachePolicyIdOutput) {
5726	op := &request.Operation{
5727		Name:       opListDistributionsByCachePolicyId,
5728		HTTPMethod: "GET",
5729		HTTPPath:   "/2020-05-31/distributionsByCachePolicyId/{CachePolicyId}",
5730	}
5731
5732	if input == nil {
5733		input = &ListDistributionsByCachePolicyIdInput{}
5734	}
5735
5736	output = &ListDistributionsByCachePolicyIdOutput{}
5737	req = c.newRequest(op, input, output)
5738	return
5739}
5740
5741// ListDistributionsByCachePolicyId API operation for Amazon CloudFront.
5742//
5743// Gets a list of distribution IDs for distributions that have a cache behavior
5744// that’s associated with the specified cache policy.
5745//
5746// You can optionally specify the maximum number of items to receive in the
5747// response. If the total number of items in the list exceeds the maximum that
5748// you specify, or the default maximum, the response is paginated. To get the
5749// next page of items, send a subsequent request that specifies the NextMarker
5750// value from the current response as the Marker value in the subsequent request.
5751//
5752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5753// with awserr.Error's Code and Message methods to get detailed information about
5754// the error.
5755//
5756// See the AWS API reference guide for Amazon CloudFront's
5757// API operation ListDistributionsByCachePolicyId for usage and error information.
5758//
5759// Returned Error Codes:
5760//   * ErrCodeNoSuchCachePolicy "NoSuchCachePolicy"
5761//   The cache policy does not exist.
5762//
5763//   * ErrCodeInvalidArgument "InvalidArgument"
5764//   An argument is invalid.
5765//
5766//   * ErrCodeAccessDenied "AccessDenied"
5767//   Access denied.
5768//
5769// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByCachePolicyId
5770func (c *CloudFront) ListDistributionsByCachePolicyId(input *ListDistributionsByCachePolicyIdInput) (*ListDistributionsByCachePolicyIdOutput, error) {
5771	req, out := c.ListDistributionsByCachePolicyIdRequest(input)
5772	return out, req.Send()
5773}
5774
5775// ListDistributionsByCachePolicyIdWithContext is the same as ListDistributionsByCachePolicyId with the addition of
5776// the ability to pass a context and additional request options.
5777//
5778// See ListDistributionsByCachePolicyId for details on how to use this API operation.
5779//
5780// The context must be non-nil and will be used for request cancellation. If
5781// the context is nil a panic will occur. In the future the SDK may create
5782// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5783// for more information on using Contexts.
5784func (c *CloudFront) ListDistributionsByCachePolicyIdWithContext(ctx aws.Context, input *ListDistributionsByCachePolicyIdInput, opts ...request.Option) (*ListDistributionsByCachePolicyIdOutput, error) {
5785	req, out := c.ListDistributionsByCachePolicyIdRequest(input)
5786	req.SetContext(ctx)
5787	req.ApplyOptions(opts...)
5788	return out, req.Send()
5789}
5790
5791const opListDistributionsByKeyGroup = "ListDistributionsByKeyGroup2020_05_31"
5792
5793// ListDistributionsByKeyGroupRequest generates a "aws/request.Request" representing the
5794// client's request for the ListDistributionsByKeyGroup operation. The "output" return
5795// value will be populated with the request's response once the request completes
5796// successfully.
5797//
5798// Use "Send" method on the returned Request to send the API call to the service.
5799// the "output" return value is not valid until after Send returns without error.
5800//
5801// See ListDistributionsByKeyGroup for more information on using the ListDistributionsByKeyGroup
5802// API call, and error handling.
5803//
5804// This method is useful when you want to inject custom logic or configuration
5805// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5806//
5807//
5808//    // Example sending a request using the ListDistributionsByKeyGroupRequest method.
5809//    req, resp := client.ListDistributionsByKeyGroupRequest(params)
5810//
5811//    err := req.Send()
5812//    if err == nil { // resp is now filled
5813//        fmt.Println(resp)
5814//    }
5815//
5816// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByKeyGroup
5817func (c *CloudFront) ListDistributionsByKeyGroupRequest(input *ListDistributionsByKeyGroupInput) (req *request.Request, output *ListDistributionsByKeyGroupOutput) {
5818	op := &request.Operation{
5819		Name:       opListDistributionsByKeyGroup,
5820		HTTPMethod: "GET",
5821		HTTPPath:   "/2020-05-31/distributionsByKeyGroupId/{KeyGroupId}",
5822	}
5823
5824	if input == nil {
5825		input = &ListDistributionsByKeyGroupInput{}
5826	}
5827
5828	output = &ListDistributionsByKeyGroupOutput{}
5829	req = c.newRequest(op, input, output)
5830	return
5831}
5832
5833// ListDistributionsByKeyGroup API operation for Amazon CloudFront.
5834//
5835// Gets a list of distribution IDs for distributions that have a cache behavior
5836// that references the specified key group.
5837//
5838// You can optionally specify the maximum number of items to receive in the
5839// response. If the total number of items in the list exceeds the maximum that
5840// you specify, or the default maximum, the response is paginated. To get the
5841// next page of items, send a subsequent request that specifies the NextMarker
5842// value from the current response as the Marker value in the subsequent request.
5843//
5844// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5845// with awserr.Error's Code and Message methods to get detailed information about
5846// the error.
5847//
5848// See the AWS API reference guide for Amazon CloudFront's
5849// API operation ListDistributionsByKeyGroup for usage and error information.
5850//
5851// Returned Error Codes:
5852//   * ErrCodeNoSuchResource "NoSuchResource"
5853//   A resource that was specified is not valid.
5854//
5855//   * ErrCodeInvalidArgument "InvalidArgument"
5856//   An argument is invalid.
5857//
5858// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByKeyGroup
5859func (c *CloudFront) ListDistributionsByKeyGroup(input *ListDistributionsByKeyGroupInput) (*ListDistributionsByKeyGroupOutput, error) {
5860	req, out := c.ListDistributionsByKeyGroupRequest(input)
5861	return out, req.Send()
5862}
5863
5864// ListDistributionsByKeyGroupWithContext is the same as ListDistributionsByKeyGroup with the addition of
5865// the ability to pass a context and additional request options.
5866//
5867// See ListDistributionsByKeyGroup for details on how to use this API operation.
5868//
5869// The context must be non-nil and will be used for request cancellation. If
5870// the context is nil a panic will occur. In the future the SDK may create
5871// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5872// for more information on using Contexts.
5873func (c *CloudFront) ListDistributionsByKeyGroupWithContext(ctx aws.Context, input *ListDistributionsByKeyGroupInput, opts ...request.Option) (*ListDistributionsByKeyGroupOutput, error) {
5874	req, out := c.ListDistributionsByKeyGroupRequest(input)
5875	req.SetContext(ctx)
5876	req.ApplyOptions(opts...)
5877	return out, req.Send()
5878}
5879
5880const opListDistributionsByOriginRequestPolicyId = "ListDistributionsByOriginRequestPolicyId2020_05_31"
5881
5882// ListDistributionsByOriginRequestPolicyIdRequest generates a "aws/request.Request" representing the
5883// client's request for the ListDistributionsByOriginRequestPolicyId operation. The "output" return
5884// value will be populated with the request's response once the request completes
5885// successfully.
5886//
5887// Use "Send" method on the returned Request to send the API call to the service.
5888// the "output" return value is not valid until after Send returns without error.
5889//
5890// See ListDistributionsByOriginRequestPolicyId for more information on using the ListDistributionsByOriginRequestPolicyId
5891// API call, and error handling.
5892//
5893// This method is useful when you want to inject custom logic or configuration
5894// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5895//
5896//
5897//    // Example sending a request using the ListDistributionsByOriginRequestPolicyIdRequest method.
5898//    req, resp := client.ListDistributionsByOriginRequestPolicyIdRequest(params)
5899//
5900//    err := req.Send()
5901//    if err == nil { // resp is now filled
5902//        fmt.Println(resp)
5903//    }
5904//
5905// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByOriginRequestPolicyId
5906func (c *CloudFront) ListDistributionsByOriginRequestPolicyIdRequest(input *ListDistributionsByOriginRequestPolicyIdInput) (req *request.Request, output *ListDistributionsByOriginRequestPolicyIdOutput) {
5907	op := &request.Operation{
5908		Name:       opListDistributionsByOriginRequestPolicyId,
5909		HTTPMethod: "GET",
5910		HTTPPath:   "/2020-05-31/distributionsByOriginRequestPolicyId/{OriginRequestPolicyId}",
5911	}
5912
5913	if input == nil {
5914		input = &ListDistributionsByOriginRequestPolicyIdInput{}
5915	}
5916
5917	output = &ListDistributionsByOriginRequestPolicyIdOutput{}
5918	req = c.newRequest(op, input, output)
5919	return
5920}
5921
5922// ListDistributionsByOriginRequestPolicyId API operation for Amazon CloudFront.
5923//
5924// Gets a list of distribution IDs for distributions that have a cache behavior
5925// that’s associated with the specified origin request policy.
5926//
5927// You can optionally specify the maximum number of items to receive in the
5928// response. If the total number of items in the list exceeds the maximum that
5929// you specify, or the default maximum, the response is paginated. To get the
5930// next page of items, send a subsequent request that specifies the NextMarker
5931// value from the current response as the Marker value in the subsequent request.
5932//
5933// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5934// with awserr.Error's Code and Message methods to get detailed information about
5935// the error.
5936//
5937// See the AWS API reference guide for Amazon CloudFront's
5938// API operation ListDistributionsByOriginRequestPolicyId for usage and error information.
5939//
5940// Returned Error Codes:
5941//   * ErrCodeNoSuchOriginRequestPolicy "NoSuchOriginRequestPolicy"
5942//   The origin request policy does not exist.
5943//
5944//   * ErrCodeInvalidArgument "InvalidArgument"
5945//   An argument is invalid.
5946//
5947//   * ErrCodeAccessDenied "AccessDenied"
5948//   Access denied.
5949//
5950// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByOriginRequestPolicyId
5951func (c *CloudFront) ListDistributionsByOriginRequestPolicyId(input *ListDistributionsByOriginRequestPolicyIdInput) (*ListDistributionsByOriginRequestPolicyIdOutput, error) {
5952	req, out := c.ListDistributionsByOriginRequestPolicyIdRequest(input)
5953	return out, req.Send()
5954}
5955
5956// ListDistributionsByOriginRequestPolicyIdWithContext is the same as ListDistributionsByOriginRequestPolicyId with the addition of
5957// the ability to pass a context and additional request options.
5958//
5959// See ListDistributionsByOriginRequestPolicyId for details on how to use this API operation.
5960//
5961// The context must be non-nil and will be used for request cancellation. If
5962// the context is nil a panic will occur. In the future the SDK may create
5963// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5964// for more information on using Contexts.
5965func (c *CloudFront) ListDistributionsByOriginRequestPolicyIdWithContext(ctx aws.Context, input *ListDistributionsByOriginRequestPolicyIdInput, opts ...request.Option) (*ListDistributionsByOriginRequestPolicyIdOutput, error) {
5966	req, out := c.ListDistributionsByOriginRequestPolicyIdRequest(input)
5967	req.SetContext(ctx)
5968	req.ApplyOptions(opts...)
5969	return out, req.Send()
5970}
5971
5972const opListDistributionsByRealtimeLogConfig = "ListDistributionsByRealtimeLogConfig2020_05_31"
5973
5974// ListDistributionsByRealtimeLogConfigRequest generates a "aws/request.Request" representing the
5975// client's request for the ListDistributionsByRealtimeLogConfig operation. The "output" return
5976// value will be populated with the request's response once the request completes
5977// successfully.
5978//
5979// Use "Send" method on the returned Request to send the API call to the service.
5980// the "output" return value is not valid until after Send returns without error.
5981//
5982// See ListDistributionsByRealtimeLogConfig for more information on using the ListDistributionsByRealtimeLogConfig
5983// API call, and error handling.
5984//
5985// This method is useful when you want to inject custom logic or configuration
5986// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5987//
5988//
5989//    // Example sending a request using the ListDistributionsByRealtimeLogConfigRequest method.
5990//    req, resp := client.ListDistributionsByRealtimeLogConfigRequest(params)
5991//
5992//    err := req.Send()
5993//    if err == nil { // resp is now filled
5994//        fmt.Println(resp)
5995//    }
5996//
5997// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByRealtimeLogConfig
5998func (c *CloudFront) ListDistributionsByRealtimeLogConfigRequest(input *ListDistributionsByRealtimeLogConfigInput) (req *request.Request, output *ListDistributionsByRealtimeLogConfigOutput) {
5999	op := &request.Operation{
6000		Name:       opListDistributionsByRealtimeLogConfig,
6001		HTTPMethod: "POST",
6002		HTTPPath:   "/2020-05-31/distributionsByRealtimeLogConfig/",
6003	}
6004
6005	if input == nil {
6006		input = &ListDistributionsByRealtimeLogConfigInput{}
6007	}
6008
6009	output = &ListDistributionsByRealtimeLogConfigOutput{}
6010	req = c.newRequest(op, input, output)
6011	return
6012}
6013
6014// ListDistributionsByRealtimeLogConfig API operation for Amazon CloudFront.
6015//
6016// Gets a list of distributions that have a cache behavior that’s associated
6017// with the specified real-time log configuration.
6018//
6019// You can specify the real-time log configuration by its name or its Amazon
6020// Resource Name (ARN). You must provide at least one. If you provide both,
6021// CloudFront uses the name to identify the real-time log configuration to list
6022// distributions for.
6023//
6024// You can optionally specify the maximum number of items to receive in the
6025// response. If the total number of items in the list exceeds the maximum that
6026// you specify, or the default maximum, the response is paginated. To get the
6027// next page of items, send a subsequent request that specifies the NextMarker
6028// value from the current response as the Marker value in the subsequent request.
6029//
6030// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6031// with awserr.Error's Code and Message methods to get detailed information about
6032// the error.
6033//
6034// See the AWS API reference guide for Amazon CloudFront's
6035// API operation ListDistributionsByRealtimeLogConfig for usage and error information.
6036//
6037// Returned Error Codes:
6038//   * ErrCodeInvalidArgument "InvalidArgument"
6039//   An argument is invalid.
6040//
6041// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByRealtimeLogConfig
6042func (c *CloudFront) ListDistributionsByRealtimeLogConfig(input *ListDistributionsByRealtimeLogConfigInput) (*ListDistributionsByRealtimeLogConfigOutput, error) {
6043	req, out := c.ListDistributionsByRealtimeLogConfigRequest(input)
6044	return out, req.Send()
6045}
6046
6047// ListDistributionsByRealtimeLogConfigWithContext is the same as ListDistributionsByRealtimeLogConfig with the addition of
6048// the ability to pass a context and additional request options.
6049//
6050// See ListDistributionsByRealtimeLogConfig for details on how to use this API operation.
6051//
6052// The context must be non-nil and will be used for request cancellation. If
6053// the context is nil a panic will occur. In the future the SDK may create
6054// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6055// for more information on using Contexts.
6056func (c *CloudFront) ListDistributionsByRealtimeLogConfigWithContext(ctx aws.Context, input *ListDistributionsByRealtimeLogConfigInput, opts ...request.Option) (*ListDistributionsByRealtimeLogConfigOutput, error) {
6057	req, out := c.ListDistributionsByRealtimeLogConfigRequest(input)
6058	req.SetContext(ctx)
6059	req.ApplyOptions(opts...)
6060	return out, req.Send()
6061}
6062
6063const opListDistributionsByWebACLId = "ListDistributionsByWebACLId2020_05_31"
6064
6065// ListDistributionsByWebACLIdRequest generates a "aws/request.Request" representing the
6066// client's request for the ListDistributionsByWebACLId operation. The "output" return
6067// value will be populated with the request's response once the request completes
6068// successfully.
6069//
6070// Use "Send" method on the returned Request to send the API call to the service.
6071// the "output" return value is not valid until after Send returns without error.
6072//
6073// See ListDistributionsByWebACLId for more information on using the ListDistributionsByWebACLId
6074// API call, and error handling.
6075//
6076// This method is useful when you want to inject custom logic or configuration
6077// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6078//
6079//
6080//    // Example sending a request using the ListDistributionsByWebACLIdRequest method.
6081//    req, resp := client.ListDistributionsByWebACLIdRequest(params)
6082//
6083//    err := req.Send()
6084//    if err == nil { // resp is now filled
6085//        fmt.Println(resp)
6086//    }
6087//
6088// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByWebACLId
6089func (c *CloudFront) ListDistributionsByWebACLIdRequest(input *ListDistributionsByWebACLIdInput) (req *request.Request, output *ListDistributionsByWebACLIdOutput) {
6090	op := &request.Operation{
6091		Name:       opListDistributionsByWebACLId,
6092		HTTPMethod: "GET",
6093		HTTPPath:   "/2020-05-31/distributionsByWebACLId/{WebACLId}",
6094	}
6095
6096	if input == nil {
6097		input = &ListDistributionsByWebACLIdInput{}
6098	}
6099
6100	output = &ListDistributionsByWebACLIdOutput{}
6101	req = c.newRequest(op, input, output)
6102	return
6103}
6104
6105// ListDistributionsByWebACLId API operation for Amazon CloudFront.
6106//
6107// List the distributions that are associated with a specified WAF web ACL.
6108//
6109// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6110// with awserr.Error's Code and Message methods to get detailed information about
6111// the error.
6112//
6113// See the AWS API reference guide for Amazon CloudFront's
6114// API operation ListDistributionsByWebACLId for usage and error information.
6115//
6116// Returned Error Codes:
6117//   * ErrCodeInvalidArgument "InvalidArgument"
6118//   An argument is invalid.
6119//
6120//   * ErrCodeInvalidWebACLId "InvalidWebACLId"
6121//   A web ACL ID specified is not valid. To specify a web ACL created using the
6122//   latest version of WAF, use the ACL ARN, for example arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a.
6123//   To specify a web ACL created using WAF Classic, use the ACL ID, for example
6124//   473e64fd-f30b-4765-81a0-62ad96dd167a.
6125//
6126// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListDistributionsByWebACLId
6127func (c *CloudFront) ListDistributionsByWebACLId(input *ListDistributionsByWebACLIdInput) (*ListDistributionsByWebACLIdOutput, error) {
6128	req, out := c.ListDistributionsByWebACLIdRequest(input)
6129	return out, req.Send()
6130}
6131
6132// ListDistributionsByWebACLIdWithContext is the same as ListDistributionsByWebACLId with the addition of
6133// the ability to pass a context and additional request options.
6134//
6135// See ListDistributionsByWebACLId for details on how to use this API operation.
6136//
6137// The context must be non-nil and will be used for request cancellation. If
6138// the context is nil a panic will occur. In the future the SDK may create
6139// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6140// for more information on using Contexts.
6141func (c *CloudFront) ListDistributionsByWebACLIdWithContext(ctx aws.Context, input *ListDistributionsByWebACLIdInput, opts ...request.Option) (*ListDistributionsByWebACLIdOutput, error) {
6142	req, out := c.ListDistributionsByWebACLIdRequest(input)
6143	req.SetContext(ctx)
6144	req.ApplyOptions(opts...)
6145	return out, req.Send()
6146}
6147
6148const opListFieldLevelEncryptionConfigs = "ListFieldLevelEncryptionConfigs2020_05_31"
6149
6150// ListFieldLevelEncryptionConfigsRequest generates a "aws/request.Request" representing the
6151// client's request for the ListFieldLevelEncryptionConfigs operation. The "output" return
6152// value will be populated with the request's response once the request completes
6153// successfully.
6154//
6155// Use "Send" method on the returned Request to send the API call to the service.
6156// the "output" return value is not valid until after Send returns without error.
6157//
6158// See ListFieldLevelEncryptionConfigs for more information on using the ListFieldLevelEncryptionConfigs
6159// API call, and error handling.
6160//
6161// This method is useful when you want to inject custom logic or configuration
6162// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6163//
6164//
6165//    // Example sending a request using the ListFieldLevelEncryptionConfigsRequest method.
6166//    req, resp := client.ListFieldLevelEncryptionConfigsRequest(params)
6167//
6168//    err := req.Send()
6169//    if err == nil { // resp is now filled
6170//        fmt.Println(resp)
6171//    }
6172//
6173// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListFieldLevelEncryptionConfigs
6174func (c *CloudFront) ListFieldLevelEncryptionConfigsRequest(input *ListFieldLevelEncryptionConfigsInput) (req *request.Request, output *ListFieldLevelEncryptionConfigsOutput) {
6175	op := &request.Operation{
6176		Name:       opListFieldLevelEncryptionConfigs,
6177		HTTPMethod: "GET",
6178		HTTPPath:   "/2020-05-31/field-level-encryption",
6179	}
6180
6181	if input == nil {
6182		input = &ListFieldLevelEncryptionConfigsInput{}
6183	}
6184
6185	output = &ListFieldLevelEncryptionConfigsOutput{}
6186	req = c.newRequest(op, input, output)
6187	return
6188}
6189
6190// ListFieldLevelEncryptionConfigs API operation for Amazon CloudFront.
6191//
6192// List all field-level encryption configurations that have been created in
6193// CloudFront for this account.
6194//
6195// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6196// with awserr.Error's Code and Message methods to get detailed information about
6197// the error.
6198//
6199// See the AWS API reference guide for Amazon CloudFront's
6200// API operation ListFieldLevelEncryptionConfigs for usage and error information.
6201//
6202// Returned Error Codes:
6203//   * ErrCodeInvalidArgument "InvalidArgument"
6204//   An argument is invalid.
6205//
6206// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListFieldLevelEncryptionConfigs
6207func (c *CloudFront) ListFieldLevelEncryptionConfigs(input *ListFieldLevelEncryptionConfigsInput) (*ListFieldLevelEncryptionConfigsOutput, error) {
6208	req, out := c.ListFieldLevelEncryptionConfigsRequest(input)
6209	return out, req.Send()
6210}
6211
6212// ListFieldLevelEncryptionConfigsWithContext is the same as ListFieldLevelEncryptionConfigs with the addition of
6213// the ability to pass a context and additional request options.
6214//
6215// See ListFieldLevelEncryptionConfigs for details on how to use this API operation.
6216//
6217// The context must be non-nil and will be used for request cancellation. If
6218// the context is nil a panic will occur. In the future the SDK may create
6219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6220// for more information on using Contexts.
6221func (c *CloudFront) ListFieldLevelEncryptionConfigsWithContext(ctx aws.Context, input *ListFieldLevelEncryptionConfigsInput, opts ...request.Option) (*ListFieldLevelEncryptionConfigsOutput, error) {
6222	req, out := c.ListFieldLevelEncryptionConfigsRequest(input)
6223	req.SetContext(ctx)
6224	req.ApplyOptions(opts...)
6225	return out, req.Send()
6226}
6227
6228const opListFieldLevelEncryptionProfiles = "ListFieldLevelEncryptionProfiles2020_05_31"
6229
6230// ListFieldLevelEncryptionProfilesRequest generates a "aws/request.Request" representing the
6231// client's request for the ListFieldLevelEncryptionProfiles operation. The "output" return
6232// value will be populated with the request's response once the request completes
6233// successfully.
6234//
6235// Use "Send" method on the returned Request to send the API call to the service.
6236// the "output" return value is not valid until after Send returns without error.
6237//
6238// See ListFieldLevelEncryptionProfiles for more information on using the ListFieldLevelEncryptionProfiles
6239// API call, and error handling.
6240//
6241// This method is useful when you want to inject custom logic or configuration
6242// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6243//
6244//
6245//    // Example sending a request using the ListFieldLevelEncryptionProfilesRequest method.
6246//    req, resp := client.ListFieldLevelEncryptionProfilesRequest(params)
6247//
6248//    err := req.Send()
6249//    if err == nil { // resp is now filled
6250//        fmt.Println(resp)
6251//    }
6252//
6253// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListFieldLevelEncryptionProfiles
6254func (c *CloudFront) ListFieldLevelEncryptionProfilesRequest(input *ListFieldLevelEncryptionProfilesInput) (req *request.Request, output *ListFieldLevelEncryptionProfilesOutput) {
6255	op := &request.Operation{
6256		Name:       opListFieldLevelEncryptionProfiles,
6257		HTTPMethod: "GET",
6258		HTTPPath:   "/2020-05-31/field-level-encryption-profile",
6259	}
6260
6261	if input == nil {
6262		input = &ListFieldLevelEncryptionProfilesInput{}
6263	}
6264
6265	output = &ListFieldLevelEncryptionProfilesOutput{}
6266	req = c.newRequest(op, input, output)
6267	return
6268}
6269
6270// ListFieldLevelEncryptionProfiles API operation for Amazon CloudFront.
6271//
6272// Request a list of field-level encryption profiles that have been created
6273// in CloudFront for this account.
6274//
6275// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6276// with awserr.Error's Code and Message methods to get detailed information about
6277// the error.
6278//
6279// See the AWS API reference guide for Amazon CloudFront's
6280// API operation ListFieldLevelEncryptionProfiles for usage and error information.
6281//
6282// Returned Error Codes:
6283//   * ErrCodeInvalidArgument "InvalidArgument"
6284//   An argument is invalid.
6285//
6286// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListFieldLevelEncryptionProfiles
6287func (c *CloudFront) ListFieldLevelEncryptionProfiles(input *ListFieldLevelEncryptionProfilesInput) (*ListFieldLevelEncryptionProfilesOutput, error) {
6288	req, out := c.ListFieldLevelEncryptionProfilesRequest(input)
6289	return out, req.Send()
6290}
6291
6292// ListFieldLevelEncryptionProfilesWithContext is the same as ListFieldLevelEncryptionProfiles with the addition of
6293// the ability to pass a context and additional request options.
6294//
6295// See ListFieldLevelEncryptionProfiles for details on how to use this API operation.
6296//
6297// The context must be non-nil and will be used for request cancellation. If
6298// the context is nil a panic will occur. In the future the SDK may create
6299// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6300// for more information on using Contexts.
6301func (c *CloudFront) ListFieldLevelEncryptionProfilesWithContext(ctx aws.Context, input *ListFieldLevelEncryptionProfilesInput, opts ...request.Option) (*ListFieldLevelEncryptionProfilesOutput, error) {
6302	req, out := c.ListFieldLevelEncryptionProfilesRequest(input)
6303	req.SetContext(ctx)
6304	req.ApplyOptions(opts...)
6305	return out, req.Send()
6306}
6307
6308const opListFunctions = "ListFunctions2020_05_31"
6309
6310// ListFunctionsRequest generates a "aws/request.Request" representing the
6311// client's request for the ListFunctions operation. The "output" return
6312// value will be populated with the request's response once the request completes
6313// successfully.
6314//
6315// Use "Send" method on the returned Request to send the API call to the service.
6316// the "output" return value is not valid until after Send returns without error.
6317//
6318// See ListFunctions for more information on using the ListFunctions
6319// API call, and error handling.
6320//
6321// This method is useful when you want to inject custom logic or configuration
6322// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6323//
6324//
6325//    // Example sending a request using the ListFunctionsRequest method.
6326//    req, resp := client.ListFunctionsRequest(params)
6327//
6328//    err := req.Send()
6329//    if err == nil { // resp is now filled
6330//        fmt.Println(resp)
6331//    }
6332//
6333// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListFunctions
6334func (c *CloudFront) ListFunctionsRequest(input *ListFunctionsInput) (req *request.Request, output *ListFunctionsOutput) {
6335	op := &request.Operation{
6336		Name:       opListFunctions,
6337		HTTPMethod: "GET",
6338		HTTPPath:   "/2020-05-31/function",
6339	}
6340
6341	if input == nil {
6342		input = &ListFunctionsInput{}
6343	}
6344
6345	output = &ListFunctionsOutput{}
6346	req = c.newRequest(op, input, output)
6347	return
6348}
6349
6350// ListFunctions API operation for Amazon CloudFront.
6351//
6352// Gets a list of all CloudFront functions in your account.
6353//
6354// You can optionally apply a filter to return only the functions that are in
6355// the specified stage, either DEVELOPMENT or LIVE.
6356//
6357// You can optionally specify the maximum number of items to receive in the
6358// response. If the total number of items in the list exceeds the maximum that
6359// you specify, or the default maximum, the response is paginated. To get the
6360// next page of items, send a subsequent request that specifies the NextMarker
6361// value from the current response as the Marker value in the subsequent request.
6362//
6363// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6364// with awserr.Error's Code and Message methods to get detailed information about
6365// the error.
6366//
6367// See the AWS API reference guide for Amazon CloudFront's
6368// API operation ListFunctions for usage and error information.
6369//
6370// Returned Error Codes:
6371//   * ErrCodeInvalidArgument "InvalidArgument"
6372//   An argument is invalid.
6373//
6374//   * ErrCodeUnsupportedOperation "UnsupportedOperation"
6375//   This operation is not supported in this region.
6376//
6377// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListFunctions
6378func (c *CloudFront) ListFunctions(input *ListFunctionsInput) (*ListFunctionsOutput, error) {
6379	req, out := c.ListFunctionsRequest(input)
6380	return out, req.Send()
6381}
6382
6383// ListFunctionsWithContext is the same as ListFunctions with the addition of
6384// the ability to pass a context and additional request options.
6385//
6386// See ListFunctions for details on how to use this API operation.
6387//
6388// The context must be non-nil and will be used for request cancellation. If
6389// the context is nil a panic will occur. In the future the SDK may create
6390// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6391// for more information on using Contexts.
6392func (c *CloudFront) ListFunctionsWithContext(ctx aws.Context, input *ListFunctionsInput, opts ...request.Option) (*ListFunctionsOutput, error) {
6393	req, out := c.ListFunctionsRequest(input)
6394	req.SetContext(ctx)
6395	req.ApplyOptions(opts...)
6396	return out, req.Send()
6397}
6398
6399const opListInvalidations = "ListInvalidations2020_05_31"
6400
6401// ListInvalidationsRequest generates a "aws/request.Request" representing the
6402// client's request for the ListInvalidations operation. The "output" return
6403// value will be populated with the request's response once the request completes
6404// successfully.
6405//
6406// Use "Send" method on the returned Request to send the API call to the service.
6407// the "output" return value is not valid until after Send returns without error.
6408//
6409// See ListInvalidations for more information on using the ListInvalidations
6410// API call, and error handling.
6411//
6412// This method is useful when you want to inject custom logic or configuration
6413// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6414//
6415//
6416//    // Example sending a request using the ListInvalidationsRequest method.
6417//    req, resp := client.ListInvalidationsRequest(params)
6418//
6419//    err := req.Send()
6420//    if err == nil { // resp is now filled
6421//        fmt.Println(resp)
6422//    }
6423//
6424// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListInvalidations
6425func (c *CloudFront) ListInvalidationsRequest(input *ListInvalidationsInput) (req *request.Request, output *ListInvalidationsOutput) {
6426	op := &request.Operation{
6427		Name:       opListInvalidations,
6428		HTTPMethod: "GET",
6429		HTTPPath:   "/2020-05-31/distribution/{DistributionId}/invalidation",
6430		Paginator: &request.Paginator{
6431			InputTokens:     []string{"Marker"},
6432			OutputTokens:    []string{"InvalidationList.NextMarker"},
6433			LimitToken:      "MaxItems",
6434			TruncationToken: "InvalidationList.IsTruncated",
6435		},
6436	}
6437
6438	if input == nil {
6439		input = &ListInvalidationsInput{}
6440	}
6441
6442	output = &ListInvalidationsOutput{}
6443	req = c.newRequest(op, input, output)
6444	return
6445}
6446
6447// ListInvalidations API operation for Amazon CloudFront.
6448//
6449// Lists invalidation batches.
6450//
6451// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6452// with awserr.Error's Code and Message methods to get detailed information about
6453// the error.
6454//
6455// See the AWS API reference guide for Amazon CloudFront's
6456// API operation ListInvalidations for usage and error information.
6457//
6458// Returned Error Codes:
6459//   * ErrCodeInvalidArgument "InvalidArgument"
6460//   An argument is invalid.
6461//
6462//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
6463//   The specified distribution does not exist.
6464//
6465//   * ErrCodeAccessDenied "AccessDenied"
6466//   Access denied.
6467//
6468// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListInvalidations
6469func (c *CloudFront) ListInvalidations(input *ListInvalidationsInput) (*ListInvalidationsOutput, error) {
6470	req, out := c.ListInvalidationsRequest(input)
6471	return out, req.Send()
6472}
6473
6474// ListInvalidationsWithContext is the same as ListInvalidations with the addition of
6475// the ability to pass a context and additional request options.
6476//
6477// See ListInvalidations for details on how to use this API operation.
6478//
6479// The context must be non-nil and will be used for request cancellation. If
6480// the context is nil a panic will occur. In the future the SDK may create
6481// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6482// for more information on using Contexts.
6483func (c *CloudFront) ListInvalidationsWithContext(ctx aws.Context, input *ListInvalidationsInput, opts ...request.Option) (*ListInvalidationsOutput, error) {
6484	req, out := c.ListInvalidationsRequest(input)
6485	req.SetContext(ctx)
6486	req.ApplyOptions(opts...)
6487	return out, req.Send()
6488}
6489
6490// ListInvalidationsPages iterates over the pages of a ListInvalidations operation,
6491// calling the "fn" function with the response data for each page. To stop
6492// iterating, return false from the fn function.
6493//
6494// See ListInvalidations method for more information on how to use this operation.
6495//
6496// Note: This operation can generate multiple requests to a service.
6497//
6498//    // Example iterating over at most 3 pages of a ListInvalidations operation.
6499//    pageNum := 0
6500//    err := client.ListInvalidationsPages(params,
6501//        func(page *cloudfront.ListInvalidationsOutput, lastPage bool) bool {
6502//            pageNum++
6503//            fmt.Println(page)
6504//            return pageNum <= 3
6505//        })
6506//
6507func (c *CloudFront) ListInvalidationsPages(input *ListInvalidationsInput, fn func(*ListInvalidationsOutput, bool) bool) error {
6508	return c.ListInvalidationsPagesWithContext(aws.BackgroundContext(), input, fn)
6509}
6510
6511// ListInvalidationsPagesWithContext same as ListInvalidationsPages except
6512// it takes a Context and allows setting request options on the pages.
6513//
6514// The context must be non-nil and will be used for request cancellation. If
6515// the context is nil a panic will occur. In the future the SDK may create
6516// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6517// for more information on using Contexts.
6518func (c *CloudFront) ListInvalidationsPagesWithContext(ctx aws.Context, input *ListInvalidationsInput, fn func(*ListInvalidationsOutput, bool) bool, opts ...request.Option) error {
6519	p := request.Pagination{
6520		NewRequest: func() (*request.Request, error) {
6521			var inCpy *ListInvalidationsInput
6522			if input != nil {
6523				tmp := *input
6524				inCpy = &tmp
6525			}
6526			req, _ := c.ListInvalidationsRequest(inCpy)
6527			req.SetContext(ctx)
6528			req.ApplyOptions(opts...)
6529			return req, nil
6530		},
6531	}
6532
6533	for p.Next() {
6534		if !fn(p.Page().(*ListInvalidationsOutput), !p.HasNextPage()) {
6535			break
6536		}
6537	}
6538
6539	return p.Err()
6540}
6541
6542const opListKeyGroups = "ListKeyGroups2020_05_31"
6543
6544// ListKeyGroupsRequest generates a "aws/request.Request" representing the
6545// client's request for the ListKeyGroups operation. The "output" return
6546// value will be populated with the request's response once the request completes
6547// successfully.
6548//
6549// Use "Send" method on the returned Request to send the API call to the service.
6550// the "output" return value is not valid until after Send returns without error.
6551//
6552// See ListKeyGroups for more information on using the ListKeyGroups
6553// API call, and error handling.
6554//
6555// This method is useful when you want to inject custom logic or configuration
6556// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6557//
6558//
6559//    // Example sending a request using the ListKeyGroupsRequest method.
6560//    req, resp := client.ListKeyGroupsRequest(params)
6561//
6562//    err := req.Send()
6563//    if err == nil { // resp is now filled
6564//        fmt.Println(resp)
6565//    }
6566//
6567// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListKeyGroups
6568func (c *CloudFront) ListKeyGroupsRequest(input *ListKeyGroupsInput) (req *request.Request, output *ListKeyGroupsOutput) {
6569	op := &request.Operation{
6570		Name:       opListKeyGroups,
6571		HTTPMethod: "GET",
6572		HTTPPath:   "/2020-05-31/key-group",
6573	}
6574
6575	if input == nil {
6576		input = &ListKeyGroupsInput{}
6577	}
6578
6579	output = &ListKeyGroupsOutput{}
6580	req = c.newRequest(op, input, output)
6581	return
6582}
6583
6584// ListKeyGroups API operation for Amazon CloudFront.
6585//
6586// Gets a list of key groups.
6587//
6588// You can optionally specify the maximum number of items to receive in the
6589// response. If the total number of items in the list exceeds the maximum that
6590// you specify, or the default maximum, the response is paginated. To get the
6591// next page of items, send a subsequent request that specifies the NextMarker
6592// value from the current response as the Marker value in the subsequent request.
6593//
6594// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6595// with awserr.Error's Code and Message methods to get detailed information about
6596// the error.
6597//
6598// See the AWS API reference guide for Amazon CloudFront's
6599// API operation ListKeyGroups for usage and error information.
6600//
6601// Returned Error Codes:
6602//   * ErrCodeInvalidArgument "InvalidArgument"
6603//   An argument is invalid.
6604//
6605// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListKeyGroups
6606func (c *CloudFront) ListKeyGroups(input *ListKeyGroupsInput) (*ListKeyGroupsOutput, error) {
6607	req, out := c.ListKeyGroupsRequest(input)
6608	return out, req.Send()
6609}
6610
6611// ListKeyGroupsWithContext is the same as ListKeyGroups with the addition of
6612// the ability to pass a context and additional request options.
6613//
6614// See ListKeyGroups for details on how to use this API operation.
6615//
6616// The context must be non-nil and will be used for request cancellation. If
6617// the context is nil a panic will occur. In the future the SDK may create
6618// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6619// for more information on using Contexts.
6620func (c *CloudFront) ListKeyGroupsWithContext(ctx aws.Context, input *ListKeyGroupsInput, opts ...request.Option) (*ListKeyGroupsOutput, error) {
6621	req, out := c.ListKeyGroupsRequest(input)
6622	req.SetContext(ctx)
6623	req.ApplyOptions(opts...)
6624	return out, req.Send()
6625}
6626
6627const opListOriginRequestPolicies = "ListOriginRequestPolicies2020_05_31"
6628
6629// ListOriginRequestPoliciesRequest generates a "aws/request.Request" representing the
6630// client's request for the ListOriginRequestPolicies operation. The "output" return
6631// value will be populated with the request's response once the request completes
6632// successfully.
6633//
6634// Use "Send" method on the returned Request to send the API call to the service.
6635// the "output" return value is not valid until after Send returns without error.
6636//
6637// See ListOriginRequestPolicies for more information on using the ListOriginRequestPolicies
6638// API call, and error handling.
6639//
6640// This method is useful when you want to inject custom logic or configuration
6641// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6642//
6643//
6644//    // Example sending a request using the ListOriginRequestPoliciesRequest method.
6645//    req, resp := client.ListOriginRequestPoliciesRequest(params)
6646//
6647//    err := req.Send()
6648//    if err == nil { // resp is now filled
6649//        fmt.Println(resp)
6650//    }
6651//
6652// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListOriginRequestPolicies
6653func (c *CloudFront) ListOriginRequestPoliciesRequest(input *ListOriginRequestPoliciesInput) (req *request.Request, output *ListOriginRequestPoliciesOutput) {
6654	op := &request.Operation{
6655		Name:       opListOriginRequestPolicies,
6656		HTTPMethod: "GET",
6657		HTTPPath:   "/2020-05-31/origin-request-policy",
6658	}
6659
6660	if input == nil {
6661		input = &ListOriginRequestPoliciesInput{}
6662	}
6663
6664	output = &ListOriginRequestPoliciesOutput{}
6665	req = c.newRequest(op, input, output)
6666	return
6667}
6668
6669// ListOriginRequestPolicies API operation for Amazon CloudFront.
6670//
6671// Gets a list of origin request policies.
6672//
6673// You can optionally apply a filter to return only the managed policies created
6674// by Amazon Web Services, or only the custom policies created in your account.
6675//
6676// You can optionally specify the maximum number of items to receive in the
6677// response. If the total number of items in the list exceeds the maximum that
6678// you specify, or the default maximum, the response is paginated. To get the
6679// next page of items, send a subsequent request that specifies the NextMarker
6680// value from the current response as the Marker value in the subsequent request.
6681//
6682// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6683// with awserr.Error's Code and Message methods to get detailed information about
6684// the error.
6685//
6686// See the AWS API reference guide for Amazon CloudFront's
6687// API operation ListOriginRequestPolicies for usage and error information.
6688//
6689// Returned Error Codes:
6690//   * ErrCodeAccessDenied "AccessDenied"
6691//   Access denied.
6692//
6693//   * ErrCodeNoSuchOriginRequestPolicy "NoSuchOriginRequestPolicy"
6694//   The origin request policy does not exist.
6695//
6696//   * ErrCodeInvalidArgument "InvalidArgument"
6697//   An argument is invalid.
6698//
6699// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListOriginRequestPolicies
6700func (c *CloudFront) ListOriginRequestPolicies(input *ListOriginRequestPoliciesInput) (*ListOriginRequestPoliciesOutput, error) {
6701	req, out := c.ListOriginRequestPoliciesRequest(input)
6702	return out, req.Send()
6703}
6704
6705// ListOriginRequestPoliciesWithContext is the same as ListOriginRequestPolicies with the addition of
6706// the ability to pass a context and additional request options.
6707//
6708// See ListOriginRequestPolicies for details on how to use this API operation.
6709//
6710// The context must be non-nil and will be used for request cancellation. If
6711// the context is nil a panic will occur. In the future the SDK may create
6712// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6713// for more information on using Contexts.
6714func (c *CloudFront) ListOriginRequestPoliciesWithContext(ctx aws.Context, input *ListOriginRequestPoliciesInput, opts ...request.Option) (*ListOriginRequestPoliciesOutput, error) {
6715	req, out := c.ListOriginRequestPoliciesRequest(input)
6716	req.SetContext(ctx)
6717	req.ApplyOptions(opts...)
6718	return out, req.Send()
6719}
6720
6721const opListPublicKeys = "ListPublicKeys2020_05_31"
6722
6723// ListPublicKeysRequest generates a "aws/request.Request" representing the
6724// client's request for the ListPublicKeys operation. The "output" return
6725// value will be populated with the request's response once the request completes
6726// successfully.
6727//
6728// Use "Send" method on the returned Request to send the API call to the service.
6729// the "output" return value is not valid until after Send returns without error.
6730//
6731// See ListPublicKeys for more information on using the ListPublicKeys
6732// API call, and error handling.
6733//
6734// This method is useful when you want to inject custom logic or configuration
6735// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6736//
6737//
6738//    // Example sending a request using the ListPublicKeysRequest method.
6739//    req, resp := client.ListPublicKeysRequest(params)
6740//
6741//    err := req.Send()
6742//    if err == nil { // resp is now filled
6743//        fmt.Println(resp)
6744//    }
6745//
6746// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListPublicKeys
6747func (c *CloudFront) ListPublicKeysRequest(input *ListPublicKeysInput) (req *request.Request, output *ListPublicKeysOutput) {
6748	op := &request.Operation{
6749		Name:       opListPublicKeys,
6750		HTTPMethod: "GET",
6751		HTTPPath:   "/2020-05-31/public-key",
6752	}
6753
6754	if input == nil {
6755		input = &ListPublicKeysInput{}
6756	}
6757
6758	output = &ListPublicKeysOutput{}
6759	req = c.newRequest(op, input, output)
6760	return
6761}
6762
6763// ListPublicKeys API operation for Amazon CloudFront.
6764//
6765// List all public keys that have been added to CloudFront for this account.
6766//
6767// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6768// with awserr.Error's Code and Message methods to get detailed information about
6769// the error.
6770//
6771// See the AWS API reference guide for Amazon CloudFront's
6772// API operation ListPublicKeys for usage and error information.
6773//
6774// Returned Error Codes:
6775//   * ErrCodeInvalidArgument "InvalidArgument"
6776//   An argument is invalid.
6777//
6778// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListPublicKeys
6779func (c *CloudFront) ListPublicKeys(input *ListPublicKeysInput) (*ListPublicKeysOutput, error) {
6780	req, out := c.ListPublicKeysRequest(input)
6781	return out, req.Send()
6782}
6783
6784// ListPublicKeysWithContext is the same as ListPublicKeys with the addition of
6785// the ability to pass a context and additional request options.
6786//
6787// See ListPublicKeys for details on how to use this API operation.
6788//
6789// The context must be non-nil and will be used for request cancellation. If
6790// the context is nil a panic will occur. In the future the SDK may create
6791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6792// for more information on using Contexts.
6793func (c *CloudFront) ListPublicKeysWithContext(ctx aws.Context, input *ListPublicKeysInput, opts ...request.Option) (*ListPublicKeysOutput, error) {
6794	req, out := c.ListPublicKeysRequest(input)
6795	req.SetContext(ctx)
6796	req.ApplyOptions(opts...)
6797	return out, req.Send()
6798}
6799
6800const opListRealtimeLogConfigs = "ListRealtimeLogConfigs2020_05_31"
6801
6802// ListRealtimeLogConfigsRequest generates a "aws/request.Request" representing the
6803// client's request for the ListRealtimeLogConfigs operation. The "output" return
6804// value will be populated with the request's response once the request completes
6805// successfully.
6806//
6807// Use "Send" method on the returned Request to send the API call to the service.
6808// the "output" return value is not valid until after Send returns without error.
6809//
6810// See ListRealtimeLogConfigs for more information on using the ListRealtimeLogConfigs
6811// API call, and error handling.
6812//
6813// This method is useful when you want to inject custom logic or configuration
6814// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6815//
6816//
6817//    // Example sending a request using the ListRealtimeLogConfigsRequest method.
6818//    req, resp := client.ListRealtimeLogConfigsRequest(params)
6819//
6820//    err := req.Send()
6821//    if err == nil { // resp is now filled
6822//        fmt.Println(resp)
6823//    }
6824//
6825// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListRealtimeLogConfigs
6826func (c *CloudFront) ListRealtimeLogConfigsRequest(input *ListRealtimeLogConfigsInput) (req *request.Request, output *ListRealtimeLogConfigsOutput) {
6827	op := &request.Operation{
6828		Name:       opListRealtimeLogConfigs,
6829		HTTPMethod: "GET",
6830		HTTPPath:   "/2020-05-31/realtime-log-config",
6831	}
6832
6833	if input == nil {
6834		input = &ListRealtimeLogConfigsInput{}
6835	}
6836
6837	output = &ListRealtimeLogConfigsOutput{}
6838	req = c.newRequest(op, input, output)
6839	return
6840}
6841
6842// ListRealtimeLogConfigs API operation for Amazon CloudFront.
6843//
6844// Gets a list of real-time log configurations.
6845//
6846// You can optionally specify the maximum number of items to receive in the
6847// response. If the total number of items in the list exceeds the maximum that
6848// you specify, or the default maximum, the response is paginated. To get the
6849// next page of items, send a subsequent request that specifies the NextMarker
6850// value from the current response as the Marker value in the subsequent request.
6851//
6852// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6853// with awserr.Error's Code and Message methods to get detailed information about
6854// the error.
6855//
6856// See the AWS API reference guide for Amazon CloudFront's
6857// API operation ListRealtimeLogConfigs for usage and error information.
6858//
6859// Returned Error Codes:
6860//   * ErrCodeInvalidArgument "InvalidArgument"
6861//   An argument is invalid.
6862//
6863//   * ErrCodeAccessDenied "AccessDenied"
6864//   Access denied.
6865//
6866//   * ErrCodeNoSuchRealtimeLogConfig "NoSuchRealtimeLogConfig"
6867//   The real-time log configuration does not exist.
6868//
6869// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListRealtimeLogConfigs
6870func (c *CloudFront) ListRealtimeLogConfigs(input *ListRealtimeLogConfigsInput) (*ListRealtimeLogConfigsOutput, error) {
6871	req, out := c.ListRealtimeLogConfigsRequest(input)
6872	return out, req.Send()
6873}
6874
6875// ListRealtimeLogConfigsWithContext is the same as ListRealtimeLogConfigs with the addition of
6876// the ability to pass a context and additional request options.
6877//
6878// See ListRealtimeLogConfigs for details on how to use this API operation.
6879//
6880// The context must be non-nil and will be used for request cancellation. If
6881// the context is nil a panic will occur. In the future the SDK may create
6882// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6883// for more information on using Contexts.
6884func (c *CloudFront) ListRealtimeLogConfigsWithContext(ctx aws.Context, input *ListRealtimeLogConfigsInput, opts ...request.Option) (*ListRealtimeLogConfigsOutput, error) {
6885	req, out := c.ListRealtimeLogConfigsRequest(input)
6886	req.SetContext(ctx)
6887	req.ApplyOptions(opts...)
6888	return out, req.Send()
6889}
6890
6891const opListStreamingDistributions = "ListStreamingDistributions2020_05_31"
6892
6893// ListStreamingDistributionsRequest generates a "aws/request.Request" representing the
6894// client's request for the ListStreamingDistributions operation. The "output" return
6895// value will be populated with the request's response once the request completes
6896// successfully.
6897//
6898// Use "Send" method on the returned Request to send the API call to the service.
6899// the "output" return value is not valid until after Send returns without error.
6900//
6901// See ListStreamingDistributions for more information on using the ListStreamingDistributions
6902// API call, and error handling.
6903//
6904// This method is useful when you want to inject custom logic or configuration
6905// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6906//
6907//
6908//    // Example sending a request using the ListStreamingDistributionsRequest method.
6909//    req, resp := client.ListStreamingDistributionsRequest(params)
6910//
6911//    err := req.Send()
6912//    if err == nil { // resp is now filled
6913//        fmt.Println(resp)
6914//    }
6915//
6916// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListStreamingDistributions
6917func (c *CloudFront) ListStreamingDistributionsRequest(input *ListStreamingDistributionsInput) (req *request.Request, output *ListStreamingDistributionsOutput) {
6918	op := &request.Operation{
6919		Name:       opListStreamingDistributions,
6920		HTTPMethod: "GET",
6921		HTTPPath:   "/2020-05-31/streaming-distribution",
6922		Paginator: &request.Paginator{
6923			InputTokens:     []string{"Marker"},
6924			OutputTokens:    []string{"StreamingDistributionList.NextMarker"},
6925			LimitToken:      "MaxItems",
6926			TruncationToken: "StreamingDistributionList.IsTruncated",
6927		},
6928	}
6929
6930	if input == nil {
6931		input = &ListStreamingDistributionsInput{}
6932	}
6933
6934	output = &ListStreamingDistributionsOutput{}
6935	req = c.newRequest(op, input, output)
6936	return
6937}
6938
6939// ListStreamingDistributions API operation for Amazon CloudFront.
6940//
6941// List streaming distributions.
6942//
6943// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6944// with awserr.Error's Code and Message methods to get detailed information about
6945// the error.
6946//
6947// See the AWS API reference guide for Amazon CloudFront's
6948// API operation ListStreamingDistributions for usage and error information.
6949//
6950// Returned Error Codes:
6951//   * ErrCodeInvalidArgument "InvalidArgument"
6952//   An argument is invalid.
6953//
6954// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListStreamingDistributions
6955func (c *CloudFront) ListStreamingDistributions(input *ListStreamingDistributionsInput) (*ListStreamingDistributionsOutput, error) {
6956	req, out := c.ListStreamingDistributionsRequest(input)
6957	return out, req.Send()
6958}
6959
6960// ListStreamingDistributionsWithContext is the same as ListStreamingDistributions with the addition of
6961// the ability to pass a context and additional request options.
6962//
6963// See ListStreamingDistributions for details on how to use this API operation.
6964//
6965// The context must be non-nil and will be used for request cancellation. If
6966// the context is nil a panic will occur. In the future the SDK may create
6967// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6968// for more information on using Contexts.
6969func (c *CloudFront) ListStreamingDistributionsWithContext(ctx aws.Context, input *ListStreamingDistributionsInput, opts ...request.Option) (*ListStreamingDistributionsOutput, error) {
6970	req, out := c.ListStreamingDistributionsRequest(input)
6971	req.SetContext(ctx)
6972	req.ApplyOptions(opts...)
6973	return out, req.Send()
6974}
6975
6976// ListStreamingDistributionsPages iterates over the pages of a ListStreamingDistributions operation,
6977// calling the "fn" function with the response data for each page. To stop
6978// iterating, return false from the fn function.
6979//
6980// See ListStreamingDistributions method for more information on how to use this operation.
6981//
6982// Note: This operation can generate multiple requests to a service.
6983//
6984//    // Example iterating over at most 3 pages of a ListStreamingDistributions operation.
6985//    pageNum := 0
6986//    err := client.ListStreamingDistributionsPages(params,
6987//        func(page *cloudfront.ListStreamingDistributionsOutput, lastPage bool) bool {
6988//            pageNum++
6989//            fmt.Println(page)
6990//            return pageNum <= 3
6991//        })
6992//
6993func (c *CloudFront) ListStreamingDistributionsPages(input *ListStreamingDistributionsInput, fn func(*ListStreamingDistributionsOutput, bool) bool) error {
6994	return c.ListStreamingDistributionsPagesWithContext(aws.BackgroundContext(), input, fn)
6995}
6996
6997// ListStreamingDistributionsPagesWithContext same as ListStreamingDistributionsPages except
6998// it takes a Context and allows setting request options on the pages.
6999//
7000// The context must be non-nil and will be used for request cancellation. If
7001// the context is nil a panic will occur. In the future the SDK may create
7002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7003// for more information on using Contexts.
7004func (c *CloudFront) ListStreamingDistributionsPagesWithContext(ctx aws.Context, input *ListStreamingDistributionsInput, fn func(*ListStreamingDistributionsOutput, bool) bool, opts ...request.Option) error {
7005	p := request.Pagination{
7006		NewRequest: func() (*request.Request, error) {
7007			var inCpy *ListStreamingDistributionsInput
7008			if input != nil {
7009				tmp := *input
7010				inCpy = &tmp
7011			}
7012			req, _ := c.ListStreamingDistributionsRequest(inCpy)
7013			req.SetContext(ctx)
7014			req.ApplyOptions(opts...)
7015			return req, nil
7016		},
7017	}
7018
7019	for p.Next() {
7020		if !fn(p.Page().(*ListStreamingDistributionsOutput), !p.HasNextPage()) {
7021			break
7022		}
7023	}
7024
7025	return p.Err()
7026}
7027
7028const opListTagsForResource = "ListTagsForResource2020_05_31"
7029
7030// ListTagsForResourceRequest generates a "aws/request.Request" representing the
7031// client's request for the ListTagsForResource operation. The "output" return
7032// value will be populated with the request's response once the request completes
7033// successfully.
7034//
7035// Use "Send" method on the returned Request to send the API call to the service.
7036// the "output" return value is not valid until after Send returns without error.
7037//
7038// See ListTagsForResource for more information on using the ListTagsForResource
7039// API call, and error handling.
7040//
7041// This method is useful when you want to inject custom logic or configuration
7042// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7043//
7044//
7045//    // Example sending a request using the ListTagsForResourceRequest method.
7046//    req, resp := client.ListTagsForResourceRequest(params)
7047//
7048//    err := req.Send()
7049//    if err == nil { // resp is now filled
7050//        fmt.Println(resp)
7051//    }
7052//
7053// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListTagsForResource
7054func (c *CloudFront) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
7055	op := &request.Operation{
7056		Name:       opListTagsForResource,
7057		HTTPMethod: "GET",
7058		HTTPPath:   "/2020-05-31/tagging",
7059	}
7060
7061	if input == nil {
7062		input = &ListTagsForResourceInput{}
7063	}
7064
7065	output = &ListTagsForResourceOutput{}
7066	req = c.newRequest(op, input, output)
7067	return
7068}
7069
7070// ListTagsForResource API operation for Amazon CloudFront.
7071//
7072// List tags for a CloudFront resource.
7073//
7074// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7075// with awserr.Error's Code and Message methods to get detailed information about
7076// the error.
7077//
7078// See the AWS API reference guide for Amazon CloudFront's
7079// API operation ListTagsForResource for usage and error information.
7080//
7081// Returned Error Codes:
7082//   * ErrCodeAccessDenied "AccessDenied"
7083//   Access denied.
7084//
7085//   * ErrCodeInvalidArgument "InvalidArgument"
7086//   An argument is invalid.
7087//
7088//   * ErrCodeInvalidTagging "InvalidTagging"
7089//   The tagging specified is not valid.
7090//
7091//   * ErrCodeNoSuchResource "NoSuchResource"
7092//   A resource that was specified is not valid.
7093//
7094// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListTagsForResource
7095func (c *CloudFront) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
7096	req, out := c.ListTagsForResourceRequest(input)
7097	return out, req.Send()
7098}
7099
7100// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
7101// the ability to pass a context and additional request options.
7102//
7103// See ListTagsForResource for details on how to use this API operation.
7104//
7105// The context must be non-nil and will be used for request cancellation. If
7106// the context is nil a panic will occur. In the future the SDK may create
7107// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7108// for more information on using Contexts.
7109func (c *CloudFront) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
7110	req, out := c.ListTagsForResourceRequest(input)
7111	req.SetContext(ctx)
7112	req.ApplyOptions(opts...)
7113	return out, req.Send()
7114}
7115
7116const opPublishFunction = "PublishFunction2020_05_31"
7117
7118// PublishFunctionRequest generates a "aws/request.Request" representing the
7119// client's request for the PublishFunction operation. The "output" return
7120// value will be populated with the request's response once the request completes
7121// successfully.
7122//
7123// Use "Send" method on the returned Request to send the API call to the service.
7124// the "output" return value is not valid until after Send returns without error.
7125//
7126// See PublishFunction for more information on using the PublishFunction
7127// API call, and error handling.
7128//
7129// This method is useful when you want to inject custom logic or configuration
7130// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7131//
7132//
7133//    // Example sending a request using the PublishFunctionRequest method.
7134//    req, resp := client.PublishFunctionRequest(params)
7135//
7136//    err := req.Send()
7137//    if err == nil { // resp is now filled
7138//        fmt.Println(resp)
7139//    }
7140//
7141// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/PublishFunction
7142func (c *CloudFront) PublishFunctionRequest(input *PublishFunctionInput) (req *request.Request, output *PublishFunctionOutput) {
7143	op := &request.Operation{
7144		Name:       opPublishFunction,
7145		HTTPMethod: "POST",
7146		HTTPPath:   "/2020-05-31/function/{Name}/publish",
7147	}
7148
7149	if input == nil {
7150		input = &PublishFunctionInput{}
7151	}
7152
7153	output = &PublishFunctionOutput{}
7154	req = c.newRequest(op, input, output)
7155	return
7156}
7157
7158// PublishFunction API operation for Amazon CloudFront.
7159//
7160// Publishes a CloudFront function by copying the function code from the DEVELOPMENT
7161// stage to LIVE. This automatically updates all cache behaviors that are using
7162// this function to use the newly published copy in the LIVE stage.
7163//
7164// When a function is published to the LIVE stage, you can attach the function
7165// to a distribution’s cache behavior, using the function’s Amazon Resource
7166// Name (ARN).
7167//
7168// To publish a function, you must provide the function’s name and version
7169// (ETag value). To get these values, you can use ListFunctions and DescribeFunction.
7170//
7171// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7172// with awserr.Error's Code and Message methods to get detailed information about
7173// the error.
7174//
7175// See the AWS API reference guide for Amazon CloudFront's
7176// API operation PublishFunction for usage and error information.
7177//
7178// Returned Error Codes:
7179//   * ErrCodeInvalidArgument "InvalidArgument"
7180//   An argument is invalid.
7181//
7182//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
7183//   The If-Match version is missing or not valid.
7184//
7185//   * ErrCodeNoSuchFunctionExists "NoSuchFunctionExists"
7186//   The function does not exist.
7187//
7188//   * ErrCodePreconditionFailed "PreconditionFailed"
7189//   The precondition in one or more of the request fields evaluated to false.
7190//
7191//   * ErrCodeUnsupportedOperation "UnsupportedOperation"
7192//   This operation is not supported in this region.
7193//
7194// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/PublishFunction
7195func (c *CloudFront) PublishFunction(input *PublishFunctionInput) (*PublishFunctionOutput, error) {
7196	req, out := c.PublishFunctionRequest(input)
7197	return out, req.Send()
7198}
7199
7200// PublishFunctionWithContext is the same as PublishFunction with the addition of
7201// the ability to pass a context and additional request options.
7202//
7203// See PublishFunction for details on how to use this API operation.
7204//
7205// The context must be non-nil and will be used for request cancellation. If
7206// the context is nil a panic will occur. In the future the SDK may create
7207// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7208// for more information on using Contexts.
7209func (c *CloudFront) PublishFunctionWithContext(ctx aws.Context, input *PublishFunctionInput, opts ...request.Option) (*PublishFunctionOutput, error) {
7210	req, out := c.PublishFunctionRequest(input)
7211	req.SetContext(ctx)
7212	req.ApplyOptions(opts...)
7213	return out, req.Send()
7214}
7215
7216const opTagResource = "TagResource2020_05_31"
7217
7218// TagResourceRequest generates a "aws/request.Request" representing the
7219// client's request for the TagResource operation. The "output" return
7220// value will be populated with the request's response once the request completes
7221// successfully.
7222//
7223// Use "Send" method on the returned Request to send the API call to the service.
7224// the "output" return value is not valid until after Send returns without error.
7225//
7226// See TagResource for more information on using the TagResource
7227// API call, and error handling.
7228//
7229// This method is useful when you want to inject custom logic or configuration
7230// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7231//
7232//
7233//    // Example sending a request using the TagResourceRequest method.
7234//    req, resp := client.TagResourceRequest(params)
7235//
7236//    err := req.Send()
7237//    if err == nil { // resp is now filled
7238//        fmt.Println(resp)
7239//    }
7240//
7241// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TagResource
7242func (c *CloudFront) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
7243	op := &request.Operation{
7244		Name:       opTagResource,
7245		HTTPMethod: "POST",
7246		HTTPPath:   "/2020-05-31/tagging?Operation=Tag",
7247	}
7248
7249	if input == nil {
7250		input = &TagResourceInput{}
7251	}
7252
7253	output = &TagResourceOutput{}
7254	req = c.newRequest(op, input, output)
7255	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7256	return
7257}
7258
7259// TagResource API operation for Amazon CloudFront.
7260//
7261// Add tags to a CloudFront resource.
7262//
7263// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7264// with awserr.Error's Code and Message methods to get detailed information about
7265// the error.
7266//
7267// See the AWS API reference guide for Amazon CloudFront's
7268// API operation TagResource for usage and error information.
7269//
7270// Returned Error Codes:
7271//   * ErrCodeAccessDenied "AccessDenied"
7272//   Access denied.
7273//
7274//   * ErrCodeInvalidArgument "InvalidArgument"
7275//   An argument is invalid.
7276//
7277//   * ErrCodeInvalidTagging "InvalidTagging"
7278//   The tagging specified is not valid.
7279//
7280//   * ErrCodeNoSuchResource "NoSuchResource"
7281//   A resource that was specified is not valid.
7282//
7283// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TagResource
7284func (c *CloudFront) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
7285	req, out := c.TagResourceRequest(input)
7286	return out, req.Send()
7287}
7288
7289// TagResourceWithContext is the same as TagResource with the addition of
7290// the ability to pass a context and additional request options.
7291//
7292// See TagResource for details on how to use this API operation.
7293//
7294// The context must be non-nil and will be used for request cancellation. If
7295// the context is nil a panic will occur. In the future the SDK may create
7296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7297// for more information on using Contexts.
7298func (c *CloudFront) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
7299	req, out := c.TagResourceRequest(input)
7300	req.SetContext(ctx)
7301	req.ApplyOptions(opts...)
7302	return out, req.Send()
7303}
7304
7305const opTestFunction = "TestFunction2020_05_31"
7306
7307// TestFunctionRequest generates a "aws/request.Request" representing the
7308// client's request for the TestFunction operation. The "output" return
7309// value will be populated with the request's response once the request completes
7310// successfully.
7311//
7312// Use "Send" method on the returned Request to send the API call to the service.
7313// the "output" return value is not valid until after Send returns without error.
7314//
7315// See TestFunction for more information on using the TestFunction
7316// API call, and error handling.
7317//
7318// This method is useful when you want to inject custom logic or configuration
7319// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7320//
7321//
7322//    // Example sending a request using the TestFunctionRequest method.
7323//    req, resp := client.TestFunctionRequest(params)
7324//
7325//    err := req.Send()
7326//    if err == nil { // resp is now filled
7327//        fmt.Println(resp)
7328//    }
7329//
7330// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TestFunction
7331func (c *CloudFront) TestFunctionRequest(input *TestFunctionInput) (req *request.Request, output *TestFunctionOutput) {
7332	op := &request.Operation{
7333		Name:       opTestFunction,
7334		HTTPMethod: "POST",
7335		HTTPPath:   "/2020-05-31/function/{Name}/test",
7336	}
7337
7338	if input == nil {
7339		input = &TestFunctionInput{}
7340	}
7341
7342	output = &TestFunctionOutput{}
7343	req = c.newRequest(op, input, output)
7344	return
7345}
7346
7347// TestFunction API operation for Amazon CloudFront.
7348//
7349// Tests a CloudFront function.
7350//
7351// To test a function, you provide an event object that represents an HTTP request
7352// or response that your CloudFront distribution could receive in production.
7353// CloudFront runs the function, passing it the event object that you provided,
7354// and returns the function’s result (the modified event object) in the response.
7355// The response also contains function logs and error messages, if any exist.
7356// For more information about testing functions, see Testing functions (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managing-functions.html#test-function)
7357// in the Amazon CloudFront Developer Guide.
7358//
7359// To test a function, you provide the function’s name and version (ETag value)
7360// along with the event object. To get the function’s name and version, you
7361// can use ListFunctions and DescribeFunction.
7362//
7363// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7364// with awserr.Error's Code and Message methods to get detailed information about
7365// the error.
7366//
7367// See the AWS API reference guide for Amazon CloudFront's
7368// API operation TestFunction for usage and error information.
7369//
7370// Returned Error Codes:
7371//   * ErrCodeInvalidArgument "InvalidArgument"
7372//   An argument is invalid.
7373//
7374//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
7375//   The If-Match version is missing or not valid.
7376//
7377//   * ErrCodeNoSuchFunctionExists "NoSuchFunctionExists"
7378//   The function does not exist.
7379//
7380//   * ErrCodeTestFunctionFailed "TestFunctionFailed"
7381//   The CloudFront function failed.
7382//
7383//   * ErrCodeUnsupportedOperation "UnsupportedOperation"
7384//   This operation is not supported in this region.
7385//
7386// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/TestFunction
7387func (c *CloudFront) TestFunction(input *TestFunctionInput) (*TestFunctionOutput, error) {
7388	req, out := c.TestFunctionRequest(input)
7389	return out, req.Send()
7390}
7391
7392// TestFunctionWithContext is the same as TestFunction with the addition of
7393// the ability to pass a context and additional request options.
7394//
7395// See TestFunction for details on how to use this API operation.
7396//
7397// The context must be non-nil and will be used for request cancellation. If
7398// the context is nil a panic will occur. In the future the SDK may create
7399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7400// for more information on using Contexts.
7401func (c *CloudFront) TestFunctionWithContext(ctx aws.Context, input *TestFunctionInput, opts ...request.Option) (*TestFunctionOutput, error) {
7402	req, out := c.TestFunctionRequest(input)
7403	req.SetContext(ctx)
7404	req.ApplyOptions(opts...)
7405	return out, req.Send()
7406}
7407
7408const opUntagResource = "UntagResource2020_05_31"
7409
7410// UntagResourceRequest generates a "aws/request.Request" representing the
7411// client's request for the UntagResource operation. The "output" return
7412// value will be populated with the request's response once the request completes
7413// successfully.
7414//
7415// Use "Send" method on the returned Request to send the API call to the service.
7416// the "output" return value is not valid until after Send returns without error.
7417//
7418// See UntagResource for more information on using the UntagResource
7419// API call, and error handling.
7420//
7421// This method is useful when you want to inject custom logic or configuration
7422// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7423//
7424//
7425//    // Example sending a request using the UntagResourceRequest method.
7426//    req, resp := client.UntagResourceRequest(params)
7427//
7428//    err := req.Send()
7429//    if err == nil { // resp is now filled
7430//        fmt.Println(resp)
7431//    }
7432//
7433// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UntagResource
7434func (c *CloudFront) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
7435	op := &request.Operation{
7436		Name:       opUntagResource,
7437		HTTPMethod: "POST",
7438		HTTPPath:   "/2020-05-31/tagging?Operation=Untag",
7439	}
7440
7441	if input == nil {
7442		input = &UntagResourceInput{}
7443	}
7444
7445	output = &UntagResourceOutput{}
7446	req = c.newRequest(op, input, output)
7447	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7448	return
7449}
7450
7451// UntagResource API operation for Amazon CloudFront.
7452//
7453// Remove tags from a CloudFront resource.
7454//
7455// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7456// with awserr.Error's Code and Message methods to get detailed information about
7457// the error.
7458//
7459// See the AWS API reference guide for Amazon CloudFront's
7460// API operation UntagResource for usage and error information.
7461//
7462// Returned Error Codes:
7463//   * ErrCodeAccessDenied "AccessDenied"
7464//   Access denied.
7465//
7466//   * ErrCodeInvalidArgument "InvalidArgument"
7467//   An argument is invalid.
7468//
7469//   * ErrCodeInvalidTagging "InvalidTagging"
7470//   The tagging specified is not valid.
7471//
7472//   * ErrCodeNoSuchResource "NoSuchResource"
7473//   A resource that was specified is not valid.
7474//
7475// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UntagResource
7476func (c *CloudFront) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
7477	req, out := c.UntagResourceRequest(input)
7478	return out, req.Send()
7479}
7480
7481// UntagResourceWithContext is the same as UntagResource with the addition of
7482// the ability to pass a context and additional request options.
7483//
7484// See UntagResource for details on how to use this API operation.
7485//
7486// The context must be non-nil and will be used for request cancellation. If
7487// the context is nil a panic will occur. In the future the SDK may create
7488// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7489// for more information on using Contexts.
7490func (c *CloudFront) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
7491	req, out := c.UntagResourceRequest(input)
7492	req.SetContext(ctx)
7493	req.ApplyOptions(opts...)
7494	return out, req.Send()
7495}
7496
7497const opUpdateCachePolicy = "UpdateCachePolicy2020_05_31"
7498
7499// UpdateCachePolicyRequest generates a "aws/request.Request" representing the
7500// client's request for the UpdateCachePolicy operation. The "output" return
7501// value will be populated with the request's response once the request completes
7502// successfully.
7503//
7504// Use "Send" method on the returned Request to send the API call to the service.
7505// the "output" return value is not valid until after Send returns without error.
7506//
7507// See UpdateCachePolicy for more information on using the UpdateCachePolicy
7508// API call, and error handling.
7509//
7510// This method is useful when you want to inject custom logic or configuration
7511// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7512//
7513//
7514//    // Example sending a request using the UpdateCachePolicyRequest method.
7515//    req, resp := client.UpdateCachePolicyRequest(params)
7516//
7517//    err := req.Send()
7518//    if err == nil { // resp is now filled
7519//        fmt.Println(resp)
7520//    }
7521//
7522// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateCachePolicy
7523func (c *CloudFront) UpdateCachePolicyRequest(input *UpdateCachePolicyInput) (req *request.Request, output *UpdateCachePolicyOutput) {
7524	op := &request.Operation{
7525		Name:       opUpdateCachePolicy,
7526		HTTPMethod: "PUT",
7527		HTTPPath:   "/2020-05-31/cache-policy/{Id}",
7528	}
7529
7530	if input == nil {
7531		input = &UpdateCachePolicyInput{}
7532	}
7533
7534	output = &UpdateCachePolicyOutput{}
7535	req = c.newRequest(op, input, output)
7536	return
7537}
7538
7539// UpdateCachePolicy API operation for Amazon CloudFront.
7540//
7541// Updates a cache policy configuration.
7542//
7543// When you update a cache policy configuration, all the fields are updated
7544// with the values provided in the request. You cannot update some fields independent
7545// of others. To update a cache policy configuration:
7546//
7547// Use GetCachePolicyConfig to get the current configuration.
7548//
7549// Locally modify the fields in the cache policy configuration that you want
7550// to update.
7551//
7552// Call UpdateCachePolicy by providing the entire cache policy configuration,
7553// including the fields that you modified and those that you didn’t.
7554//
7555// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7556// with awserr.Error's Code and Message methods to get detailed information about
7557// the error.
7558//
7559// See the AWS API reference guide for Amazon CloudFront's
7560// API operation UpdateCachePolicy for usage and error information.
7561//
7562// Returned Error Codes:
7563//   * ErrCodeAccessDenied "AccessDenied"
7564//   Access denied.
7565//
7566//   * ErrCodeIllegalUpdate "IllegalUpdate"
7567//   The update contains modifications that are not allowed.
7568//
7569//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
7570//   The value of Quantity and the size of Items don't match.
7571//
7572//   * ErrCodeInvalidArgument "InvalidArgument"
7573//   An argument is invalid.
7574//
7575//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
7576//   The If-Match version is missing or not valid.
7577//
7578//   * ErrCodeNoSuchCachePolicy "NoSuchCachePolicy"
7579//   The cache policy does not exist.
7580//
7581//   * ErrCodePreconditionFailed "PreconditionFailed"
7582//   The precondition in one or more of the request fields evaluated to false.
7583//
7584//   * ErrCodeCachePolicyAlreadyExists "CachePolicyAlreadyExists"
7585//   A cache policy with this name already exists. You must provide a unique name.
7586//   To modify an existing cache policy, use UpdateCachePolicy.
7587//
7588//   * ErrCodeTooManyHeadersInCachePolicy "TooManyHeadersInCachePolicy"
7589//   The number of headers in the cache policy exceeds the maximum. For more information,
7590//   see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
7591//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
7592//
7593//   * ErrCodeTooManyCookiesInCachePolicy "TooManyCookiesInCachePolicy"
7594//   The number of cookies in the cache policy exceeds the maximum. For more information,
7595//   see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
7596//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
7597//
7598//   * ErrCodeTooManyQueryStringsInCachePolicy "TooManyQueryStringsInCachePolicy"
7599//   The number of query strings in the cache policy exceeds the maximum. For
7600//   more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
7601//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
7602//
7603// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateCachePolicy
7604func (c *CloudFront) UpdateCachePolicy(input *UpdateCachePolicyInput) (*UpdateCachePolicyOutput, error) {
7605	req, out := c.UpdateCachePolicyRequest(input)
7606	return out, req.Send()
7607}
7608
7609// UpdateCachePolicyWithContext is the same as UpdateCachePolicy with the addition of
7610// the ability to pass a context and additional request options.
7611//
7612// See UpdateCachePolicy for details on how to use this API operation.
7613//
7614// The context must be non-nil and will be used for request cancellation. If
7615// the context is nil a panic will occur. In the future the SDK may create
7616// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7617// for more information on using Contexts.
7618func (c *CloudFront) UpdateCachePolicyWithContext(ctx aws.Context, input *UpdateCachePolicyInput, opts ...request.Option) (*UpdateCachePolicyOutput, error) {
7619	req, out := c.UpdateCachePolicyRequest(input)
7620	req.SetContext(ctx)
7621	req.ApplyOptions(opts...)
7622	return out, req.Send()
7623}
7624
7625const opUpdateCloudFrontOriginAccessIdentity = "UpdateCloudFrontOriginAccessIdentity2020_05_31"
7626
7627// UpdateCloudFrontOriginAccessIdentityRequest generates a "aws/request.Request" representing the
7628// client's request for the UpdateCloudFrontOriginAccessIdentity operation. The "output" return
7629// value will be populated with the request's response once the request completes
7630// successfully.
7631//
7632// Use "Send" method on the returned Request to send the API call to the service.
7633// the "output" return value is not valid until after Send returns without error.
7634//
7635// See UpdateCloudFrontOriginAccessIdentity for more information on using the UpdateCloudFrontOriginAccessIdentity
7636// API call, and error handling.
7637//
7638// This method is useful when you want to inject custom logic or configuration
7639// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7640//
7641//
7642//    // Example sending a request using the UpdateCloudFrontOriginAccessIdentityRequest method.
7643//    req, resp := client.UpdateCloudFrontOriginAccessIdentityRequest(params)
7644//
7645//    err := req.Send()
7646//    if err == nil { // resp is now filled
7647//        fmt.Println(resp)
7648//    }
7649//
7650// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateCloudFrontOriginAccessIdentity
7651func (c *CloudFront) UpdateCloudFrontOriginAccessIdentityRequest(input *UpdateCloudFrontOriginAccessIdentityInput) (req *request.Request, output *UpdateCloudFrontOriginAccessIdentityOutput) {
7652	op := &request.Operation{
7653		Name:       opUpdateCloudFrontOriginAccessIdentity,
7654		HTTPMethod: "PUT",
7655		HTTPPath:   "/2020-05-31/origin-access-identity/cloudfront/{Id}/config",
7656	}
7657
7658	if input == nil {
7659		input = &UpdateCloudFrontOriginAccessIdentityInput{}
7660	}
7661
7662	output = &UpdateCloudFrontOriginAccessIdentityOutput{}
7663	req = c.newRequest(op, input, output)
7664	return
7665}
7666
7667// UpdateCloudFrontOriginAccessIdentity API operation for Amazon CloudFront.
7668//
7669// Update an origin access identity.
7670//
7671// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7672// with awserr.Error's Code and Message methods to get detailed information about
7673// the error.
7674//
7675// See the AWS API reference guide for Amazon CloudFront's
7676// API operation UpdateCloudFrontOriginAccessIdentity for usage and error information.
7677//
7678// Returned Error Codes:
7679//   * ErrCodeAccessDenied "AccessDenied"
7680//   Access denied.
7681//
7682//   * ErrCodeIllegalUpdate "IllegalUpdate"
7683//   The update contains modifications that are not allowed.
7684//
7685//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
7686//   The If-Match version is missing or not valid.
7687//
7688//   * ErrCodeMissingBody "MissingBody"
7689//   This operation requires a body. Ensure that the body is present and the Content-Type
7690//   header is set.
7691//
7692//   * ErrCodeNoSuchCloudFrontOriginAccessIdentity "NoSuchCloudFrontOriginAccessIdentity"
7693//   The specified origin access identity does not exist.
7694//
7695//   * ErrCodePreconditionFailed "PreconditionFailed"
7696//   The precondition in one or more of the request fields evaluated to false.
7697//
7698//   * ErrCodeInvalidArgument "InvalidArgument"
7699//   An argument is invalid.
7700//
7701//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
7702//   The value of Quantity and the size of Items don't match.
7703//
7704// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateCloudFrontOriginAccessIdentity
7705func (c *CloudFront) UpdateCloudFrontOriginAccessIdentity(input *UpdateCloudFrontOriginAccessIdentityInput) (*UpdateCloudFrontOriginAccessIdentityOutput, error) {
7706	req, out := c.UpdateCloudFrontOriginAccessIdentityRequest(input)
7707	return out, req.Send()
7708}
7709
7710// UpdateCloudFrontOriginAccessIdentityWithContext is the same as UpdateCloudFrontOriginAccessIdentity with the addition of
7711// the ability to pass a context and additional request options.
7712//
7713// See UpdateCloudFrontOriginAccessIdentity for details on how to use this API operation.
7714//
7715// The context must be non-nil and will be used for request cancellation. If
7716// the context is nil a panic will occur. In the future the SDK may create
7717// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7718// for more information on using Contexts.
7719func (c *CloudFront) UpdateCloudFrontOriginAccessIdentityWithContext(ctx aws.Context, input *UpdateCloudFrontOriginAccessIdentityInput, opts ...request.Option) (*UpdateCloudFrontOriginAccessIdentityOutput, error) {
7720	req, out := c.UpdateCloudFrontOriginAccessIdentityRequest(input)
7721	req.SetContext(ctx)
7722	req.ApplyOptions(opts...)
7723	return out, req.Send()
7724}
7725
7726const opUpdateDistribution = "UpdateDistribution2020_05_31"
7727
7728// UpdateDistributionRequest generates a "aws/request.Request" representing the
7729// client's request for the UpdateDistribution operation. The "output" return
7730// value will be populated with the request's response once the request completes
7731// successfully.
7732//
7733// Use "Send" method on the returned Request to send the API call to the service.
7734// the "output" return value is not valid until after Send returns without error.
7735//
7736// See UpdateDistribution for more information on using the UpdateDistribution
7737// API call, and error handling.
7738//
7739// This method is useful when you want to inject custom logic or configuration
7740// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7741//
7742//
7743//    // Example sending a request using the UpdateDistributionRequest method.
7744//    req, resp := client.UpdateDistributionRequest(params)
7745//
7746//    err := req.Send()
7747//    if err == nil { // resp is now filled
7748//        fmt.Println(resp)
7749//    }
7750//
7751// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateDistribution
7752func (c *CloudFront) UpdateDistributionRequest(input *UpdateDistributionInput) (req *request.Request, output *UpdateDistributionOutput) {
7753	op := &request.Operation{
7754		Name:       opUpdateDistribution,
7755		HTTPMethod: "PUT",
7756		HTTPPath:   "/2020-05-31/distribution/{Id}/config",
7757	}
7758
7759	if input == nil {
7760		input = &UpdateDistributionInput{}
7761	}
7762
7763	output = &UpdateDistributionOutput{}
7764	req = c.newRequest(op, input, output)
7765	return
7766}
7767
7768// UpdateDistribution API operation for Amazon CloudFront.
7769//
7770// Updates the configuration for a web distribution.
7771//
7772// When you update a distribution, there are more required fields than when
7773// you create a distribution. When you update your distribution by using this
7774// API action, follow the steps here to get the current configuration and then
7775// make your updates, to make sure that you include all of the required fields.
7776// To view a summary, see Required Fields for Create Distribution and Update
7777// Distribution (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-overview-required-fields.html)
7778// in the Amazon CloudFront Developer Guide.
7779//
7780// The update process includes getting the current distribution configuration,
7781// updating the XML document that is returned to make your changes, and then
7782// submitting an UpdateDistribution request to make the updates.
7783//
7784// For information about updating a distribution using the CloudFront console
7785// instead, see Creating a Distribution (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html)
7786// in the Amazon CloudFront Developer Guide.
7787//
7788// To update a web distribution using the CloudFront API
7789//
7790// Submit a GetDistributionConfig (https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistributionConfig.html)
7791// request to get the current configuration and an Etag header for the distribution.
7792//
7793// If you update the distribution again, you must get a new Etag header.
7794//
7795// Update the XML document that was returned in the response to your GetDistributionConfig
7796// request to include your changes.
7797//
7798// When you edit the XML file, be aware of the following:
7799//
7800//    * You must strip out the ETag parameter that is returned.
7801//
7802//    * Additional fields are required when you update a distribution. There
7803//    may be fields included in the XML file for features that you haven't configured
7804//    for your distribution. This is expected and required to successfully update
7805//    the distribution.
7806//
7807//    * You can't change the value of CallerReference. If you try to change
7808//    this value, CloudFront returns an IllegalUpdate error.
7809//
7810//    * The new configuration replaces the existing configuration; the values
7811//    that you specify in an UpdateDistribution request are not merged into
7812//    your existing configuration. When you add, delete, or replace values in
7813//    an element that allows multiple values (for example, CNAME), you must
7814//    specify all of the values that you want to appear in the updated distribution.
7815//    In addition, you must update the corresponding Quantity element.
7816//
7817// Submit an UpdateDistribution request to update the configuration for your
7818// distribution:
7819//
7820//    * In the request body, include the XML document that you updated in Step
7821//    2. The request body must include an XML document with a DistributionConfig
7822//    element.
7823//
7824//    * Set the value of the HTTP If-Match header to the value of the ETag header
7825//    that CloudFront returned when you submitted the GetDistributionConfig
7826//    request in Step 1.
7827//
7828// Review the response to the UpdateDistribution request to confirm that the
7829// configuration was successfully updated.
7830//
7831// Optional: Submit a GetDistribution (https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistribution.html)
7832// request to confirm that your changes have propagated. When propagation is
7833// complete, the value of Status is Deployed.
7834//
7835// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7836// with awserr.Error's Code and Message methods to get detailed information about
7837// the error.
7838//
7839// See the AWS API reference guide for Amazon CloudFront's
7840// API operation UpdateDistribution for usage and error information.
7841//
7842// Returned Error Codes:
7843//   * ErrCodeAccessDenied "AccessDenied"
7844//   Access denied.
7845//
7846//   * ErrCodeCNAMEAlreadyExists "CNAMEAlreadyExists"
7847//   The CNAME specified is already defined for CloudFront.
7848//
7849//   * ErrCodeIllegalUpdate "IllegalUpdate"
7850//   The update contains modifications that are not allowed.
7851//
7852//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
7853//   The If-Match version is missing or not valid.
7854//
7855//   * ErrCodeMissingBody "MissingBody"
7856//   This operation requires a body. Ensure that the body is present and the Content-Type
7857//   header is set.
7858//
7859//   * ErrCodeNoSuchDistribution "NoSuchDistribution"
7860//   The specified distribution does not exist.
7861//
7862//   * ErrCodePreconditionFailed "PreconditionFailed"
7863//   The precondition in one or more of the request fields evaluated to false.
7864//
7865//   * ErrCodeTooManyDistributionCNAMEs "TooManyDistributionCNAMEs"
7866//   Your request contains more CNAMEs than are allowed per distribution.
7867//
7868//   * ErrCodeInvalidDefaultRootObject "InvalidDefaultRootObject"
7869//   The default root object file name is too big or contains an invalid character.
7870//
7871//   * ErrCodeInvalidRelativePath "InvalidRelativePath"
7872//   The relative path is too big, is not URL-encoded, or does not begin with
7873//   a slash (/).
7874//
7875//   * ErrCodeInvalidErrorCode "InvalidErrorCode"
7876//   An invalid error code was specified.
7877//
7878//   * ErrCodeInvalidResponseCode "InvalidResponseCode"
7879//   A response code is not valid.
7880//
7881//   * ErrCodeInvalidArgument "InvalidArgument"
7882//   An argument is invalid.
7883//
7884//   * ErrCodeInvalidOriginAccessIdentity "InvalidOriginAccessIdentity"
7885//   The origin access identity is not valid or doesn't exist.
7886//
7887//   * ErrCodeTooManyTrustedSigners "TooManyTrustedSigners"
7888//   Your request contains more trusted signers than are allowed per distribution.
7889//
7890//   * ErrCodeTrustedSignerDoesNotExist "TrustedSignerDoesNotExist"
7891//   One or more of your trusted signers don't exist.
7892//
7893//   * ErrCodeInvalidViewerCertificate "InvalidViewerCertificate"
7894//   A viewer certificate specified is not valid.
7895//
7896//   * ErrCodeInvalidMinimumProtocolVersion "InvalidMinimumProtocolVersion"
7897//   The minimum protocol version specified is not valid.
7898//
7899//   * ErrCodeInvalidRequiredProtocol "InvalidRequiredProtocol"
7900//   This operation requires the HTTPS protocol. Ensure that you specify the HTTPS
7901//   protocol in your request, or omit the RequiredProtocols element from your
7902//   distribution configuration.
7903//
7904//   * ErrCodeNoSuchOrigin "NoSuchOrigin"
7905//   No origin exists with the specified Origin Id.
7906//
7907//   * ErrCodeTooManyOrigins "TooManyOrigins"
7908//   You cannot create more origins for the distribution.
7909//
7910//   * ErrCodeTooManyOriginGroupsPerDistribution "TooManyOriginGroupsPerDistribution"
7911//   Processing your request would cause you to exceed the maximum number of origin
7912//   groups allowed.
7913//
7914//   * ErrCodeTooManyCacheBehaviors "TooManyCacheBehaviors"
7915//   You cannot create more cache behaviors for the distribution.
7916//
7917//   * ErrCodeTooManyCookieNamesInWhiteList "TooManyCookieNamesInWhiteList"
7918//   Your request contains more cookie names in the whitelist than are allowed
7919//   per cache behavior.
7920//
7921//   * ErrCodeInvalidForwardCookies "InvalidForwardCookies"
7922//   Your request contains forward cookies option which doesn't match with the
7923//   expectation for the whitelisted list of cookie names. Either list of cookie
7924//   names has been specified when not allowed or list of cookie names is missing
7925//   when expected.
7926//
7927//   * ErrCodeTooManyHeadersInForwardedValues "TooManyHeadersInForwardedValues"
7928//   Your request contains too many headers in forwarded values.
7929//
7930//   * ErrCodeInvalidHeadersForS3Origin "InvalidHeadersForS3Origin"
7931//   The headers specified are not valid for an Amazon S3 origin.
7932//
7933//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
7934//   The value of Quantity and the size of Items don't match.
7935//
7936//   * ErrCodeTooManyCertificates "TooManyCertificates"
7937//   You cannot create anymore custom SSL/TLS certificates.
7938//
7939//   * ErrCodeInvalidLocationCode "InvalidLocationCode"
7940//   The location code specified is not valid.
7941//
7942//   * ErrCodeInvalidGeoRestrictionParameter "InvalidGeoRestrictionParameter"
7943//   The specified geo restriction parameter is not valid.
7944//
7945//   * ErrCodeInvalidTTLOrder "InvalidTTLOrder"
7946//   The TTL order specified is not valid.
7947//
7948//   * ErrCodeInvalidWebACLId "InvalidWebACLId"
7949//   A web ACL ID specified is not valid. To specify a web ACL created using the
7950//   latest version of WAF, use the ACL ARN, for example arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a.
7951//   To specify a web ACL created using WAF Classic, use the ACL ID, for example
7952//   473e64fd-f30b-4765-81a0-62ad96dd167a.
7953//
7954//   * ErrCodeTooManyOriginCustomHeaders "TooManyOriginCustomHeaders"
7955//   Your request contains too many origin custom headers.
7956//
7957//   * ErrCodeTooManyQueryStringParameters "TooManyQueryStringParameters"
7958//   Your request contains too many query string parameters.
7959//
7960//   * ErrCodeInvalidQueryStringParameters "InvalidQueryStringParameters"
7961//   The query string parameters specified are not valid.
7962//
7963//   * ErrCodeTooManyDistributionsWithLambdaAssociations "TooManyDistributionsWithLambdaAssociations"
7964//   Processing your request would cause the maximum number of distributions with
7965//   Lambda@Edge function associations per owner to be exceeded.
7966//
7967//   * ErrCodeTooManyDistributionsWithSingleFunctionARN "TooManyDistributionsWithSingleFunctionARN"
7968//   The maximum number of distributions have been associated with the specified
7969//   Lambda@Edge function.
7970//
7971//   * ErrCodeTooManyLambdaFunctionAssociations "TooManyLambdaFunctionAssociations"
7972//   Your request contains more Lambda@Edge function associations than are allowed
7973//   per distribution.
7974//
7975//   * ErrCodeInvalidLambdaFunctionAssociation "InvalidLambdaFunctionAssociation"
7976//   The specified Lambda@Edge function association is invalid.
7977//
7978//   * ErrCodeTooManyDistributionsWithFunctionAssociations "TooManyDistributionsWithFunctionAssociations"
7979//   You have reached the maximum number of distributions that are associated
7980//   with a CloudFront function. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
7981//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
7982//
7983//   * ErrCodeTooManyFunctionAssociations "TooManyFunctionAssociations"
7984//   You have reached the maximum number of CloudFront function associations for
7985//   this distribution. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
7986//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
7987//
7988//   * ErrCodeInvalidFunctionAssociation "InvalidFunctionAssociation"
7989//   A CloudFront function association is invalid.
7990//
7991//   * ErrCodeInvalidOriginReadTimeout "InvalidOriginReadTimeout"
7992//   The read timeout specified for the origin is not valid.
7993//
7994//   * ErrCodeInvalidOriginKeepaliveTimeout "InvalidOriginKeepaliveTimeout"
7995//   The keep alive timeout specified for the origin is not valid.
7996//
7997//   * ErrCodeNoSuchFieldLevelEncryptionConfig "NoSuchFieldLevelEncryptionConfig"
7998//   The specified configuration for field-level encryption doesn't exist.
7999//
8000//   * ErrCodeIllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior "IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior"
8001//   The specified configuration for field-level encryption can't be associated
8002//   with the specified cache behavior.
8003//
8004//   * ErrCodeTooManyDistributionsAssociatedToFieldLevelEncryptionConfig "TooManyDistributionsAssociatedToFieldLevelEncryptionConfig"
8005//   The maximum number of distributions have been associated with the specified
8006//   configuration for field-level encryption.
8007//
8008//   * ErrCodeNoSuchCachePolicy "NoSuchCachePolicy"
8009//   The cache policy does not exist.
8010//
8011//   * ErrCodeTooManyDistributionsAssociatedToCachePolicy "TooManyDistributionsAssociatedToCachePolicy"
8012//   The maximum number of distributions have been associated with the specified
8013//   cache policy. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
8014//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
8015//
8016//   * ErrCodeNoSuchOriginRequestPolicy "NoSuchOriginRequestPolicy"
8017//   The origin request policy does not exist.
8018//
8019//   * ErrCodeTooManyDistributionsAssociatedToOriginRequestPolicy "TooManyDistributionsAssociatedToOriginRequestPolicy"
8020//   The maximum number of distributions have been associated with the specified
8021//   origin request policy. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
8022//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
8023//
8024//   * ErrCodeTooManyDistributionsAssociatedToKeyGroup "TooManyDistributionsAssociatedToKeyGroup"
8025//   The number of distributions that reference this key group is more than the
8026//   maximum allowed. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
8027//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
8028//
8029//   * ErrCodeTooManyKeyGroupsAssociatedToDistribution "TooManyKeyGroupsAssociatedToDistribution"
8030//   The number of key groups referenced by this distribution is more than the
8031//   maximum allowed. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
8032//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
8033//
8034//   * ErrCodeTrustedKeyGroupDoesNotExist "TrustedKeyGroupDoesNotExist"
8035//   The specified key group does not exist.
8036//
8037//   * ErrCodeNoSuchRealtimeLogConfig "NoSuchRealtimeLogConfig"
8038//   The real-time log configuration does not exist.
8039//
8040//   * ErrCodeRealtimeLogConfigOwnerMismatch "RealtimeLogConfigOwnerMismatch"
8041//   The specified real-time log configuration belongs to a different account.
8042//
8043// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateDistribution
8044func (c *CloudFront) UpdateDistribution(input *UpdateDistributionInput) (*UpdateDistributionOutput, error) {
8045	req, out := c.UpdateDistributionRequest(input)
8046	return out, req.Send()
8047}
8048
8049// UpdateDistributionWithContext is the same as UpdateDistribution with the addition of
8050// the ability to pass a context and additional request options.
8051//
8052// See UpdateDistribution for details on how to use this API operation.
8053//
8054// The context must be non-nil and will be used for request cancellation. If
8055// the context is nil a panic will occur. In the future the SDK may create
8056// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8057// for more information on using Contexts.
8058func (c *CloudFront) UpdateDistributionWithContext(ctx aws.Context, input *UpdateDistributionInput, opts ...request.Option) (*UpdateDistributionOutput, error) {
8059	req, out := c.UpdateDistributionRequest(input)
8060	req.SetContext(ctx)
8061	req.ApplyOptions(opts...)
8062	return out, req.Send()
8063}
8064
8065const opUpdateFieldLevelEncryptionConfig = "UpdateFieldLevelEncryptionConfig2020_05_31"
8066
8067// UpdateFieldLevelEncryptionConfigRequest generates a "aws/request.Request" representing the
8068// client's request for the UpdateFieldLevelEncryptionConfig operation. The "output" return
8069// value will be populated with the request's response once the request completes
8070// successfully.
8071//
8072// Use "Send" method on the returned Request to send the API call to the service.
8073// the "output" return value is not valid until after Send returns without error.
8074//
8075// See UpdateFieldLevelEncryptionConfig for more information on using the UpdateFieldLevelEncryptionConfig
8076// API call, and error handling.
8077//
8078// This method is useful when you want to inject custom logic or configuration
8079// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8080//
8081//
8082//    // Example sending a request using the UpdateFieldLevelEncryptionConfigRequest method.
8083//    req, resp := client.UpdateFieldLevelEncryptionConfigRequest(params)
8084//
8085//    err := req.Send()
8086//    if err == nil { // resp is now filled
8087//        fmt.Println(resp)
8088//    }
8089//
8090// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateFieldLevelEncryptionConfig
8091func (c *CloudFront) UpdateFieldLevelEncryptionConfigRequest(input *UpdateFieldLevelEncryptionConfigInput) (req *request.Request, output *UpdateFieldLevelEncryptionConfigOutput) {
8092	op := &request.Operation{
8093		Name:       opUpdateFieldLevelEncryptionConfig,
8094		HTTPMethod: "PUT",
8095		HTTPPath:   "/2020-05-31/field-level-encryption/{Id}/config",
8096	}
8097
8098	if input == nil {
8099		input = &UpdateFieldLevelEncryptionConfigInput{}
8100	}
8101
8102	output = &UpdateFieldLevelEncryptionConfigOutput{}
8103	req = c.newRequest(op, input, output)
8104	return
8105}
8106
8107// UpdateFieldLevelEncryptionConfig API operation for Amazon CloudFront.
8108//
8109// Update a field-level encryption configuration.
8110//
8111// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8112// with awserr.Error's Code and Message methods to get detailed information about
8113// the error.
8114//
8115// See the AWS API reference guide for Amazon CloudFront's
8116// API operation UpdateFieldLevelEncryptionConfig for usage and error information.
8117//
8118// Returned Error Codes:
8119//   * ErrCodeAccessDenied "AccessDenied"
8120//   Access denied.
8121//
8122//   * ErrCodeIllegalUpdate "IllegalUpdate"
8123//   The update contains modifications that are not allowed.
8124//
8125//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
8126//   The value of Quantity and the size of Items don't match.
8127//
8128//   * ErrCodeInvalidArgument "InvalidArgument"
8129//   An argument is invalid.
8130//
8131//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
8132//   The If-Match version is missing or not valid.
8133//
8134//   * ErrCodeNoSuchFieldLevelEncryptionProfile "NoSuchFieldLevelEncryptionProfile"
8135//   The specified profile for field-level encryption doesn't exist.
8136//
8137//   * ErrCodeNoSuchFieldLevelEncryptionConfig "NoSuchFieldLevelEncryptionConfig"
8138//   The specified configuration for field-level encryption doesn't exist.
8139//
8140//   * ErrCodePreconditionFailed "PreconditionFailed"
8141//   The precondition in one or more of the request fields evaluated to false.
8142//
8143//   * ErrCodeTooManyFieldLevelEncryptionQueryArgProfiles "TooManyFieldLevelEncryptionQueryArgProfiles"
8144//   The maximum number of query arg profiles for field-level encryption have
8145//   been created.
8146//
8147//   * ErrCodeTooManyFieldLevelEncryptionContentTypeProfiles "TooManyFieldLevelEncryptionContentTypeProfiles"
8148//   The maximum number of content type profiles for field-level encryption have
8149//   been created.
8150//
8151//   * ErrCodeQueryArgProfileEmpty "QueryArgProfileEmpty"
8152//   No profile specified for the field-level encryption query argument.
8153//
8154// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateFieldLevelEncryptionConfig
8155func (c *CloudFront) UpdateFieldLevelEncryptionConfig(input *UpdateFieldLevelEncryptionConfigInput) (*UpdateFieldLevelEncryptionConfigOutput, error) {
8156	req, out := c.UpdateFieldLevelEncryptionConfigRequest(input)
8157	return out, req.Send()
8158}
8159
8160// UpdateFieldLevelEncryptionConfigWithContext is the same as UpdateFieldLevelEncryptionConfig with the addition of
8161// the ability to pass a context and additional request options.
8162//
8163// See UpdateFieldLevelEncryptionConfig for details on how to use this API operation.
8164//
8165// The context must be non-nil and will be used for request cancellation. If
8166// the context is nil a panic will occur. In the future the SDK may create
8167// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8168// for more information on using Contexts.
8169func (c *CloudFront) UpdateFieldLevelEncryptionConfigWithContext(ctx aws.Context, input *UpdateFieldLevelEncryptionConfigInput, opts ...request.Option) (*UpdateFieldLevelEncryptionConfigOutput, error) {
8170	req, out := c.UpdateFieldLevelEncryptionConfigRequest(input)
8171	req.SetContext(ctx)
8172	req.ApplyOptions(opts...)
8173	return out, req.Send()
8174}
8175
8176const opUpdateFieldLevelEncryptionProfile = "UpdateFieldLevelEncryptionProfile2020_05_31"
8177
8178// UpdateFieldLevelEncryptionProfileRequest generates a "aws/request.Request" representing the
8179// client's request for the UpdateFieldLevelEncryptionProfile operation. The "output" return
8180// value will be populated with the request's response once the request completes
8181// successfully.
8182//
8183// Use "Send" method on the returned Request to send the API call to the service.
8184// the "output" return value is not valid until after Send returns without error.
8185//
8186// See UpdateFieldLevelEncryptionProfile for more information on using the UpdateFieldLevelEncryptionProfile
8187// API call, and error handling.
8188//
8189// This method is useful when you want to inject custom logic or configuration
8190// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8191//
8192//
8193//    // Example sending a request using the UpdateFieldLevelEncryptionProfileRequest method.
8194//    req, resp := client.UpdateFieldLevelEncryptionProfileRequest(params)
8195//
8196//    err := req.Send()
8197//    if err == nil { // resp is now filled
8198//        fmt.Println(resp)
8199//    }
8200//
8201// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateFieldLevelEncryptionProfile
8202func (c *CloudFront) UpdateFieldLevelEncryptionProfileRequest(input *UpdateFieldLevelEncryptionProfileInput) (req *request.Request, output *UpdateFieldLevelEncryptionProfileOutput) {
8203	op := &request.Operation{
8204		Name:       opUpdateFieldLevelEncryptionProfile,
8205		HTTPMethod: "PUT",
8206		HTTPPath:   "/2020-05-31/field-level-encryption-profile/{Id}/config",
8207	}
8208
8209	if input == nil {
8210		input = &UpdateFieldLevelEncryptionProfileInput{}
8211	}
8212
8213	output = &UpdateFieldLevelEncryptionProfileOutput{}
8214	req = c.newRequest(op, input, output)
8215	return
8216}
8217
8218// UpdateFieldLevelEncryptionProfile API operation for Amazon CloudFront.
8219//
8220// Update a field-level encryption profile.
8221//
8222// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8223// with awserr.Error's Code and Message methods to get detailed information about
8224// the error.
8225//
8226// See the AWS API reference guide for Amazon CloudFront's
8227// API operation UpdateFieldLevelEncryptionProfile for usage and error information.
8228//
8229// Returned Error Codes:
8230//   * ErrCodeAccessDenied "AccessDenied"
8231//   Access denied.
8232//
8233//   * ErrCodeFieldLevelEncryptionProfileAlreadyExists "FieldLevelEncryptionProfileAlreadyExists"
8234//   The specified profile for field-level encryption already exists.
8235//
8236//   * ErrCodeIllegalUpdate "IllegalUpdate"
8237//   The update contains modifications that are not allowed.
8238//
8239//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
8240//   The value of Quantity and the size of Items don't match.
8241//
8242//   * ErrCodeInvalidArgument "InvalidArgument"
8243//   An argument is invalid.
8244//
8245//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
8246//   The If-Match version is missing or not valid.
8247//
8248//   * ErrCodeNoSuchPublicKey "NoSuchPublicKey"
8249//   The specified public key doesn't exist.
8250//
8251//   * ErrCodeNoSuchFieldLevelEncryptionProfile "NoSuchFieldLevelEncryptionProfile"
8252//   The specified profile for field-level encryption doesn't exist.
8253//
8254//   * ErrCodePreconditionFailed "PreconditionFailed"
8255//   The precondition in one or more of the request fields evaluated to false.
8256//
8257//   * ErrCodeFieldLevelEncryptionProfileSizeExceeded "FieldLevelEncryptionProfileSizeExceeded"
8258//   The maximum size of a profile for field-level encryption was exceeded.
8259//
8260//   * ErrCodeTooManyFieldLevelEncryptionEncryptionEntities "TooManyFieldLevelEncryptionEncryptionEntities"
8261//   The maximum number of encryption entities for field-level encryption have
8262//   been created.
8263//
8264//   * ErrCodeTooManyFieldLevelEncryptionFieldPatterns "TooManyFieldLevelEncryptionFieldPatterns"
8265//   The maximum number of field patterns for field-level encryption have been
8266//   created.
8267//
8268// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateFieldLevelEncryptionProfile
8269func (c *CloudFront) UpdateFieldLevelEncryptionProfile(input *UpdateFieldLevelEncryptionProfileInput) (*UpdateFieldLevelEncryptionProfileOutput, error) {
8270	req, out := c.UpdateFieldLevelEncryptionProfileRequest(input)
8271	return out, req.Send()
8272}
8273
8274// UpdateFieldLevelEncryptionProfileWithContext is the same as UpdateFieldLevelEncryptionProfile with the addition of
8275// the ability to pass a context and additional request options.
8276//
8277// See UpdateFieldLevelEncryptionProfile for details on how to use this API operation.
8278//
8279// The context must be non-nil and will be used for request cancellation. If
8280// the context is nil a panic will occur. In the future the SDK may create
8281// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8282// for more information on using Contexts.
8283func (c *CloudFront) UpdateFieldLevelEncryptionProfileWithContext(ctx aws.Context, input *UpdateFieldLevelEncryptionProfileInput, opts ...request.Option) (*UpdateFieldLevelEncryptionProfileOutput, error) {
8284	req, out := c.UpdateFieldLevelEncryptionProfileRequest(input)
8285	req.SetContext(ctx)
8286	req.ApplyOptions(opts...)
8287	return out, req.Send()
8288}
8289
8290const opUpdateFunction = "UpdateFunction2020_05_31"
8291
8292// UpdateFunctionRequest generates a "aws/request.Request" representing the
8293// client's request for the UpdateFunction operation. The "output" return
8294// value will be populated with the request's response once the request completes
8295// successfully.
8296//
8297// Use "Send" method on the returned Request to send the API call to the service.
8298// the "output" return value is not valid until after Send returns without error.
8299//
8300// See UpdateFunction for more information on using the UpdateFunction
8301// API call, and error handling.
8302//
8303// This method is useful when you want to inject custom logic or configuration
8304// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8305//
8306//
8307//    // Example sending a request using the UpdateFunctionRequest method.
8308//    req, resp := client.UpdateFunctionRequest(params)
8309//
8310//    err := req.Send()
8311//    if err == nil { // resp is now filled
8312//        fmt.Println(resp)
8313//    }
8314//
8315// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateFunction
8316func (c *CloudFront) UpdateFunctionRequest(input *UpdateFunctionInput) (req *request.Request, output *UpdateFunctionOutput) {
8317	op := &request.Operation{
8318		Name:       opUpdateFunction,
8319		HTTPMethod: "PUT",
8320		HTTPPath:   "/2020-05-31/function/{Name}",
8321	}
8322
8323	if input == nil {
8324		input = &UpdateFunctionInput{}
8325	}
8326
8327	output = &UpdateFunctionOutput{}
8328	req = c.newRequest(op, input, output)
8329	return
8330}
8331
8332// UpdateFunction API operation for Amazon CloudFront.
8333//
8334// Updates a CloudFront function.
8335//
8336// You can update a function’s code or the comment that describes the function.
8337// You cannot update a function’s name.
8338//
8339// To update a function, you provide the function’s name and version (ETag
8340// value) along with the updated function code. To get the name and version,
8341// you can use ListFunctions and DescribeFunction.
8342//
8343// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8344// with awserr.Error's Code and Message methods to get detailed information about
8345// the error.
8346//
8347// See the AWS API reference guide for Amazon CloudFront's
8348// API operation UpdateFunction for usage and error information.
8349//
8350// Returned Error Codes:
8351//   * ErrCodeInvalidArgument "InvalidArgument"
8352//   An argument is invalid.
8353//
8354//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
8355//   The If-Match version is missing or not valid.
8356//
8357//   * ErrCodeNoSuchFunctionExists "NoSuchFunctionExists"
8358//   The function does not exist.
8359//
8360//   * ErrCodePreconditionFailed "PreconditionFailed"
8361//   The precondition in one or more of the request fields evaluated to false.
8362//
8363//   * ErrCodeFunctionSizeLimitExceeded "FunctionSizeLimitExceeded"
8364//   The function is too large. For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
8365//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
8366//
8367//   * ErrCodeUnsupportedOperation "UnsupportedOperation"
8368//   This operation is not supported in this region.
8369//
8370// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateFunction
8371func (c *CloudFront) UpdateFunction(input *UpdateFunctionInput) (*UpdateFunctionOutput, error) {
8372	req, out := c.UpdateFunctionRequest(input)
8373	return out, req.Send()
8374}
8375
8376// UpdateFunctionWithContext is the same as UpdateFunction with the addition of
8377// the ability to pass a context and additional request options.
8378//
8379// See UpdateFunction for details on how to use this API operation.
8380//
8381// The context must be non-nil and will be used for request cancellation. If
8382// the context is nil a panic will occur. In the future the SDK may create
8383// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8384// for more information on using Contexts.
8385func (c *CloudFront) UpdateFunctionWithContext(ctx aws.Context, input *UpdateFunctionInput, opts ...request.Option) (*UpdateFunctionOutput, error) {
8386	req, out := c.UpdateFunctionRequest(input)
8387	req.SetContext(ctx)
8388	req.ApplyOptions(opts...)
8389	return out, req.Send()
8390}
8391
8392const opUpdateKeyGroup = "UpdateKeyGroup2020_05_31"
8393
8394// UpdateKeyGroupRequest generates a "aws/request.Request" representing the
8395// client's request for the UpdateKeyGroup operation. The "output" return
8396// value will be populated with the request's response once the request completes
8397// successfully.
8398//
8399// Use "Send" method on the returned Request to send the API call to the service.
8400// the "output" return value is not valid until after Send returns without error.
8401//
8402// See UpdateKeyGroup for more information on using the UpdateKeyGroup
8403// API call, and error handling.
8404//
8405// This method is useful when you want to inject custom logic or configuration
8406// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8407//
8408//
8409//    // Example sending a request using the UpdateKeyGroupRequest method.
8410//    req, resp := client.UpdateKeyGroupRequest(params)
8411//
8412//    err := req.Send()
8413//    if err == nil { // resp is now filled
8414//        fmt.Println(resp)
8415//    }
8416//
8417// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateKeyGroup
8418func (c *CloudFront) UpdateKeyGroupRequest(input *UpdateKeyGroupInput) (req *request.Request, output *UpdateKeyGroupOutput) {
8419	op := &request.Operation{
8420		Name:       opUpdateKeyGroup,
8421		HTTPMethod: "PUT",
8422		HTTPPath:   "/2020-05-31/key-group/{Id}",
8423	}
8424
8425	if input == nil {
8426		input = &UpdateKeyGroupInput{}
8427	}
8428
8429	output = &UpdateKeyGroupOutput{}
8430	req = c.newRequest(op, input, output)
8431	return
8432}
8433
8434// UpdateKeyGroup API operation for Amazon CloudFront.
8435//
8436// Updates a key group.
8437//
8438// When you update a key group, all the fields are updated with the values provided
8439// in the request. You cannot update some fields independent of others. To update
8440// a key group:
8441//
8442// Get the current key group with GetKeyGroup or GetKeyGroupConfig.
8443//
8444// Locally modify the fields in the key group that you want to update. For example,
8445// add or remove public key IDs.
8446//
8447// Call UpdateKeyGroup with the entire key group object, including the fields
8448// that you modified and those that you didn’t.
8449//
8450// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8451// with awserr.Error's Code and Message methods to get detailed information about
8452// the error.
8453//
8454// See the AWS API reference guide for Amazon CloudFront's
8455// API operation UpdateKeyGroup for usage and error information.
8456//
8457// Returned Error Codes:
8458//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
8459//   The If-Match version is missing or not valid.
8460//
8461//   * ErrCodeNoSuchResource "NoSuchResource"
8462//   A resource that was specified is not valid.
8463//
8464//   * ErrCodePreconditionFailed "PreconditionFailed"
8465//   The precondition in one or more of the request fields evaluated to false.
8466//
8467//   * ErrCodeKeyGroupAlreadyExists "KeyGroupAlreadyExists"
8468//   A key group with this name already exists. You must provide a unique name.
8469//   To modify an existing key group, use UpdateKeyGroup.
8470//
8471//   * ErrCodeInvalidArgument "InvalidArgument"
8472//   An argument is invalid.
8473//
8474//   * ErrCodeTooManyPublicKeysInKeyGroup "TooManyPublicKeysInKeyGroup"
8475//   The number of public keys in this key group is more than the maximum allowed.
8476//   For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
8477//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
8478//
8479// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateKeyGroup
8480func (c *CloudFront) UpdateKeyGroup(input *UpdateKeyGroupInput) (*UpdateKeyGroupOutput, error) {
8481	req, out := c.UpdateKeyGroupRequest(input)
8482	return out, req.Send()
8483}
8484
8485// UpdateKeyGroupWithContext is the same as UpdateKeyGroup with the addition of
8486// the ability to pass a context and additional request options.
8487//
8488// See UpdateKeyGroup for details on how to use this API operation.
8489//
8490// The context must be non-nil and will be used for request cancellation. If
8491// the context is nil a panic will occur. In the future the SDK may create
8492// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8493// for more information on using Contexts.
8494func (c *CloudFront) UpdateKeyGroupWithContext(ctx aws.Context, input *UpdateKeyGroupInput, opts ...request.Option) (*UpdateKeyGroupOutput, error) {
8495	req, out := c.UpdateKeyGroupRequest(input)
8496	req.SetContext(ctx)
8497	req.ApplyOptions(opts...)
8498	return out, req.Send()
8499}
8500
8501const opUpdateOriginRequestPolicy = "UpdateOriginRequestPolicy2020_05_31"
8502
8503// UpdateOriginRequestPolicyRequest generates a "aws/request.Request" representing the
8504// client's request for the UpdateOriginRequestPolicy operation. The "output" return
8505// value will be populated with the request's response once the request completes
8506// successfully.
8507//
8508// Use "Send" method on the returned Request to send the API call to the service.
8509// the "output" return value is not valid until after Send returns without error.
8510//
8511// See UpdateOriginRequestPolicy for more information on using the UpdateOriginRequestPolicy
8512// API call, and error handling.
8513//
8514// This method is useful when you want to inject custom logic or configuration
8515// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8516//
8517//
8518//    // Example sending a request using the UpdateOriginRequestPolicyRequest method.
8519//    req, resp := client.UpdateOriginRequestPolicyRequest(params)
8520//
8521//    err := req.Send()
8522//    if err == nil { // resp is now filled
8523//        fmt.Println(resp)
8524//    }
8525//
8526// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateOriginRequestPolicy
8527func (c *CloudFront) UpdateOriginRequestPolicyRequest(input *UpdateOriginRequestPolicyInput) (req *request.Request, output *UpdateOriginRequestPolicyOutput) {
8528	op := &request.Operation{
8529		Name:       opUpdateOriginRequestPolicy,
8530		HTTPMethod: "PUT",
8531		HTTPPath:   "/2020-05-31/origin-request-policy/{Id}",
8532	}
8533
8534	if input == nil {
8535		input = &UpdateOriginRequestPolicyInput{}
8536	}
8537
8538	output = &UpdateOriginRequestPolicyOutput{}
8539	req = c.newRequest(op, input, output)
8540	return
8541}
8542
8543// UpdateOriginRequestPolicy API operation for Amazon CloudFront.
8544//
8545// Updates an origin request policy configuration.
8546//
8547// When you update an origin request policy configuration, all the fields are
8548// updated with the values provided in the request. You cannot update some fields
8549// independent of others. To update an origin request policy configuration:
8550//
8551// Use GetOriginRequestPolicyConfig to get the current configuration.
8552//
8553// Locally modify the fields in the origin request policy configuration that
8554// you want to update.
8555//
8556// Call UpdateOriginRequestPolicy by providing the entire origin request policy
8557// configuration, including the fields that you modified and those that you
8558// didn’t.
8559//
8560// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8561// with awserr.Error's Code and Message methods to get detailed information about
8562// the error.
8563//
8564// See the AWS API reference guide for Amazon CloudFront's
8565// API operation UpdateOriginRequestPolicy for usage and error information.
8566//
8567// Returned Error Codes:
8568//   * ErrCodeAccessDenied "AccessDenied"
8569//   Access denied.
8570//
8571//   * ErrCodeIllegalUpdate "IllegalUpdate"
8572//   The update contains modifications that are not allowed.
8573//
8574//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
8575//   The value of Quantity and the size of Items don't match.
8576//
8577//   * ErrCodeInvalidArgument "InvalidArgument"
8578//   An argument is invalid.
8579//
8580//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
8581//   The If-Match version is missing or not valid.
8582//
8583//   * ErrCodeNoSuchOriginRequestPolicy "NoSuchOriginRequestPolicy"
8584//   The origin request policy does not exist.
8585//
8586//   * ErrCodePreconditionFailed "PreconditionFailed"
8587//   The precondition in one or more of the request fields evaluated to false.
8588//
8589//   * ErrCodeOriginRequestPolicyAlreadyExists "OriginRequestPolicyAlreadyExists"
8590//   An origin request policy with this name already exists. You must provide
8591//   a unique name. To modify an existing origin request policy, use UpdateOriginRequestPolicy.
8592//
8593//   * ErrCodeTooManyHeadersInOriginRequestPolicy "TooManyHeadersInOriginRequestPolicy"
8594//   The number of headers in the origin request policy exceeds the maximum. For
8595//   more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
8596//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
8597//
8598//   * ErrCodeTooManyCookiesInOriginRequestPolicy "TooManyCookiesInOriginRequestPolicy"
8599//   The number of cookies in the origin request policy exceeds the maximum. For
8600//   more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
8601//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
8602//
8603//   * ErrCodeTooManyQueryStringsInOriginRequestPolicy "TooManyQueryStringsInOriginRequestPolicy"
8604//   The number of query strings in the origin request policy exceeds the maximum.
8605//   For more information, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
8606//   (formerly known as limits) in the Amazon CloudFront Developer Guide.
8607//
8608// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateOriginRequestPolicy
8609func (c *CloudFront) UpdateOriginRequestPolicy(input *UpdateOriginRequestPolicyInput) (*UpdateOriginRequestPolicyOutput, error) {
8610	req, out := c.UpdateOriginRequestPolicyRequest(input)
8611	return out, req.Send()
8612}
8613
8614// UpdateOriginRequestPolicyWithContext is the same as UpdateOriginRequestPolicy with the addition of
8615// the ability to pass a context and additional request options.
8616//
8617// See UpdateOriginRequestPolicy for details on how to use this API operation.
8618//
8619// The context must be non-nil and will be used for request cancellation. If
8620// the context is nil a panic will occur. In the future the SDK may create
8621// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8622// for more information on using Contexts.
8623func (c *CloudFront) UpdateOriginRequestPolicyWithContext(ctx aws.Context, input *UpdateOriginRequestPolicyInput, opts ...request.Option) (*UpdateOriginRequestPolicyOutput, error) {
8624	req, out := c.UpdateOriginRequestPolicyRequest(input)
8625	req.SetContext(ctx)
8626	req.ApplyOptions(opts...)
8627	return out, req.Send()
8628}
8629
8630const opUpdatePublicKey = "UpdatePublicKey2020_05_31"
8631
8632// UpdatePublicKeyRequest generates a "aws/request.Request" representing the
8633// client's request for the UpdatePublicKey operation. The "output" return
8634// value will be populated with the request's response once the request completes
8635// successfully.
8636//
8637// Use "Send" method on the returned Request to send the API call to the service.
8638// the "output" return value is not valid until after Send returns without error.
8639//
8640// See UpdatePublicKey for more information on using the UpdatePublicKey
8641// API call, and error handling.
8642//
8643// This method is useful when you want to inject custom logic or configuration
8644// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8645//
8646//
8647//    // Example sending a request using the UpdatePublicKeyRequest method.
8648//    req, resp := client.UpdatePublicKeyRequest(params)
8649//
8650//    err := req.Send()
8651//    if err == nil { // resp is now filled
8652//        fmt.Println(resp)
8653//    }
8654//
8655// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdatePublicKey
8656func (c *CloudFront) UpdatePublicKeyRequest(input *UpdatePublicKeyInput) (req *request.Request, output *UpdatePublicKeyOutput) {
8657	op := &request.Operation{
8658		Name:       opUpdatePublicKey,
8659		HTTPMethod: "PUT",
8660		HTTPPath:   "/2020-05-31/public-key/{Id}/config",
8661	}
8662
8663	if input == nil {
8664		input = &UpdatePublicKeyInput{}
8665	}
8666
8667	output = &UpdatePublicKeyOutput{}
8668	req = c.newRequest(op, input, output)
8669	return
8670}
8671
8672// UpdatePublicKey API operation for Amazon CloudFront.
8673//
8674// Update public key information. Note that the only value you can change is
8675// the comment.
8676//
8677// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8678// with awserr.Error's Code and Message methods to get detailed information about
8679// the error.
8680//
8681// See the AWS API reference guide for Amazon CloudFront's
8682// API operation UpdatePublicKey for usage and error information.
8683//
8684// Returned Error Codes:
8685//   * ErrCodeAccessDenied "AccessDenied"
8686//   Access denied.
8687//
8688//   * ErrCodeCannotChangeImmutablePublicKeyFields "CannotChangeImmutablePublicKeyFields"
8689//   You can't change the value of a public key.
8690//
8691//   * ErrCodeInvalidArgument "InvalidArgument"
8692//   An argument is invalid.
8693//
8694//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
8695//   The If-Match version is missing or not valid.
8696//
8697//   * ErrCodeIllegalUpdate "IllegalUpdate"
8698//   The update contains modifications that are not allowed.
8699//
8700//   * ErrCodeNoSuchPublicKey "NoSuchPublicKey"
8701//   The specified public key doesn't exist.
8702//
8703//   * ErrCodePreconditionFailed "PreconditionFailed"
8704//   The precondition in one or more of the request fields evaluated to false.
8705//
8706// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdatePublicKey
8707func (c *CloudFront) UpdatePublicKey(input *UpdatePublicKeyInput) (*UpdatePublicKeyOutput, error) {
8708	req, out := c.UpdatePublicKeyRequest(input)
8709	return out, req.Send()
8710}
8711
8712// UpdatePublicKeyWithContext is the same as UpdatePublicKey with the addition of
8713// the ability to pass a context and additional request options.
8714//
8715// See UpdatePublicKey for details on how to use this API operation.
8716//
8717// The context must be non-nil and will be used for request cancellation. If
8718// the context is nil a panic will occur. In the future the SDK may create
8719// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8720// for more information on using Contexts.
8721func (c *CloudFront) UpdatePublicKeyWithContext(ctx aws.Context, input *UpdatePublicKeyInput, opts ...request.Option) (*UpdatePublicKeyOutput, error) {
8722	req, out := c.UpdatePublicKeyRequest(input)
8723	req.SetContext(ctx)
8724	req.ApplyOptions(opts...)
8725	return out, req.Send()
8726}
8727
8728const opUpdateRealtimeLogConfig = "UpdateRealtimeLogConfig2020_05_31"
8729
8730// UpdateRealtimeLogConfigRequest generates a "aws/request.Request" representing the
8731// client's request for the UpdateRealtimeLogConfig operation. The "output" return
8732// value will be populated with the request's response once the request completes
8733// successfully.
8734//
8735// Use "Send" method on the returned Request to send the API call to the service.
8736// the "output" return value is not valid until after Send returns without error.
8737//
8738// See UpdateRealtimeLogConfig for more information on using the UpdateRealtimeLogConfig
8739// API call, and error handling.
8740//
8741// This method is useful when you want to inject custom logic or configuration
8742// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8743//
8744//
8745//    // Example sending a request using the UpdateRealtimeLogConfigRequest method.
8746//    req, resp := client.UpdateRealtimeLogConfigRequest(params)
8747//
8748//    err := req.Send()
8749//    if err == nil { // resp is now filled
8750//        fmt.Println(resp)
8751//    }
8752//
8753// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateRealtimeLogConfig
8754func (c *CloudFront) UpdateRealtimeLogConfigRequest(input *UpdateRealtimeLogConfigInput) (req *request.Request, output *UpdateRealtimeLogConfigOutput) {
8755	op := &request.Operation{
8756		Name:       opUpdateRealtimeLogConfig,
8757		HTTPMethod: "PUT",
8758		HTTPPath:   "/2020-05-31/realtime-log-config/",
8759	}
8760
8761	if input == nil {
8762		input = &UpdateRealtimeLogConfigInput{}
8763	}
8764
8765	output = &UpdateRealtimeLogConfigOutput{}
8766	req = c.newRequest(op, input, output)
8767	return
8768}
8769
8770// UpdateRealtimeLogConfig API operation for Amazon CloudFront.
8771//
8772// Updates a real-time log configuration.
8773//
8774// When you update a real-time log configuration, all the parameters are updated
8775// with the values provided in the request. You cannot update some parameters
8776// independent of others. To update a real-time log configuration:
8777//
8778// Call GetRealtimeLogConfig to get the current real-time log configuration.
8779//
8780// Locally modify the parameters in the real-time log configuration that you
8781// want to update.
8782//
8783// Call this API (UpdateRealtimeLogConfig) by providing the entire real-time
8784// log configuration, including the parameters that you modified and those that
8785// you didn’t.
8786//
8787// You cannot update a real-time log configuration’s Name or ARN.
8788//
8789// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8790// with awserr.Error's Code and Message methods to get detailed information about
8791// the error.
8792//
8793// See the AWS API reference guide for Amazon CloudFront's
8794// API operation UpdateRealtimeLogConfig for usage and error information.
8795//
8796// Returned Error Codes:
8797//   * ErrCodeNoSuchRealtimeLogConfig "NoSuchRealtimeLogConfig"
8798//   The real-time log configuration does not exist.
8799//
8800//   * ErrCodeInvalidArgument "InvalidArgument"
8801//   An argument is invalid.
8802//
8803//   * ErrCodeAccessDenied "AccessDenied"
8804//   Access denied.
8805//
8806// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateRealtimeLogConfig
8807func (c *CloudFront) UpdateRealtimeLogConfig(input *UpdateRealtimeLogConfigInput) (*UpdateRealtimeLogConfigOutput, error) {
8808	req, out := c.UpdateRealtimeLogConfigRequest(input)
8809	return out, req.Send()
8810}
8811
8812// UpdateRealtimeLogConfigWithContext is the same as UpdateRealtimeLogConfig with the addition of
8813// the ability to pass a context and additional request options.
8814//
8815// See UpdateRealtimeLogConfig for details on how to use this API operation.
8816//
8817// The context must be non-nil and will be used for request cancellation. If
8818// the context is nil a panic will occur. In the future the SDK may create
8819// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8820// for more information on using Contexts.
8821func (c *CloudFront) UpdateRealtimeLogConfigWithContext(ctx aws.Context, input *UpdateRealtimeLogConfigInput, opts ...request.Option) (*UpdateRealtimeLogConfigOutput, error) {
8822	req, out := c.UpdateRealtimeLogConfigRequest(input)
8823	req.SetContext(ctx)
8824	req.ApplyOptions(opts...)
8825	return out, req.Send()
8826}
8827
8828const opUpdateStreamingDistribution = "UpdateStreamingDistribution2020_05_31"
8829
8830// UpdateStreamingDistributionRequest generates a "aws/request.Request" representing the
8831// client's request for the UpdateStreamingDistribution operation. The "output" return
8832// value will be populated with the request's response once the request completes
8833// successfully.
8834//
8835// Use "Send" method on the returned Request to send the API call to the service.
8836// the "output" return value is not valid until after Send returns without error.
8837//
8838// See UpdateStreamingDistribution for more information on using the UpdateStreamingDistribution
8839// API call, and error handling.
8840//
8841// This method is useful when you want to inject custom logic or configuration
8842// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8843//
8844//
8845//    // Example sending a request using the UpdateStreamingDistributionRequest method.
8846//    req, resp := client.UpdateStreamingDistributionRequest(params)
8847//
8848//    err := req.Send()
8849//    if err == nil { // resp is now filled
8850//        fmt.Println(resp)
8851//    }
8852//
8853// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateStreamingDistribution
8854func (c *CloudFront) UpdateStreamingDistributionRequest(input *UpdateStreamingDistributionInput) (req *request.Request, output *UpdateStreamingDistributionOutput) {
8855	op := &request.Operation{
8856		Name:       opUpdateStreamingDistribution,
8857		HTTPMethod: "PUT",
8858		HTTPPath:   "/2020-05-31/streaming-distribution/{Id}/config",
8859	}
8860
8861	if input == nil {
8862		input = &UpdateStreamingDistributionInput{}
8863	}
8864
8865	output = &UpdateStreamingDistributionOutput{}
8866	req = c.newRequest(op, input, output)
8867	return
8868}
8869
8870// UpdateStreamingDistribution API operation for Amazon CloudFront.
8871//
8872// Update a streaming distribution.
8873//
8874// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8875// with awserr.Error's Code and Message methods to get detailed information about
8876// the error.
8877//
8878// See the AWS API reference guide for Amazon CloudFront's
8879// API operation UpdateStreamingDistribution for usage and error information.
8880//
8881// Returned Error Codes:
8882//   * ErrCodeAccessDenied "AccessDenied"
8883//   Access denied.
8884//
8885//   * ErrCodeCNAMEAlreadyExists "CNAMEAlreadyExists"
8886//   The CNAME specified is already defined for CloudFront.
8887//
8888//   * ErrCodeIllegalUpdate "IllegalUpdate"
8889//   The update contains modifications that are not allowed.
8890//
8891//   * ErrCodeInvalidIfMatchVersion "InvalidIfMatchVersion"
8892//   The If-Match version is missing or not valid.
8893//
8894//   * ErrCodeMissingBody "MissingBody"
8895//   This operation requires a body. Ensure that the body is present and the Content-Type
8896//   header is set.
8897//
8898//   * ErrCodeNoSuchStreamingDistribution "NoSuchStreamingDistribution"
8899//   The specified streaming distribution does not exist.
8900//
8901//   * ErrCodePreconditionFailed "PreconditionFailed"
8902//   The precondition in one or more of the request fields evaluated to false.
8903//
8904//   * ErrCodeTooManyStreamingDistributionCNAMEs "TooManyStreamingDistributionCNAMEs"
8905//   Your request contains more CNAMEs than are allowed per distribution.
8906//
8907//   * ErrCodeInvalidArgument "InvalidArgument"
8908//   An argument is invalid.
8909//
8910//   * ErrCodeInvalidOriginAccessIdentity "InvalidOriginAccessIdentity"
8911//   The origin access identity is not valid or doesn't exist.
8912//
8913//   * ErrCodeTooManyTrustedSigners "TooManyTrustedSigners"
8914//   Your request contains more trusted signers than are allowed per distribution.
8915//
8916//   * ErrCodeTrustedSignerDoesNotExist "TrustedSignerDoesNotExist"
8917//   One or more of your trusted signers don't exist.
8918//
8919//   * ErrCodeInconsistentQuantities "InconsistentQuantities"
8920//   The value of Quantity and the size of Items don't match.
8921//
8922// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/UpdateStreamingDistribution
8923func (c *CloudFront) UpdateStreamingDistribution(input *UpdateStreamingDistributionInput) (*UpdateStreamingDistributionOutput, error) {
8924	req, out := c.UpdateStreamingDistributionRequest(input)
8925	return out, req.Send()
8926}
8927
8928// UpdateStreamingDistributionWithContext is the same as UpdateStreamingDistribution with the addition of
8929// the ability to pass a context and additional request options.
8930//
8931// See UpdateStreamingDistribution for details on how to use this API operation.
8932//
8933// The context must be non-nil and will be used for request cancellation. If
8934// the context is nil a panic will occur. In the future the SDK may create
8935// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8936// for more information on using Contexts.
8937func (c *CloudFront) UpdateStreamingDistributionWithContext(ctx aws.Context, input *UpdateStreamingDistributionInput, opts ...request.Option) (*UpdateStreamingDistributionOutput, error) {
8938	req, out := c.UpdateStreamingDistributionRequest(input)
8939	req.SetContext(ctx)
8940	req.ApplyOptions(opts...)
8941	return out, req.Send()
8942}
8943
8944// A list of key groups, and the public keys in each key group, that CloudFront
8945// can use to verify the signatures of signed URLs and signed cookies.
8946type ActiveTrustedKeyGroups struct {
8947	_ struct{} `type:"structure"`
8948
8949	// This field is true if any of the key groups have public keys that CloudFront
8950	// can use to verify the signatures of signed URLs and signed cookies. If not,
8951	// this field is false.
8952	//
8953	// Enabled is a required field
8954	Enabled *bool `type:"boolean" required:"true"`
8955
8956	// A list of key groups, including the identifiers of the public keys in each
8957	// key group that CloudFront can use to verify the signatures of signed URLs
8958	// and signed cookies.
8959	Items []*KGKeyPairIds `locationNameList:"KeyGroup" type:"list"`
8960
8961	// The number of key groups in the list.
8962	//
8963	// Quantity is a required field
8964	Quantity *int64 `type:"integer" required:"true"`
8965}
8966
8967// String returns the string representation
8968func (s ActiveTrustedKeyGroups) String() string {
8969	return awsutil.Prettify(s)
8970}
8971
8972// GoString returns the string representation
8973func (s ActiveTrustedKeyGroups) GoString() string {
8974	return s.String()
8975}
8976
8977// SetEnabled sets the Enabled field's value.
8978func (s *ActiveTrustedKeyGroups) SetEnabled(v bool) *ActiveTrustedKeyGroups {
8979	s.Enabled = &v
8980	return s
8981}
8982
8983// SetItems sets the Items field's value.
8984func (s *ActiveTrustedKeyGroups) SetItems(v []*KGKeyPairIds) *ActiveTrustedKeyGroups {
8985	s.Items = v
8986	return s
8987}
8988
8989// SetQuantity sets the Quantity field's value.
8990func (s *ActiveTrustedKeyGroups) SetQuantity(v int64) *ActiveTrustedKeyGroups {
8991	s.Quantity = &v
8992	return s
8993}
8994
8995// A list of accounts and the active CloudFront key pairs in each account that
8996// CloudFront can use to verify the signatures of signed URLs and signed cookies.
8997type ActiveTrustedSigners struct {
8998	_ struct{} `type:"structure"`
8999
9000	// This field is true if any of the accounts in the list have active CloudFront
9001	// key pairs that CloudFront can use to verify the signatures of signed URLs
9002	// and signed cookies. If not, this field is false.
9003	//
9004	// Enabled is a required field
9005	Enabled *bool `type:"boolean" required:"true"`
9006
9007	// A list of accounts and the identifiers of active CloudFront key pairs in
9008	// each account that CloudFront can use to verify the signatures of signed URLs
9009	// and signed cookies.
9010	Items []*Signer `locationNameList:"Signer" type:"list"`
9011
9012	// The number of accounts in the list.
9013	//
9014	// Quantity is a required field
9015	Quantity *int64 `type:"integer" required:"true"`
9016}
9017
9018// String returns the string representation
9019func (s ActiveTrustedSigners) String() string {
9020	return awsutil.Prettify(s)
9021}
9022
9023// GoString returns the string representation
9024func (s ActiveTrustedSigners) GoString() string {
9025	return s.String()
9026}
9027
9028// SetEnabled sets the Enabled field's value.
9029func (s *ActiveTrustedSigners) SetEnabled(v bool) *ActiveTrustedSigners {
9030	s.Enabled = &v
9031	return s
9032}
9033
9034// SetItems sets the Items field's value.
9035func (s *ActiveTrustedSigners) SetItems(v []*Signer) *ActiveTrustedSigners {
9036	s.Items = v
9037	return s
9038}
9039
9040// SetQuantity sets the Quantity field's value.
9041func (s *ActiveTrustedSigners) SetQuantity(v int64) *ActiveTrustedSigners {
9042	s.Quantity = &v
9043	return s
9044}
9045
9046// Amazon Web Services services in China customers must file for an Internet
9047// Content Provider (ICP) recordal if they want to serve content publicly on
9048// an alternate domain name, also known as a CNAME, that they've added to CloudFront.
9049// AliasICPRecordal provides the ICP recordal status for CNAMEs associated with
9050// distributions. The status is returned in the CloudFront response; you can't
9051// configure it yourself.
9052//
9053// For more information about ICP recordals, see Signup, Accounts, and Credentials
9054// (https://docs.amazonaws.cn/en_us/aws/latest/userguide/accounts-and-credentials.html)
9055// in Getting Started with Amazon Web Services services in China.
9056type AliasICPRecordal struct {
9057	_ struct{} `type:"structure"`
9058
9059	// A domain name associated with a distribution.
9060	CNAME *string `type:"string"`
9061
9062	// The Internet Content Provider (ICP) recordal status for a CNAME. The ICPRecordalStatus
9063	// is set to APPROVED for all CNAMEs (aliases) in regions outside of China.
9064	//
9065	// The status values returned are the following:
9066	//
9067	//    * APPROVED indicates that the associated CNAME has a valid ICP recordal
9068	//    number. Multiple CNAMEs can be associated with a distribution, and CNAMEs
9069	//    can correspond to different ICP recordals. To be marked as APPROVED, that
9070	//    is, valid to use with China region, a CNAME must have one ICP recordal
9071	//    number associated with it.
9072	//
9073	//    * SUSPENDED indicates that the associated CNAME does not have a valid
9074	//    ICP recordal number.
9075	//
9076	//    * PENDING indicates that CloudFront can't determine the ICP recordal status
9077	//    of the CNAME associated with the distribution because there was an error
9078	//    in trying to determine the status. You can try again to see if the error
9079	//    is resolved in which case CloudFront returns an APPROVED or SUSPENDED
9080	//    status.
9081	ICPRecordalStatus *string `type:"string" enum:"ICPRecordalStatus"`
9082}
9083
9084// String returns the string representation
9085func (s AliasICPRecordal) String() string {
9086	return awsutil.Prettify(s)
9087}
9088
9089// GoString returns the string representation
9090func (s AliasICPRecordal) GoString() string {
9091	return s.String()
9092}
9093
9094// SetCNAME sets the CNAME field's value.
9095func (s *AliasICPRecordal) SetCNAME(v string) *AliasICPRecordal {
9096	s.CNAME = &v
9097	return s
9098}
9099
9100// SetICPRecordalStatus sets the ICPRecordalStatus field's value.
9101func (s *AliasICPRecordal) SetICPRecordalStatus(v string) *AliasICPRecordal {
9102	s.ICPRecordalStatus = &v
9103	return s
9104}
9105
9106// A complex type that contains information about CNAMEs (alternate domain names),
9107// if any, for this distribution.
9108type Aliases struct {
9109	_ struct{} `type:"structure"`
9110
9111	// A complex type that contains the CNAME aliases, if any, that you want to
9112	// associate with this distribution.
9113	Items []*string `locationNameList:"CNAME" type:"list"`
9114
9115	// The number of CNAME aliases, if any, that you want to associate with this
9116	// distribution.
9117	//
9118	// Quantity is a required field
9119	Quantity *int64 `type:"integer" required:"true"`
9120}
9121
9122// String returns the string representation
9123func (s Aliases) String() string {
9124	return awsutil.Prettify(s)
9125}
9126
9127// GoString returns the string representation
9128func (s Aliases) GoString() string {
9129	return s.String()
9130}
9131
9132// Validate inspects the fields of the type to determine if they are valid.
9133func (s *Aliases) Validate() error {
9134	invalidParams := request.ErrInvalidParams{Context: "Aliases"}
9135	if s.Quantity == nil {
9136		invalidParams.Add(request.NewErrParamRequired("Quantity"))
9137	}
9138
9139	if invalidParams.Len() > 0 {
9140		return invalidParams
9141	}
9142	return nil
9143}
9144
9145// SetItems sets the Items field's value.
9146func (s *Aliases) SetItems(v []*string) *Aliases {
9147	s.Items = v
9148	return s
9149}
9150
9151// SetQuantity sets the Quantity field's value.
9152func (s *Aliases) SetQuantity(v int64) *Aliases {
9153	s.Quantity = &v
9154	return s
9155}
9156
9157// A complex type that controls which HTTP methods CloudFront processes and
9158// forwards to your Amazon S3 bucket or your custom origin. There are three
9159// choices:
9160//
9161//    * CloudFront forwards only GET and HEAD requests.
9162//
9163//    * CloudFront forwards only GET, HEAD, and OPTIONS requests.
9164//
9165//    * CloudFront forwards GET, HEAD, OPTIONS, PUT, PATCH, POST, and DELETE
9166//    requests.
9167//
9168// If you pick the third choice, you may need to restrict access to your Amazon
9169// S3 bucket or to your custom origin so users can't perform operations that
9170// you don't want them to. For example, you might not want users to have permissions
9171// to delete objects from your origin.
9172type AllowedMethods struct {
9173	_ struct{} `type:"structure"`
9174
9175	// A complex type that controls whether CloudFront caches the response to requests
9176	// using the specified HTTP methods. There are two choices:
9177	//
9178	//    * CloudFront caches responses to GET and HEAD requests.
9179	//
9180	//    * CloudFront caches responses to GET, HEAD, and OPTIONS requests.
9181	//
9182	// If you pick the second choice for your Amazon S3 Origin, you may need to
9183	// forward Access-Control-Request-Method, Access-Control-Request-Headers, and
9184	// Origin headers for the responses to be cached correctly.
9185	CachedMethods *CachedMethods `type:"structure"`
9186
9187	// A complex type that contains the HTTP methods that you want CloudFront to
9188	// process and forward to your origin.
9189	//
9190	// Items is a required field
9191	Items []*string `locationNameList:"Method" type:"list" required:"true"`
9192
9193	// The number of HTTP methods that you want CloudFront to forward to your origin.
9194	// Valid values are 2 (for GET and HEAD requests), 3 (for GET, HEAD, and OPTIONS
9195	// requests) and 7 (for GET, HEAD, OPTIONS, PUT, PATCH, POST, and DELETE requests).
9196	//
9197	// Quantity is a required field
9198	Quantity *int64 `type:"integer" required:"true"`
9199}
9200
9201// String returns the string representation
9202func (s AllowedMethods) String() string {
9203	return awsutil.Prettify(s)
9204}
9205
9206// GoString returns the string representation
9207func (s AllowedMethods) GoString() string {
9208	return s.String()
9209}
9210
9211// Validate inspects the fields of the type to determine if they are valid.
9212func (s *AllowedMethods) Validate() error {
9213	invalidParams := request.ErrInvalidParams{Context: "AllowedMethods"}
9214	if s.Items == nil {
9215		invalidParams.Add(request.NewErrParamRequired("Items"))
9216	}
9217	if s.Quantity == nil {
9218		invalidParams.Add(request.NewErrParamRequired("Quantity"))
9219	}
9220	if s.CachedMethods != nil {
9221		if err := s.CachedMethods.Validate(); err != nil {
9222			invalidParams.AddNested("CachedMethods", err.(request.ErrInvalidParams))
9223		}
9224	}
9225
9226	if invalidParams.Len() > 0 {
9227		return invalidParams
9228	}
9229	return nil
9230}
9231
9232// SetCachedMethods sets the CachedMethods field's value.
9233func (s *AllowedMethods) SetCachedMethods(v *CachedMethods) *AllowedMethods {
9234	s.CachedMethods = v
9235	return s
9236}
9237
9238// SetItems sets the Items field's value.
9239func (s *AllowedMethods) SetItems(v []*string) *AllowedMethods {
9240	s.Items = v
9241	return s
9242}
9243
9244// SetQuantity sets the Quantity field's value.
9245func (s *AllowedMethods) SetQuantity(v int64) *AllowedMethods {
9246	s.Quantity = &v
9247	return s
9248}
9249
9250type AssociateAliasInput struct {
9251	_ struct{} `locationName:"AssociateAliasRequest" type:"structure"`
9252
9253	// The alias (also known as a CNAME) to add to the target distribution.
9254	//
9255	// Alias is a required field
9256	Alias *string `location:"querystring" locationName:"Alias" type:"string" required:"true"`
9257
9258	// The ID of the distribution that you’re associating the alias with.
9259	//
9260	// TargetDistributionId is a required field
9261	TargetDistributionId *string `location:"uri" locationName:"TargetDistributionId" type:"string" required:"true"`
9262}
9263
9264// String returns the string representation
9265func (s AssociateAliasInput) String() string {
9266	return awsutil.Prettify(s)
9267}
9268
9269// GoString returns the string representation
9270func (s AssociateAliasInput) GoString() string {
9271	return s.String()
9272}
9273
9274// Validate inspects the fields of the type to determine if they are valid.
9275func (s *AssociateAliasInput) Validate() error {
9276	invalidParams := request.ErrInvalidParams{Context: "AssociateAliasInput"}
9277	if s.Alias == nil {
9278		invalidParams.Add(request.NewErrParamRequired("Alias"))
9279	}
9280	if s.TargetDistributionId == nil {
9281		invalidParams.Add(request.NewErrParamRequired("TargetDistributionId"))
9282	}
9283	if s.TargetDistributionId != nil && len(*s.TargetDistributionId) < 1 {
9284		invalidParams.Add(request.NewErrParamMinLen("TargetDistributionId", 1))
9285	}
9286
9287	if invalidParams.Len() > 0 {
9288		return invalidParams
9289	}
9290	return nil
9291}
9292
9293// SetAlias sets the Alias field's value.
9294func (s *AssociateAliasInput) SetAlias(v string) *AssociateAliasInput {
9295	s.Alias = &v
9296	return s
9297}
9298
9299// SetTargetDistributionId sets the TargetDistributionId field's value.
9300func (s *AssociateAliasInput) SetTargetDistributionId(v string) *AssociateAliasInput {
9301	s.TargetDistributionId = &v
9302	return s
9303}
9304
9305type AssociateAliasOutput struct {
9306	_ struct{} `type:"structure"`
9307}
9308
9309// String returns the string representation
9310func (s AssociateAliasOutput) String() string {
9311	return awsutil.Prettify(s)
9312}
9313
9314// GoString returns the string representation
9315func (s AssociateAliasOutput) GoString() string {
9316	return s.String()
9317}
9318
9319// A complex type that describes how CloudFront processes requests.
9320//
9321// You must create at least as many cache behaviors (including the default cache
9322// behavior) as you have origins if you want CloudFront to serve objects from
9323// all of the origins. Each cache behavior specifies the one origin from which
9324// you want CloudFront to get objects. If you have two origins and only the
9325// default cache behavior, the default cache behavior will cause CloudFront
9326// to get objects from one of the origins, but the other origin is never used.
9327//
9328// For the current quota (formerly known as limit) on the number of cache behaviors
9329// that you can add to a distribution, see Quotas (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)
9330// in the Amazon CloudFront Developer Guide.
9331//
9332// If you don’t want to specify any cache behaviors, include only an empty
9333// CacheBehaviors element. Don’t include an empty CacheBehavior element because
9334// this is invalid.
9335//
9336// To delete all cache behaviors in an existing distribution, update the distribution
9337// configuration and include only an empty CacheBehaviors element.
9338//
9339// To add, change, or remove one or more cache behaviors, update the distribution
9340// configuration and specify all of the cache behaviors that you want to include
9341// in the updated distribution.
9342//
9343// For more information about cache behaviors, see Cache Behavior Settings (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior)
9344// in the Amazon CloudFront Developer Guide.
9345type CacheBehavior struct {
9346	_ struct{} `type:"structure"`
9347
9348	// A complex type that controls which HTTP methods CloudFront processes and
9349	// forwards to your Amazon S3 bucket or your custom origin. There are three
9350	// choices:
9351	//
9352	//    * CloudFront forwards only GET and HEAD requests.
9353	//
9354	//    * CloudFront forwards only GET, HEAD, and OPTIONS requests.
9355	//
9356	//    * CloudFront forwards GET, HEAD, OPTIONS, PUT, PATCH, POST, and DELETE
9357	//    requests.
9358	//
9359	// If you pick the third choice, you may need to restrict access to your Amazon
9360	// S3 bucket or to your custom origin so users can't perform operations that
9361	// you don't want them to. For example, you might not want users to have permissions
9362	// to delete objects from your origin.
9363	AllowedMethods *AllowedMethods `type:"structure"`
9364
9365	// The unique identifier of the cache policy that is attached to this cache
9366	// behavior. For more information, see Creating cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
9367	// or Using the managed cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html)
9368	// in the Amazon CloudFront Developer Guide.
9369	//
9370	// A CacheBehavior must include either a CachePolicyId or ForwardedValues. We
9371	// recommend that you use a CachePolicyId.
9372	CachePolicyId *string `type:"string"`
9373
9374	// Whether you want CloudFront to automatically compress certain files for this
9375	// cache behavior. If so, specify true; if not, specify false. For more information,
9376	// see Serving Compressed Files (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html)
9377	// in the Amazon CloudFront Developer Guide.
9378	Compress *bool `type:"boolean"`
9379
9380	// This field is deprecated. We recommend that you use the DefaultTTL field
9381	// in a cache policy instead of this field. For more information, see Creating
9382	// cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
9383	// or Using the managed cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html)
9384	// in the Amazon CloudFront Developer Guide.
9385	//
9386	// The default amount of time that you want objects to stay in CloudFront caches
9387	// before CloudFront forwards another request to your origin to determine whether
9388	// the object has been updated. The value that you specify applies only when
9389	// your origin does not add HTTP headers such as Cache-Control max-age, Cache-Control
9390	// s-maxage, and Expires to objects. For more information, see Managing How
9391	// Long Content Stays in an Edge Cache (Expiration) (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)
9392	// in the Amazon CloudFront Developer Guide.
9393	//
9394	// Deprecated: DefaultTTL has been deprecated
9395	DefaultTTL *int64 `deprecated:"true" type:"long"`
9396
9397	// The value of ID for the field-level encryption configuration that you want
9398	// CloudFront to use for encrypting specific fields of data for this cache behavior.
9399	FieldLevelEncryptionId *string `type:"string"`
9400
9401	// This field is deprecated. We recommend that you use a cache policy or an
9402	// origin request policy instead of this field. For more information, see Working
9403	// with policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html)
9404	// in the Amazon CloudFront Developer Guide.
9405	//
9406	// If you want to include values in the cache key, use a cache policy. For more
9407	// information, see Creating cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
9408	// or Using the managed cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html)
9409	// in the Amazon CloudFront Developer Guide.
9410	//
9411	// If you want to send values to the origin but not include them in the cache
9412	// key, use an origin request policy. For more information, see Creating origin
9413	// request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy)
9414	// or Using the managed origin request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html)
9415	// in the Amazon CloudFront Developer Guide.
9416	//
9417	// A CacheBehavior must include either a CachePolicyId or ForwardedValues. We
9418	// recommend that you use a CachePolicyId.
9419	//
9420	// A complex type that specifies how CloudFront handles query strings, cookies,
9421	// and HTTP headers.
9422	//
9423	// Deprecated: ForwardedValues has been deprecated
9424	ForwardedValues *ForwardedValues `deprecated:"true" type:"structure"`
9425
9426	// A list of CloudFront functions that are associated with this cache behavior.
9427	// CloudFront functions must be published to the LIVE stage to associate them
9428	// with a cache behavior.
9429	FunctionAssociations *FunctionAssociations `type:"structure"`
9430
9431	// A complex type that contains zero or more Lambda@Edge function associations
9432	// for a cache behavior.
9433	LambdaFunctionAssociations *LambdaFunctionAssociations `type:"structure"`
9434
9435	// This field is deprecated. We recommend that you use the MaxTTL field in a
9436	// cache policy instead of this field. For more information, see Creating cache
9437	// policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
9438	// or Using the managed cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html)
9439	// in the Amazon CloudFront Developer Guide.
9440	//
9441	// The maximum amount of time that you want objects to stay in CloudFront caches
9442	// before CloudFront forwards another request to your origin to determine whether
9443	// the object has been updated. The value that you specify applies only when
9444	// your origin adds HTTP headers such as Cache-Control max-age, Cache-Control
9445	// s-maxage, and Expires to objects. For more information, see Managing How
9446	// Long Content Stays in an Edge Cache (Expiration) (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)
9447	// in the Amazon CloudFront Developer Guide.
9448	//
9449	// Deprecated: MaxTTL has been deprecated
9450	MaxTTL *int64 `deprecated:"true" type:"long"`
9451
9452	// This field is deprecated. We recommend that you use the MinTTL field in a
9453	// cache policy instead of this field. For more information, see Creating cache
9454	// policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
9455	// or Using the managed cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html)
9456	// in the Amazon CloudFront Developer Guide.
9457	//
9458	// The minimum amount of time that you want objects to stay in CloudFront caches
9459	// before CloudFront forwards another request to your origin to determine whether
9460	// the object has been updated. For more information, see Managing How Long
9461	// Content Stays in an Edge Cache (Expiration) (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)
9462	// in the Amazon CloudFront Developer Guide.
9463	//
9464	// You must specify 0 for MinTTL if you configure CloudFront to forward all
9465	// headers to your origin (under Headers, if you specify 1 for Quantity and
9466	// * for Name).
9467	//
9468	// Deprecated: MinTTL has been deprecated
9469	MinTTL *int64 `deprecated:"true" type:"long"`
9470
9471	// The unique identifier of the origin request policy that is attached to this
9472	// cache behavior. For more information, see Creating origin request policies
9473	// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy)
9474	// or Using the managed origin request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html)
9475	// in the Amazon CloudFront Developer Guide.
9476	OriginRequestPolicyId *string `type:"string"`
9477
9478	// The pattern (for example, images/*.jpg) that specifies which requests to
9479	// apply the behavior to. When CloudFront receives a viewer request, the requested
9480	// path is compared with path patterns in the order in which cache behaviors
9481	// are listed in the distribution.
9482	//
9483	// You can optionally include a slash (/) at the beginning of the path pattern.
9484	// For example, /images/*.jpg. CloudFront behavior is the same with or without
9485	// the leading /.
9486	//
9487	// The path pattern for the default cache behavior is * and cannot be changed.
9488	// If the request for an object does not match the path pattern for any cache
9489	// behaviors, CloudFront applies the behavior in the default cache behavior.
9490	//
9491	// For more information, see Path Pattern (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern)
9492	// in the Amazon CloudFront Developer Guide.
9493	//
9494	// PathPattern is a required field
9495	PathPattern *string `type:"string" required:"true"`
9496
9497	// The Amazon Resource Name (ARN) of the real-time log configuration that is
9498	// attached to this cache behavior. For more information, see Real-time logs
9499	// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html)
9500	// in the Amazon CloudFront Developer Guide.
9501	RealtimeLogConfigArn *string `type:"string"`
9502
9503	// Indicates whether you want to distribute media files in the Microsoft Smooth
9504	// Streaming format using the origin that is associated with this cache behavior.
9505	// If so, specify true; if not, specify false. If you specify true for SmoothStreaming,
9506	// you can still distribute other content using this cache behavior if the content
9507	// matches the value of PathPattern.
9508	SmoothStreaming *bool `type:"boolean"`
9509
9510	// The value of ID for the origin that you want CloudFront to route requests
9511	// to when they match this cache behavior.
9512	//
9513	// TargetOriginId is a required field
9514	TargetOriginId *string `type:"string" required:"true"`
9515
9516	// A list of key groups that CloudFront can use to validate signed URLs or signed
9517	// cookies.
9518	//
9519	// When a cache behavior contains trusted key groups, CloudFront requires signed
9520	// URLs or signed cookies for all requests that match the cache behavior. The
9521	// URLs or cookies must be signed with a private key whose corresponding public
9522	// key is in the key group. The signed URL or cookie contains information about
9523	// which public key CloudFront should use to verify the signature. For more
9524	// information, see Serving private content (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html)
9525	// in the Amazon CloudFront Developer Guide.
9526	TrustedKeyGroups *TrustedKeyGroups `type:"structure"`
9527
9528	//
9529	// We recommend using TrustedKeyGroups instead of TrustedSigners.
9530	//
9531	// A list of account IDs whose public keys CloudFront can use to validate signed
9532	// URLs or signed cookies.
9533	//
9534	// When a cache behavior contains trusted signers, CloudFront requires signed
9535	// URLs or signed cookies for all requests that match the cache behavior. The
9536	// URLs or cookies must be signed with the private key of a CloudFront key pair
9537	// in the trusted signer’s account. The signed URL or cookie contains information
9538	// about which public key CloudFront should use to verify the signature. For
9539	// more information, see Serving private content (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html)
9540	// in the Amazon CloudFront Developer Guide.
9541	TrustedSigners *TrustedSigners `type:"structure"`
9542
9543	// The protocol that viewers can use to access the files in the origin specified
9544	// by TargetOriginId when a request matches the path pattern in PathPattern.
9545	// You can specify the following options:
9546	//
9547	//    * allow-all: Viewers can use HTTP or HTTPS.
9548	//
9549	//    * redirect-to-https: If a viewer submits an HTTP request, CloudFront returns
9550	//    an HTTP status code of 301 (Moved Permanently) to the viewer along with
9551	//    the HTTPS URL. The viewer then resubmits the request using the new URL.
9552	//
9553	//    * https-only: If a viewer sends an HTTP request, CloudFront returns an
9554	//    HTTP status code of 403 (Forbidden).
9555	//
9556	// For more information about requiring the HTTPS protocol, see Requiring HTTPS
9557	// Between Viewers and CloudFront (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html)
9558	// in the Amazon CloudFront Developer Guide.
9559	//
9560	// The only way to guarantee that viewers retrieve an object that was fetched
9561	// from the origin using HTTPS is never to use any other protocol to fetch the
9562	// object. If you have recently changed from HTTP to HTTPS, we recommend that
9563	// you clear your objects’ cache because cached objects are protocol agnostic.
9564	// That means that an edge location will return an object from the cache regardless
9565	// of whether the current request protocol matches the protocol used previously.
9566	// For more information, see Managing Cache Expiration (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)
9567	// in the Amazon CloudFront Developer Guide.
9568	//
9569	// ViewerProtocolPolicy is a required field
9570	ViewerProtocolPolicy *string `type:"string" required:"true" enum:"ViewerProtocolPolicy"`
9571}
9572
9573// String returns the string representation
9574func (s CacheBehavior) String() string {
9575	return awsutil.Prettify(s)
9576}
9577
9578// GoString returns the string representation
9579func (s CacheBehavior) GoString() string {
9580	return s.String()
9581}
9582
9583// Validate inspects the fields of the type to determine if they are valid.
9584func (s *CacheBehavior) Validate() error {
9585	invalidParams := request.ErrInvalidParams{Context: "CacheBehavior"}
9586	if s.PathPattern == nil {
9587		invalidParams.Add(request.NewErrParamRequired("PathPattern"))
9588	}
9589	if s.TargetOriginId == nil {
9590		invalidParams.Add(request.NewErrParamRequired("TargetOriginId"))
9591	}
9592	if s.ViewerProtocolPolicy == nil {
9593		invalidParams.Add(request.NewErrParamRequired("ViewerProtocolPolicy"))
9594	}
9595	if s.AllowedMethods != nil {
9596		if err := s.AllowedMethods.Validate(); err != nil {
9597			invalidParams.AddNested("AllowedMethods", err.(request.ErrInvalidParams))
9598		}
9599	}
9600	if s.ForwardedValues != nil {
9601		if err := s.ForwardedValues.Validate(); err != nil {
9602			invalidParams.AddNested("ForwardedValues", err.(request.ErrInvalidParams))
9603		}
9604	}
9605	if s.FunctionAssociations != nil {
9606		if err := s.FunctionAssociations.Validate(); err != nil {
9607			invalidParams.AddNested("FunctionAssociations", err.(request.ErrInvalidParams))
9608		}
9609	}
9610	if s.LambdaFunctionAssociations != nil {
9611		if err := s.LambdaFunctionAssociations.Validate(); err != nil {
9612			invalidParams.AddNested("LambdaFunctionAssociations", err.(request.ErrInvalidParams))
9613		}
9614	}
9615	if s.TrustedKeyGroups != nil {
9616		if err := s.TrustedKeyGroups.Validate(); err != nil {
9617			invalidParams.AddNested("TrustedKeyGroups", err.(request.ErrInvalidParams))
9618		}
9619	}
9620	if s.TrustedSigners != nil {
9621		if err := s.TrustedSigners.Validate(); err != nil {
9622			invalidParams.AddNested("TrustedSigners", err.(request.ErrInvalidParams))
9623		}
9624	}
9625
9626	if invalidParams.Len() > 0 {
9627		return invalidParams
9628	}
9629	return nil
9630}
9631
9632// SetAllowedMethods sets the AllowedMethods field's value.
9633func (s *CacheBehavior) SetAllowedMethods(v *AllowedMethods) *CacheBehavior {
9634	s.AllowedMethods = v
9635	return s
9636}
9637
9638// SetCachePolicyId sets the CachePolicyId field's value.
9639func (s *CacheBehavior) SetCachePolicyId(v string) *CacheBehavior {
9640	s.CachePolicyId = &v
9641	return s
9642}
9643
9644// SetCompress sets the Compress field's value.
9645func (s *CacheBehavior) SetCompress(v bool) *CacheBehavior {
9646	s.Compress = &v
9647	return s
9648}
9649
9650// SetDefaultTTL sets the DefaultTTL field's value.
9651func (s *CacheBehavior) SetDefaultTTL(v int64) *CacheBehavior {
9652	s.DefaultTTL = &v
9653	return s
9654}
9655
9656// SetFieldLevelEncryptionId sets the FieldLevelEncryptionId field's value.
9657func (s *CacheBehavior) SetFieldLevelEncryptionId(v string) *CacheBehavior {
9658	s.FieldLevelEncryptionId = &v
9659	return s
9660}
9661
9662// SetForwardedValues sets the ForwardedValues field's value.
9663func (s *CacheBehavior) SetForwardedValues(v *ForwardedValues) *CacheBehavior {
9664	s.ForwardedValues = v
9665	return s
9666}
9667
9668// SetFunctionAssociations sets the FunctionAssociations field's value.
9669func (s *CacheBehavior) SetFunctionAssociations(v *FunctionAssociations) *CacheBehavior {
9670	s.FunctionAssociations = v
9671	return s
9672}
9673
9674// SetLambdaFunctionAssociations sets the LambdaFunctionAssociations field's value.
9675func (s *CacheBehavior) SetLambdaFunctionAssociations(v *LambdaFunctionAssociations) *CacheBehavior {
9676	s.LambdaFunctionAssociations = v
9677	return s
9678}
9679
9680// SetMaxTTL sets the MaxTTL field's value.
9681func (s *CacheBehavior) SetMaxTTL(v int64) *CacheBehavior {
9682	s.MaxTTL = &v
9683	return s
9684}
9685
9686// SetMinTTL sets the MinTTL field's value.
9687func (s *CacheBehavior) SetMinTTL(v int64) *CacheBehavior {
9688	s.MinTTL = &v
9689	return s
9690}
9691
9692// SetOriginRequestPolicyId sets the OriginRequestPolicyId field's value.
9693func (s *CacheBehavior) SetOriginRequestPolicyId(v string) *CacheBehavior {
9694	s.OriginRequestPolicyId = &v
9695	return s
9696}
9697
9698// SetPathPattern sets the PathPattern field's value.
9699func (s *CacheBehavior) SetPathPattern(v string) *CacheBehavior {
9700	s.PathPattern = &v
9701	return s
9702}
9703
9704// SetRealtimeLogConfigArn sets the RealtimeLogConfigArn field's value.
9705func (s *CacheBehavior) SetRealtimeLogConfigArn(v string) *CacheBehavior {
9706	s.RealtimeLogConfigArn = &v
9707	return s
9708}
9709
9710// SetSmoothStreaming sets the SmoothStreaming field's value.
9711func (s *CacheBehavior) SetSmoothStreaming(v bool) *CacheBehavior {
9712	s.SmoothStreaming = &v
9713	return s
9714}
9715
9716// SetTargetOriginId sets the TargetOriginId field's value.
9717func (s *CacheBehavior) SetTargetOriginId(v string) *CacheBehavior {
9718	s.TargetOriginId = &v
9719	return s
9720}
9721
9722// SetTrustedKeyGroups sets the TrustedKeyGroups field's value.
9723func (s *CacheBehavior) SetTrustedKeyGroups(v *TrustedKeyGroups) *CacheBehavior {
9724	s.TrustedKeyGroups = v
9725	return s
9726}
9727
9728// SetTrustedSigners sets the TrustedSigners field's value.
9729func (s *CacheBehavior) SetTrustedSigners(v *TrustedSigners) *CacheBehavior {
9730	s.TrustedSigners = v
9731	return s
9732}
9733
9734// SetViewerProtocolPolicy sets the ViewerProtocolPolicy field's value.
9735func (s *CacheBehavior) SetViewerProtocolPolicy(v string) *CacheBehavior {
9736	s.ViewerProtocolPolicy = &v
9737	return s
9738}
9739
9740// A complex type that contains zero or more CacheBehavior elements.
9741type CacheBehaviors struct {
9742	_ struct{} `type:"structure"`
9743
9744	// Optional: A complex type that contains cache behaviors for this distribution.
9745	// If Quantity is 0, you can omit Items.
9746	Items []*CacheBehavior `locationNameList:"CacheBehavior" type:"list"`
9747
9748	// The number of cache behaviors for this distribution.
9749	//
9750	// Quantity is a required field
9751	Quantity *int64 `type:"integer" required:"true"`
9752}
9753
9754// String returns the string representation
9755func (s CacheBehaviors) String() string {
9756	return awsutil.Prettify(s)
9757}
9758
9759// GoString returns the string representation
9760func (s CacheBehaviors) GoString() string {
9761	return s.String()
9762}
9763
9764// Validate inspects the fields of the type to determine if they are valid.
9765func (s *CacheBehaviors) Validate() error {
9766	invalidParams := request.ErrInvalidParams{Context: "CacheBehaviors"}
9767	if s.Quantity == nil {
9768		invalidParams.Add(request.NewErrParamRequired("Quantity"))
9769	}
9770	if s.Items != nil {
9771		for i, v := range s.Items {
9772			if v == nil {
9773				continue
9774			}
9775			if err := v.Validate(); err != nil {
9776				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
9777			}
9778		}
9779	}
9780
9781	if invalidParams.Len() > 0 {
9782		return invalidParams
9783	}
9784	return nil
9785}
9786
9787// SetItems sets the Items field's value.
9788func (s *CacheBehaviors) SetItems(v []*CacheBehavior) *CacheBehaviors {
9789	s.Items = v
9790	return s
9791}
9792
9793// SetQuantity sets the Quantity field's value.
9794func (s *CacheBehaviors) SetQuantity(v int64) *CacheBehaviors {
9795	s.Quantity = &v
9796	return s
9797}
9798
9799// A cache policy.
9800//
9801// When it’s attached to a cache behavior, the cache policy determines the
9802// following:
9803//
9804//    * The values that CloudFront includes in the cache key. These values can
9805//    include HTTP headers, cookies, and URL query strings. CloudFront uses
9806//    the cache key to find an object in its cache that it can return to the
9807//    viewer.
9808//
9809//    * The default, minimum, and maximum time to live (TTL) values that you
9810//    want objects to stay in the CloudFront cache.
9811//
9812// The headers, cookies, and query strings that are included in the cache key
9813// are automatically included in requests that CloudFront sends to the origin.
9814// CloudFront sends a request when it can’t find a valid object in its cache
9815// that matches the request’s cache key. If you want to send values to the
9816// origin but not include them in the cache key, use OriginRequestPolicy.
9817type CachePolicy struct {
9818	_ struct{} `type:"structure"`
9819
9820	// The cache policy configuration.
9821	//
9822	// CachePolicyConfig is a required field
9823	CachePolicyConfig *CachePolicyConfig `type:"structure" required:"true"`
9824
9825	// The unique identifier for the cache policy.
9826	//
9827	// Id is a required field
9828	Id *string `type:"string" required:"true"`
9829
9830	// The date and time when the cache policy was last modified.
9831	//
9832	// LastModifiedTime is a required field
9833	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
9834}
9835
9836// String returns the string representation
9837func (s CachePolicy) String() string {
9838	return awsutil.Prettify(s)
9839}
9840
9841// GoString returns the string representation
9842func (s CachePolicy) GoString() string {
9843	return s.String()
9844}
9845
9846// SetCachePolicyConfig sets the CachePolicyConfig field's value.
9847func (s *CachePolicy) SetCachePolicyConfig(v *CachePolicyConfig) *CachePolicy {
9848	s.CachePolicyConfig = v
9849	return s
9850}
9851
9852// SetId sets the Id field's value.
9853func (s *CachePolicy) SetId(v string) *CachePolicy {
9854	s.Id = &v
9855	return s
9856}
9857
9858// SetLastModifiedTime sets the LastModifiedTime field's value.
9859func (s *CachePolicy) SetLastModifiedTime(v time.Time) *CachePolicy {
9860	s.LastModifiedTime = &v
9861	return s
9862}
9863
9864// A cache policy configuration.
9865//
9866// This configuration determines the following:
9867//
9868//    * The values that CloudFront includes in the cache key. These values can
9869//    include HTTP headers, cookies, and URL query strings. CloudFront uses
9870//    the cache key to find an object in its cache that it can return to the
9871//    viewer.
9872//
9873//    * The default, minimum, and maximum time to live (TTL) values that you
9874//    want objects to stay in the CloudFront cache.
9875//
9876// The headers, cookies, and query strings that are included in the cache key
9877// are automatically included in requests that CloudFront sends to the origin.
9878// CloudFront sends a request when it can’t find a valid object in its cache
9879// that matches the request’s cache key. If you want to send values to the
9880// origin but not include them in the cache key, use OriginRequestPolicy.
9881type CachePolicyConfig struct {
9882	_ struct{} `type:"structure"`
9883
9884	// A comment to describe the cache policy. The comment cannot be longer than
9885	// 128 characters.
9886	Comment *string `type:"string"`
9887
9888	// The default amount of time, in seconds, that you want objects to stay in
9889	// the CloudFront cache before CloudFront sends another request to the origin
9890	// to see if the object has been updated. CloudFront uses this value as the
9891	// object’s time to live (TTL) only when the origin does not send Cache-Control
9892	// or Expires headers with the object. For more information, see Managing How
9893	// Long Content Stays in an Edge Cache (Expiration) (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)
9894	// in the Amazon CloudFront Developer Guide.
9895	//
9896	// The default value for this field is 86400 seconds (one day). If the value
9897	// of MinTTL is more than 86400 seconds, then the default value for this field
9898	// is the same as the value of MinTTL.
9899	DefaultTTL *int64 `type:"long"`
9900
9901	// The maximum amount of time, in seconds, that objects stay in the CloudFront
9902	// cache before CloudFront sends another request to the origin to see if the
9903	// object has been updated. CloudFront uses this value only when the origin
9904	// sends Cache-Control or Expires headers with the object. For more information,
9905	// see Managing How Long Content Stays in an Edge Cache (Expiration) (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)
9906	// in the Amazon CloudFront Developer Guide.
9907	//
9908	// The default value for this field is 31536000 seconds (one year). If the value
9909	// of MinTTL or DefaultTTL is more than 31536000 seconds, then the default value
9910	// for this field is the same as the value of DefaultTTL.
9911	MaxTTL *int64 `type:"long"`
9912
9913	// The minimum amount of time, in seconds, that you want objects to stay in
9914	// the CloudFront cache before CloudFront sends another request to the origin
9915	// to see if the object has been updated. For more information, see Managing
9916	// How Long Content Stays in an Edge Cache (Expiration) (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)
9917	// in the Amazon CloudFront Developer Guide.
9918	//
9919	// MinTTL is a required field
9920	MinTTL *int64 `type:"long" required:"true"`
9921
9922	// A unique name to identify the cache policy.
9923	//
9924	// Name is a required field
9925	Name *string `type:"string" required:"true"`
9926
9927	// The HTTP headers, cookies, and URL query strings to include in the cache
9928	// key. The values included in the cache key are automatically included in requests
9929	// that CloudFront sends to the origin.
9930	ParametersInCacheKeyAndForwardedToOrigin *ParametersInCacheKeyAndForwardedToOrigin `type:"structure"`
9931}
9932
9933// String returns the string representation
9934func (s CachePolicyConfig) String() string {
9935	return awsutil.Prettify(s)
9936}
9937
9938// GoString returns the string representation
9939func (s CachePolicyConfig) GoString() string {
9940	return s.String()
9941}
9942
9943// Validate inspects the fields of the type to determine if they are valid.
9944func (s *CachePolicyConfig) Validate() error {
9945	invalidParams := request.ErrInvalidParams{Context: "CachePolicyConfig"}
9946	if s.MinTTL == nil {
9947		invalidParams.Add(request.NewErrParamRequired("MinTTL"))
9948	}
9949	if s.Name == nil {
9950		invalidParams.Add(request.NewErrParamRequired("Name"))
9951	}
9952	if s.ParametersInCacheKeyAndForwardedToOrigin != nil {
9953		if err := s.ParametersInCacheKeyAndForwardedToOrigin.Validate(); err != nil {
9954			invalidParams.AddNested("ParametersInCacheKeyAndForwardedToOrigin", err.(request.ErrInvalidParams))
9955		}
9956	}
9957
9958	if invalidParams.Len() > 0 {
9959		return invalidParams
9960	}
9961	return nil
9962}
9963
9964// SetComment sets the Comment field's value.
9965func (s *CachePolicyConfig) SetComment(v string) *CachePolicyConfig {
9966	s.Comment = &v
9967	return s
9968}
9969
9970// SetDefaultTTL sets the DefaultTTL field's value.
9971func (s *CachePolicyConfig) SetDefaultTTL(v int64) *CachePolicyConfig {
9972	s.DefaultTTL = &v
9973	return s
9974}
9975
9976// SetMaxTTL sets the MaxTTL field's value.
9977func (s *CachePolicyConfig) SetMaxTTL(v int64) *CachePolicyConfig {
9978	s.MaxTTL = &v
9979	return s
9980}
9981
9982// SetMinTTL sets the MinTTL field's value.
9983func (s *CachePolicyConfig) SetMinTTL(v int64) *CachePolicyConfig {
9984	s.MinTTL = &v
9985	return s
9986}
9987
9988// SetName sets the Name field's value.
9989func (s *CachePolicyConfig) SetName(v string) *CachePolicyConfig {
9990	s.Name = &v
9991	return s
9992}
9993
9994// SetParametersInCacheKeyAndForwardedToOrigin sets the ParametersInCacheKeyAndForwardedToOrigin field's value.
9995func (s *CachePolicyConfig) SetParametersInCacheKeyAndForwardedToOrigin(v *ParametersInCacheKeyAndForwardedToOrigin) *CachePolicyConfig {
9996	s.ParametersInCacheKeyAndForwardedToOrigin = v
9997	return s
9998}
9999
10000// An object that determines whether any cookies in viewer requests (and if
10001// so, which cookies) are included in the cache key and automatically included
10002// in requests that CloudFront sends to the origin.
10003type CachePolicyCookiesConfig struct {
10004	_ struct{} `type:"structure"`
10005
10006	// Determines whether any cookies in viewer requests are included in the cache
10007	// key and automatically included in requests that CloudFront sends to the origin.
10008	// Valid values are:
10009	//
10010	//    * none – Cookies in viewer requests are not included in the cache key
10011	//    and are not automatically included in requests that CloudFront sends to
10012	//    the origin. Even when this field is set to none, any cookies that are
10013	//    listed in an OriginRequestPolicy are included in origin requests.
10014	//
10015	//    * whitelist – The cookies in viewer requests that are listed in the
10016	//    CookieNames type are included in the cache key and automatically included
10017	//    in requests that CloudFront sends to the origin.
10018	//
10019	//    * allExcept – All cookies in viewer requests that are not listed in
10020	//    the CookieNames type are included in the cache key and automatically included
10021	//    in requests that CloudFront sends to the origin.
10022	//
10023	//    * all – All cookies in viewer requests are included in the cache key
10024	//    and are automatically included in requests that CloudFront sends to the
10025	//    origin.
10026	//
10027	// CookieBehavior is a required field
10028	CookieBehavior *string `type:"string" required:"true" enum:"CachePolicyCookieBehavior"`
10029
10030	// Contains a list of cookie names.
10031	Cookies *CookieNames `type:"structure"`
10032}
10033
10034// String returns the string representation
10035func (s CachePolicyCookiesConfig) String() string {
10036	return awsutil.Prettify(s)
10037}
10038
10039// GoString returns the string representation
10040func (s CachePolicyCookiesConfig) GoString() string {
10041	return s.String()
10042}
10043
10044// Validate inspects the fields of the type to determine if they are valid.
10045func (s *CachePolicyCookiesConfig) Validate() error {
10046	invalidParams := request.ErrInvalidParams{Context: "CachePolicyCookiesConfig"}
10047	if s.CookieBehavior == nil {
10048		invalidParams.Add(request.NewErrParamRequired("CookieBehavior"))
10049	}
10050	if s.Cookies != nil {
10051		if err := s.Cookies.Validate(); err != nil {
10052			invalidParams.AddNested("Cookies", err.(request.ErrInvalidParams))
10053		}
10054	}
10055
10056	if invalidParams.Len() > 0 {
10057		return invalidParams
10058	}
10059	return nil
10060}
10061
10062// SetCookieBehavior sets the CookieBehavior field's value.
10063func (s *CachePolicyCookiesConfig) SetCookieBehavior(v string) *CachePolicyCookiesConfig {
10064	s.CookieBehavior = &v
10065	return s
10066}
10067
10068// SetCookies sets the Cookies field's value.
10069func (s *CachePolicyCookiesConfig) SetCookies(v *CookieNames) *CachePolicyCookiesConfig {
10070	s.Cookies = v
10071	return s
10072}
10073
10074// An object that determines whether any HTTP headers (and if so, which headers)
10075// are included in the cache key and automatically included in requests that
10076// CloudFront sends to the origin.
10077type CachePolicyHeadersConfig struct {
10078	_ struct{} `type:"structure"`
10079
10080	// Determines whether any HTTP headers are included in the cache key and automatically
10081	// included in requests that CloudFront sends to the origin. Valid values are:
10082	//
10083	//    * none – HTTP headers are not included in the cache key and are not
10084	//    automatically included in requests that CloudFront sends to the origin.
10085	//    Even when this field is set to none, any headers that are listed in an
10086	//    OriginRequestPolicy are included in origin requests.
10087	//
10088	//    * whitelist – The HTTP headers that are listed in the Headers type are
10089	//    included in the cache key and are automatically included in requests that
10090	//    CloudFront sends to the origin.
10091	//
10092	// HeaderBehavior is a required field
10093	HeaderBehavior *string `type:"string" required:"true" enum:"CachePolicyHeaderBehavior"`
10094
10095	// Contains a list of HTTP header names.
10096	Headers *Headers `type:"structure"`
10097}
10098
10099// String returns the string representation
10100func (s CachePolicyHeadersConfig) String() string {
10101	return awsutil.Prettify(s)
10102}
10103
10104// GoString returns the string representation
10105func (s CachePolicyHeadersConfig) GoString() string {
10106	return s.String()
10107}
10108
10109// Validate inspects the fields of the type to determine if they are valid.
10110func (s *CachePolicyHeadersConfig) Validate() error {
10111	invalidParams := request.ErrInvalidParams{Context: "CachePolicyHeadersConfig"}
10112	if s.HeaderBehavior == nil {
10113		invalidParams.Add(request.NewErrParamRequired("HeaderBehavior"))
10114	}
10115	if s.Headers != nil {
10116		if err := s.Headers.Validate(); err != nil {
10117			invalidParams.AddNested("Headers", err.(request.ErrInvalidParams))
10118		}
10119	}
10120
10121	if invalidParams.Len() > 0 {
10122		return invalidParams
10123	}
10124	return nil
10125}
10126
10127// SetHeaderBehavior sets the HeaderBehavior field's value.
10128func (s *CachePolicyHeadersConfig) SetHeaderBehavior(v string) *CachePolicyHeadersConfig {
10129	s.HeaderBehavior = &v
10130	return s
10131}
10132
10133// SetHeaders sets the Headers field's value.
10134func (s *CachePolicyHeadersConfig) SetHeaders(v *Headers) *CachePolicyHeadersConfig {
10135	s.Headers = v
10136	return s
10137}
10138
10139// A list of cache policies.
10140type CachePolicyList struct {
10141	_ struct{} `type:"structure"`
10142
10143	// Contains the cache policies in the list.
10144	Items []*CachePolicySummary `locationNameList:"CachePolicySummary" type:"list"`
10145
10146	// The maximum number of cache policies requested.
10147	//
10148	// MaxItems is a required field
10149	MaxItems *int64 `type:"integer" required:"true"`
10150
10151	// If there are more items in the list than are in this response, this element
10152	// is present. It contains the value that you should use in the Marker field
10153	// of a subsequent request to continue listing cache policies where you left
10154	// off.
10155	NextMarker *string `type:"string"`
10156
10157	// The total number of cache policies returned in the response.
10158	//
10159	// Quantity is a required field
10160	Quantity *int64 `type:"integer" required:"true"`
10161}
10162
10163// String returns the string representation
10164func (s CachePolicyList) String() string {
10165	return awsutil.Prettify(s)
10166}
10167
10168// GoString returns the string representation
10169func (s CachePolicyList) GoString() string {
10170	return s.String()
10171}
10172
10173// SetItems sets the Items field's value.
10174func (s *CachePolicyList) SetItems(v []*CachePolicySummary) *CachePolicyList {
10175	s.Items = v
10176	return s
10177}
10178
10179// SetMaxItems sets the MaxItems field's value.
10180func (s *CachePolicyList) SetMaxItems(v int64) *CachePolicyList {
10181	s.MaxItems = &v
10182	return s
10183}
10184
10185// SetNextMarker sets the NextMarker field's value.
10186func (s *CachePolicyList) SetNextMarker(v string) *CachePolicyList {
10187	s.NextMarker = &v
10188	return s
10189}
10190
10191// SetQuantity sets the Quantity field's value.
10192func (s *CachePolicyList) SetQuantity(v int64) *CachePolicyList {
10193	s.Quantity = &v
10194	return s
10195}
10196
10197// An object that determines whether any URL query strings in viewer requests
10198// (and if so, which query strings) are included in the cache key and automatically
10199// included in requests that CloudFront sends to the origin.
10200type CachePolicyQueryStringsConfig struct {
10201	_ struct{} `type:"structure"`
10202
10203	// Determines whether any URL query strings in viewer requests are included
10204	// in the cache key and automatically included in requests that CloudFront sends
10205	// to the origin. Valid values are:
10206	//
10207	//    * none – Query strings in viewer requests are not included in the cache
10208	//    key and are not automatically included in requests that CloudFront sends
10209	//    to the origin. Even when this field is set to none, any query strings
10210	//    that are listed in an OriginRequestPolicy are included in origin requests.
10211	//
10212	//    * whitelist – The query strings in viewer requests that are listed in
10213	//    the QueryStringNames type are included in the cache key and automatically
10214	//    included in requests that CloudFront sends to the origin.
10215	//
10216	//    * allExcept – All query strings in viewer requests that are not listed
10217	//    in the QueryStringNames type are included in the cache key and automatically
10218	//    included in requests that CloudFront sends to the origin.
10219	//
10220	//    * all – All query strings in viewer requests are included in the cache
10221	//    key and are automatically included in requests that CloudFront sends to
10222	//    the origin.
10223	//
10224	// QueryStringBehavior is a required field
10225	QueryStringBehavior *string `type:"string" required:"true" enum:"CachePolicyQueryStringBehavior"`
10226
10227	// Contains the specific query strings in viewer requests that either are or
10228	// are not included in the cache key and automatically included in requests
10229	// that CloudFront sends to the origin. The behavior depends on whether the
10230	// QueryStringBehavior field in the CachePolicyQueryStringsConfig type is set
10231	// to whitelist (the listed query strings are included) or allExcept (the listed
10232	// query strings are not included, but all other query strings are).
10233	QueryStrings *QueryStringNames `type:"structure"`
10234}
10235
10236// String returns the string representation
10237func (s CachePolicyQueryStringsConfig) String() string {
10238	return awsutil.Prettify(s)
10239}
10240
10241// GoString returns the string representation
10242func (s CachePolicyQueryStringsConfig) GoString() string {
10243	return s.String()
10244}
10245
10246// Validate inspects the fields of the type to determine if they are valid.
10247func (s *CachePolicyQueryStringsConfig) Validate() error {
10248	invalidParams := request.ErrInvalidParams{Context: "CachePolicyQueryStringsConfig"}
10249	if s.QueryStringBehavior == nil {
10250		invalidParams.Add(request.NewErrParamRequired("QueryStringBehavior"))
10251	}
10252	if s.QueryStrings != nil {
10253		if err := s.QueryStrings.Validate(); err != nil {
10254			invalidParams.AddNested("QueryStrings", err.(request.ErrInvalidParams))
10255		}
10256	}
10257
10258	if invalidParams.Len() > 0 {
10259		return invalidParams
10260	}
10261	return nil
10262}
10263
10264// SetQueryStringBehavior sets the QueryStringBehavior field's value.
10265func (s *CachePolicyQueryStringsConfig) SetQueryStringBehavior(v string) *CachePolicyQueryStringsConfig {
10266	s.QueryStringBehavior = &v
10267	return s
10268}
10269
10270// SetQueryStrings sets the QueryStrings field's value.
10271func (s *CachePolicyQueryStringsConfig) SetQueryStrings(v *QueryStringNames) *CachePolicyQueryStringsConfig {
10272	s.QueryStrings = v
10273	return s
10274}
10275
10276// Contains a cache policy.
10277type CachePolicySummary struct {
10278	_ struct{} `type:"structure"`
10279
10280	// The cache policy.
10281	//
10282	// CachePolicy is a required field
10283	CachePolicy *CachePolicy `type:"structure" required:"true"`
10284
10285	// The type of cache policy, either managed (created by Amazon Web Services)
10286	// or custom (created in this account).
10287	//
10288	// Type is a required field
10289	Type *string `type:"string" required:"true" enum:"CachePolicyType"`
10290}
10291
10292// String returns the string representation
10293func (s CachePolicySummary) String() string {
10294	return awsutil.Prettify(s)
10295}
10296
10297// GoString returns the string representation
10298func (s CachePolicySummary) GoString() string {
10299	return s.String()
10300}
10301
10302// SetCachePolicy sets the CachePolicy field's value.
10303func (s *CachePolicySummary) SetCachePolicy(v *CachePolicy) *CachePolicySummary {
10304	s.CachePolicy = v
10305	return s
10306}
10307
10308// SetType sets the Type field's value.
10309func (s *CachePolicySummary) SetType(v string) *CachePolicySummary {
10310	s.Type = &v
10311	return s
10312}
10313
10314// A complex type that controls whether CloudFront caches the response to requests
10315// using the specified HTTP methods. There are two choices:
10316//
10317//    * CloudFront caches responses to GET and HEAD requests.
10318//
10319//    * CloudFront caches responses to GET, HEAD, and OPTIONS requests.
10320//
10321// If you pick the second choice for your Amazon S3 Origin, you may need to
10322// forward Access-Control-Request-Method, Access-Control-Request-Headers, and
10323// Origin headers for the responses to be cached correctly.
10324type CachedMethods struct {
10325	_ struct{} `type:"structure"`
10326
10327	// A complex type that contains the HTTP methods that you want CloudFront to
10328	// cache responses to.
10329	//
10330	// Items is a required field
10331	Items []*string `locationNameList:"Method" type:"list" required:"true"`
10332
10333	// The number of HTTP methods for which you want CloudFront to cache responses.
10334	// Valid values are 2 (for caching responses to GET and HEAD requests) and 3
10335	// (for caching responses to GET, HEAD, and OPTIONS requests).
10336	//
10337	// Quantity is a required field
10338	Quantity *int64 `type:"integer" required:"true"`
10339}
10340
10341// String returns the string representation
10342func (s CachedMethods) String() string {
10343	return awsutil.Prettify(s)
10344}
10345
10346// GoString returns the string representation
10347func (s CachedMethods) GoString() string {
10348	return s.String()
10349}
10350
10351// Validate inspects the fields of the type to determine if they are valid.
10352func (s *CachedMethods) Validate() error {
10353	invalidParams := request.ErrInvalidParams{Context: "CachedMethods"}
10354	if s.Items == nil {
10355		invalidParams.Add(request.NewErrParamRequired("Items"))
10356	}
10357	if s.Quantity == nil {
10358		invalidParams.Add(request.NewErrParamRequired("Quantity"))
10359	}
10360
10361	if invalidParams.Len() > 0 {
10362		return invalidParams
10363	}
10364	return nil
10365}
10366
10367// SetItems sets the Items field's value.
10368func (s *CachedMethods) SetItems(v []*string) *CachedMethods {
10369	s.Items = v
10370	return s
10371}
10372
10373// SetQuantity sets the Quantity field's value.
10374func (s *CachedMethods) SetQuantity(v int64) *CachedMethods {
10375	s.Quantity = &v
10376	return s
10377}
10378
10379// An alias (also called a CNAME) and the CloudFront distribution and Amazon
10380// Web Services account ID that it’s associated with. The distribution and
10381// account IDs are partially hidden, which allows you to identify the distributions
10382// and accounts that you own, but helps to protect the information of ones that
10383// you don’t own.
10384type ConflictingAlias struct {
10385	_ struct{} `type:"structure"`
10386
10387	// The (partially hidden) ID of the Amazon Web Services account that owns the
10388	// distribution that’s associated with the alias.
10389	AccountId *string `type:"string"`
10390
10391	// An alias (also called a CNAME).
10392	Alias *string `type:"string"`
10393
10394	// The (partially hidden) ID of the CloudFront distribution associated with
10395	// the alias.
10396	DistributionId *string `type:"string"`
10397}
10398
10399// String returns the string representation
10400func (s ConflictingAlias) String() string {
10401	return awsutil.Prettify(s)
10402}
10403
10404// GoString returns the string representation
10405func (s ConflictingAlias) GoString() string {
10406	return s.String()
10407}
10408
10409// SetAccountId sets the AccountId field's value.
10410func (s *ConflictingAlias) SetAccountId(v string) *ConflictingAlias {
10411	s.AccountId = &v
10412	return s
10413}
10414
10415// SetAlias sets the Alias field's value.
10416func (s *ConflictingAlias) SetAlias(v string) *ConflictingAlias {
10417	s.Alias = &v
10418	return s
10419}
10420
10421// SetDistributionId sets the DistributionId field's value.
10422func (s *ConflictingAlias) SetDistributionId(v string) *ConflictingAlias {
10423	s.DistributionId = &v
10424	return s
10425}
10426
10427// A list of aliases (also called CNAMEs) and the CloudFront distributions and
10428// Amazon Web Services accounts that they are associated with. In the list,
10429// the distribution and account IDs are partially hidden, which allows you to
10430// identify the distributions and accounts that you own, but helps to protect
10431// the information of ones that you don’t own.
10432type ConflictingAliasesList struct {
10433	_ struct{} `type:"structure"`
10434
10435	// Contains the conflicting aliases in the list.
10436	Items []*ConflictingAlias `locationNameList:"ConflictingAlias" type:"list"`
10437
10438	// The maximum number of conflicting aliases requested.
10439	MaxItems *int64 `type:"integer"`
10440
10441	// If there are more items in the list than are in this response, this element
10442	// is present. It contains the value that you should use in the Marker field
10443	// of a subsequent request to continue listing conflicting aliases where you
10444	// left off.
10445	NextMarker *string `type:"string"`
10446
10447	// The number of conflicting aliases returned in the response.
10448	Quantity *int64 `type:"integer"`
10449}
10450
10451// String returns the string representation
10452func (s ConflictingAliasesList) String() string {
10453	return awsutil.Prettify(s)
10454}
10455
10456// GoString returns the string representation
10457func (s ConflictingAliasesList) GoString() string {
10458	return s.String()
10459}
10460
10461// SetItems sets the Items field's value.
10462func (s *ConflictingAliasesList) SetItems(v []*ConflictingAlias) *ConflictingAliasesList {
10463	s.Items = v
10464	return s
10465}
10466
10467// SetMaxItems sets the MaxItems field's value.
10468func (s *ConflictingAliasesList) SetMaxItems(v int64) *ConflictingAliasesList {
10469	s.MaxItems = &v
10470	return s
10471}
10472
10473// SetNextMarker sets the NextMarker field's value.
10474func (s *ConflictingAliasesList) SetNextMarker(v string) *ConflictingAliasesList {
10475	s.NextMarker = &v
10476	return s
10477}
10478
10479// SetQuantity sets the Quantity field's value.
10480func (s *ConflictingAliasesList) SetQuantity(v int64) *ConflictingAliasesList {
10481	s.Quantity = &v
10482	return s
10483}
10484
10485// A field-level encryption content type profile.
10486type ContentTypeProfile struct {
10487	_ struct{} `type:"structure"`
10488
10489	// The content type for a field-level encryption content type-profile mapping.
10490	//
10491	// ContentType is a required field
10492	ContentType *string `type:"string" required:"true"`
10493
10494	// The format for a field-level encryption content type-profile mapping.
10495	//
10496	// Format is a required field
10497	Format *string `type:"string" required:"true" enum:"Format"`
10498
10499	// The profile ID for a field-level encryption content type-profile mapping.
10500	ProfileId *string `type:"string"`
10501}
10502
10503// String returns the string representation
10504func (s ContentTypeProfile) String() string {
10505	return awsutil.Prettify(s)
10506}
10507
10508// GoString returns the string representation
10509func (s ContentTypeProfile) GoString() string {
10510	return s.String()
10511}
10512
10513// Validate inspects the fields of the type to determine if they are valid.
10514func (s *ContentTypeProfile) Validate() error {
10515	invalidParams := request.ErrInvalidParams{Context: "ContentTypeProfile"}
10516	if s.ContentType == nil {
10517		invalidParams.Add(request.NewErrParamRequired("ContentType"))
10518	}
10519	if s.Format == nil {
10520		invalidParams.Add(request.NewErrParamRequired("Format"))
10521	}
10522
10523	if invalidParams.Len() > 0 {
10524		return invalidParams
10525	}
10526	return nil
10527}
10528
10529// SetContentType sets the ContentType field's value.
10530func (s *ContentTypeProfile) SetContentType(v string) *ContentTypeProfile {
10531	s.ContentType = &v
10532	return s
10533}
10534
10535// SetFormat sets the Format field's value.
10536func (s *ContentTypeProfile) SetFormat(v string) *ContentTypeProfile {
10537	s.Format = &v
10538	return s
10539}
10540
10541// SetProfileId sets the ProfileId field's value.
10542func (s *ContentTypeProfile) SetProfileId(v string) *ContentTypeProfile {
10543	s.ProfileId = &v
10544	return s
10545}
10546
10547// The configuration for a field-level encryption content type-profile mapping.
10548type ContentTypeProfileConfig struct {
10549	_ struct{} `type:"structure"`
10550
10551	// The configuration for a field-level encryption content type-profile.
10552	ContentTypeProfiles *ContentTypeProfiles `type:"structure"`
10553
10554	// The setting in a field-level encryption content type-profile mapping that
10555	// specifies what to do when an unknown content type is provided for the profile.
10556	// If true, content is forwarded without being encrypted when the content type
10557	// is unknown. If false (the default), an error is returned when the content
10558	// type is unknown.
10559	//
10560	// ForwardWhenContentTypeIsUnknown is a required field
10561	ForwardWhenContentTypeIsUnknown *bool `type:"boolean" required:"true"`
10562}
10563
10564// String returns the string representation
10565func (s ContentTypeProfileConfig) String() string {
10566	return awsutil.Prettify(s)
10567}
10568
10569// GoString returns the string representation
10570func (s ContentTypeProfileConfig) GoString() string {
10571	return s.String()
10572}
10573
10574// Validate inspects the fields of the type to determine if they are valid.
10575func (s *ContentTypeProfileConfig) Validate() error {
10576	invalidParams := request.ErrInvalidParams{Context: "ContentTypeProfileConfig"}
10577	if s.ForwardWhenContentTypeIsUnknown == nil {
10578		invalidParams.Add(request.NewErrParamRequired("ForwardWhenContentTypeIsUnknown"))
10579	}
10580	if s.ContentTypeProfiles != nil {
10581		if err := s.ContentTypeProfiles.Validate(); err != nil {
10582			invalidParams.AddNested("ContentTypeProfiles", err.(request.ErrInvalidParams))
10583		}
10584	}
10585
10586	if invalidParams.Len() > 0 {
10587		return invalidParams
10588	}
10589	return nil
10590}
10591
10592// SetContentTypeProfiles sets the ContentTypeProfiles field's value.
10593func (s *ContentTypeProfileConfig) SetContentTypeProfiles(v *ContentTypeProfiles) *ContentTypeProfileConfig {
10594	s.ContentTypeProfiles = v
10595	return s
10596}
10597
10598// SetForwardWhenContentTypeIsUnknown sets the ForwardWhenContentTypeIsUnknown field's value.
10599func (s *ContentTypeProfileConfig) SetForwardWhenContentTypeIsUnknown(v bool) *ContentTypeProfileConfig {
10600	s.ForwardWhenContentTypeIsUnknown = &v
10601	return s
10602}
10603
10604// Field-level encryption content type-profile.
10605type ContentTypeProfiles struct {
10606	_ struct{} `type:"structure"`
10607
10608	// Items in a field-level encryption content type-profile mapping.
10609	Items []*ContentTypeProfile `locationNameList:"ContentTypeProfile" type:"list"`
10610
10611	// The number of field-level encryption content type-profile mappings.
10612	//
10613	// Quantity is a required field
10614	Quantity *int64 `type:"integer" required:"true"`
10615}
10616
10617// String returns the string representation
10618func (s ContentTypeProfiles) String() string {
10619	return awsutil.Prettify(s)
10620}
10621
10622// GoString returns the string representation
10623func (s ContentTypeProfiles) GoString() string {
10624	return s.String()
10625}
10626
10627// Validate inspects the fields of the type to determine if they are valid.
10628func (s *ContentTypeProfiles) Validate() error {
10629	invalidParams := request.ErrInvalidParams{Context: "ContentTypeProfiles"}
10630	if s.Quantity == nil {
10631		invalidParams.Add(request.NewErrParamRequired("Quantity"))
10632	}
10633	if s.Items != nil {
10634		for i, v := range s.Items {
10635			if v == nil {
10636				continue
10637			}
10638			if err := v.Validate(); err != nil {
10639				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
10640			}
10641		}
10642	}
10643
10644	if invalidParams.Len() > 0 {
10645		return invalidParams
10646	}
10647	return nil
10648}
10649
10650// SetItems sets the Items field's value.
10651func (s *ContentTypeProfiles) SetItems(v []*ContentTypeProfile) *ContentTypeProfiles {
10652	s.Items = v
10653	return s
10654}
10655
10656// SetQuantity sets the Quantity field's value.
10657func (s *ContentTypeProfiles) SetQuantity(v int64) *ContentTypeProfiles {
10658	s.Quantity = &v
10659	return s
10660}
10661
10662// Contains a list of cookie names.
10663type CookieNames struct {
10664	_ struct{} `type:"structure"`
10665
10666	// A list of cookie names.
10667	Items []*string `locationNameList:"Name" type:"list"`
10668
10669	// The number of cookie names in the Items list.
10670	//
10671	// Quantity is a required field
10672	Quantity *int64 `type:"integer" required:"true"`
10673}
10674
10675// String returns the string representation
10676func (s CookieNames) String() string {
10677	return awsutil.Prettify(s)
10678}
10679
10680// GoString returns the string representation
10681func (s CookieNames) GoString() string {
10682	return s.String()
10683}
10684
10685// Validate inspects the fields of the type to determine if they are valid.
10686func (s *CookieNames) Validate() error {
10687	invalidParams := request.ErrInvalidParams{Context: "CookieNames"}
10688	if s.Quantity == nil {
10689		invalidParams.Add(request.NewErrParamRequired("Quantity"))
10690	}
10691
10692	if invalidParams.Len() > 0 {
10693		return invalidParams
10694	}
10695	return nil
10696}
10697
10698// SetItems sets the Items field's value.
10699func (s *CookieNames) SetItems(v []*string) *CookieNames {
10700	s.Items = v
10701	return s
10702}
10703
10704// SetQuantity sets the Quantity field's value.
10705func (s *CookieNames) SetQuantity(v int64) *CookieNames {
10706	s.Quantity = &v
10707	return s
10708}
10709
10710// This field is deprecated. We recommend that you use a cache policy or an
10711// origin request policy instead of this field.
10712//
10713// If you want to include cookies in the cache key, use CookiesConfig in a cache
10714// policy. See CachePolicy.
10715//
10716// If you want to send cookies to the origin but not include them in the cache
10717// key, use CookiesConfig in an origin request policy. See OriginRequestPolicy.
10718//
10719// A complex type that specifies whether you want CloudFront to forward cookies
10720// to the origin and, if so, which ones. For more information about forwarding
10721// cookies to the origin, see Caching Content Based on Cookies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html)
10722// in the Amazon CloudFront Developer Guide.
10723type CookiePreference struct {
10724	_ struct{} `type:"structure"`
10725
10726	// This field is deprecated. We recommend that you use a cache policy or an
10727	// origin request policy instead of this field.
10728	//
10729	// If you want to include cookies in the cache key, use a cache policy. For
10730	// more information, see Creating cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
10731	// in the Amazon CloudFront Developer Guide.
10732	//
10733	// If you want to send cookies to the origin but not include them in the cache
10734	// key, use origin request policy. For more information, see Creating origin
10735	// request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy)
10736	// in the Amazon CloudFront Developer Guide.
10737	//
10738	// Specifies which cookies to forward to the origin for this cache behavior:
10739	// all, none, or the list of cookies specified in the WhitelistedNames complex
10740	// type.
10741	//
10742	// Amazon S3 doesn't process cookies. When the cache behavior is forwarding
10743	// requests to an Amazon S3 origin, specify none for the Forward element.
10744	//
10745	// Forward is a required field
10746	Forward *string `type:"string" required:"true" enum:"ItemSelection"`
10747
10748	// This field is deprecated. We recommend that you use a cache policy or an
10749	// origin request policy instead of this field.
10750	//
10751	// If you want to include cookies in the cache key, use a cache policy. For
10752	// more information, see Creating cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
10753	// in the Amazon CloudFront Developer Guide.
10754	//
10755	// If you want to send cookies to the origin but not include them in the cache
10756	// key, use an origin request policy. For more information, see Creating origin
10757	// request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy)
10758	// in the Amazon CloudFront Developer Guide.
10759	//
10760	// Required if you specify whitelist for the value of Forward. A complex type
10761	// that specifies how many different cookies you want CloudFront to forward
10762	// to the origin for this cache behavior and, if you want to forward selected
10763	// cookies, the names of those cookies.
10764	//
10765	// If you specify all or none for the value of Forward, omit WhitelistedNames.
10766	// If you change the value of Forward from whitelist to all or none and you
10767	// don't delete the WhitelistedNames element and its child elements, CloudFront
10768	// deletes them automatically.
10769	//
10770	// For the current limit on the number of cookie names that you can whitelist
10771	// for each cache behavior, see CloudFront Limits (https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront)
10772	// in the Amazon Web Services General Reference.
10773	WhitelistedNames *CookieNames `type:"structure"`
10774}
10775
10776// String returns the string representation
10777func (s CookiePreference) String() string {
10778	return awsutil.Prettify(s)
10779}
10780
10781// GoString returns the string representation
10782func (s CookiePreference) GoString() string {
10783	return s.String()
10784}
10785
10786// Validate inspects the fields of the type to determine if they are valid.
10787func (s *CookiePreference) Validate() error {
10788	invalidParams := request.ErrInvalidParams{Context: "CookiePreference"}
10789	if s.Forward == nil {
10790		invalidParams.Add(request.NewErrParamRequired("Forward"))
10791	}
10792	if s.WhitelistedNames != nil {
10793		if err := s.WhitelistedNames.Validate(); err != nil {
10794			invalidParams.AddNested("WhitelistedNames", err.(request.ErrInvalidParams))
10795		}
10796	}
10797
10798	if invalidParams.Len() > 0 {
10799		return invalidParams
10800	}
10801	return nil
10802}
10803
10804// SetForward sets the Forward field's value.
10805func (s *CookiePreference) SetForward(v string) *CookiePreference {
10806	s.Forward = &v
10807	return s
10808}
10809
10810// SetWhitelistedNames sets the WhitelistedNames field's value.
10811func (s *CookiePreference) SetWhitelistedNames(v *CookieNames) *CookiePreference {
10812	s.WhitelistedNames = v
10813	return s
10814}
10815
10816type CreateCachePolicyInput struct {
10817	_ struct{} `locationName:"CreateCachePolicyRequest" type:"structure" payload:"CachePolicyConfig"`
10818
10819	// A cache policy configuration.
10820	//
10821	// CachePolicyConfig is a required field
10822	CachePolicyConfig *CachePolicyConfig `locationName:"CachePolicyConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
10823}
10824
10825// String returns the string representation
10826func (s CreateCachePolicyInput) String() string {
10827	return awsutil.Prettify(s)
10828}
10829
10830// GoString returns the string representation
10831func (s CreateCachePolicyInput) GoString() string {
10832	return s.String()
10833}
10834
10835// Validate inspects the fields of the type to determine if they are valid.
10836func (s *CreateCachePolicyInput) Validate() error {
10837	invalidParams := request.ErrInvalidParams{Context: "CreateCachePolicyInput"}
10838	if s.CachePolicyConfig == nil {
10839		invalidParams.Add(request.NewErrParamRequired("CachePolicyConfig"))
10840	}
10841	if s.CachePolicyConfig != nil {
10842		if err := s.CachePolicyConfig.Validate(); err != nil {
10843			invalidParams.AddNested("CachePolicyConfig", err.(request.ErrInvalidParams))
10844		}
10845	}
10846
10847	if invalidParams.Len() > 0 {
10848		return invalidParams
10849	}
10850	return nil
10851}
10852
10853// SetCachePolicyConfig sets the CachePolicyConfig field's value.
10854func (s *CreateCachePolicyInput) SetCachePolicyConfig(v *CachePolicyConfig) *CreateCachePolicyInput {
10855	s.CachePolicyConfig = v
10856	return s
10857}
10858
10859type CreateCachePolicyOutput struct {
10860	_ struct{} `type:"structure" payload:"CachePolicy"`
10861
10862	// A cache policy.
10863	CachePolicy *CachePolicy `type:"structure"`
10864
10865	// The current version of the cache policy.
10866	ETag *string `location:"header" locationName:"ETag" type:"string"`
10867
10868	// The fully qualified URI of the cache policy just created.
10869	Location *string `location:"header" locationName:"Location" type:"string"`
10870}
10871
10872// String returns the string representation
10873func (s CreateCachePolicyOutput) String() string {
10874	return awsutil.Prettify(s)
10875}
10876
10877// GoString returns the string representation
10878func (s CreateCachePolicyOutput) GoString() string {
10879	return s.String()
10880}
10881
10882// SetCachePolicy sets the CachePolicy field's value.
10883func (s *CreateCachePolicyOutput) SetCachePolicy(v *CachePolicy) *CreateCachePolicyOutput {
10884	s.CachePolicy = v
10885	return s
10886}
10887
10888// SetETag sets the ETag field's value.
10889func (s *CreateCachePolicyOutput) SetETag(v string) *CreateCachePolicyOutput {
10890	s.ETag = &v
10891	return s
10892}
10893
10894// SetLocation sets the Location field's value.
10895func (s *CreateCachePolicyOutput) SetLocation(v string) *CreateCachePolicyOutput {
10896	s.Location = &v
10897	return s
10898}
10899
10900// The request to create a new origin access identity (OAI). An origin access
10901// identity is a special CloudFront user that you can associate with Amazon
10902// S3 origins, so that you can secure all or just some of your Amazon S3 content.
10903// For more information, see Restricting Access to Amazon S3 Content by Using
10904// an Origin Access Identity (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)
10905// in the Amazon CloudFront Developer Guide.
10906type CreateCloudFrontOriginAccessIdentityInput struct {
10907	_ struct{} `locationName:"CreateCloudFrontOriginAccessIdentityRequest" type:"structure" payload:"CloudFrontOriginAccessIdentityConfig"`
10908
10909	// The current configuration information for the identity.
10910	//
10911	// CloudFrontOriginAccessIdentityConfig is a required field
10912	CloudFrontOriginAccessIdentityConfig *OriginAccessIdentityConfig `locationName:"CloudFrontOriginAccessIdentityConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
10913}
10914
10915// String returns the string representation
10916func (s CreateCloudFrontOriginAccessIdentityInput) String() string {
10917	return awsutil.Prettify(s)
10918}
10919
10920// GoString returns the string representation
10921func (s CreateCloudFrontOriginAccessIdentityInput) GoString() string {
10922	return s.String()
10923}
10924
10925// Validate inspects the fields of the type to determine if they are valid.
10926func (s *CreateCloudFrontOriginAccessIdentityInput) Validate() error {
10927	invalidParams := request.ErrInvalidParams{Context: "CreateCloudFrontOriginAccessIdentityInput"}
10928	if s.CloudFrontOriginAccessIdentityConfig == nil {
10929		invalidParams.Add(request.NewErrParamRequired("CloudFrontOriginAccessIdentityConfig"))
10930	}
10931	if s.CloudFrontOriginAccessIdentityConfig != nil {
10932		if err := s.CloudFrontOriginAccessIdentityConfig.Validate(); err != nil {
10933			invalidParams.AddNested("CloudFrontOriginAccessIdentityConfig", err.(request.ErrInvalidParams))
10934		}
10935	}
10936
10937	if invalidParams.Len() > 0 {
10938		return invalidParams
10939	}
10940	return nil
10941}
10942
10943// SetCloudFrontOriginAccessIdentityConfig sets the CloudFrontOriginAccessIdentityConfig field's value.
10944func (s *CreateCloudFrontOriginAccessIdentityInput) SetCloudFrontOriginAccessIdentityConfig(v *OriginAccessIdentityConfig) *CreateCloudFrontOriginAccessIdentityInput {
10945	s.CloudFrontOriginAccessIdentityConfig = v
10946	return s
10947}
10948
10949// The returned result of the corresponding request.
10950type CreateCloudFrontOriginAccessIdentityOutput struct {
10951	_ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentity"`
10952
10953	// The origin access identity's information.
10954	CloudFrontOriginAccessIdentity *OriginAccessIdentity `type:"structure"`
10955
10956	// The current version of the origin access identity created.
10957	ETag *string `location:"header" locationName:"ETag" type:"string"`
10958
10959	// The fully qualified URI of the new origin access identity just created.
10960	Location *string `location:"header" locationName:"Location" type:"string"`
10961}
10962
10963// String returns the string representation
10964func (s CreateCloudFrontOriginAccessIdentityOutput) String() string {
10965	return awsutil.Prettify(s)
10966}
10967
10968// GoString returns the string representation
10969func (s CreateCloudFrontOriginAccessIdentityOutput) GoString() string {
10970	return s.String()
10971}
10972
10973// SetCloudFrontOriginAccessIdentity sets the CloudFrontOriginAccessIdentity field's value.
10974func (s *CreateCloudFrontOriginAccessIdentityOutput) SetCloudFrontOriginAccessIdentity(v *OriginAccessIdentity) *CreateCloudFrontOriginAccessIdentityOutput {
10975	s.CloudFrontOriginAccessIdentity = v
10976	return s
10977}
10978
10979// SetETag sets the ETag field's value.
10980func (s *CreateCloudFrontOriginAccessIdentityOutput) SetETag(v string) *CreateCloudFrontOriginAccessIdentityOutput {
10981	s.ETag = &v
10982	return s
10983}
10984
10985// SetLocation sets the Location field's value.
10986func (s *CreateCloudFrontOriginAccessIdentityOutput) SetLocation(v string) *CreateCloudFrontOriginAccessIdentityOutput {
10987	s.Location = &v
10988	return s
10989}
10990
10991// The request to create a new distribution.
10992type CreateDistributionInput struct {
10993	_ struct{} `locationName:"CreateDistributionRequest" type:"structure" payload:"DistributionConfig"`
10994
10995	// The distribution's configuration information.
10996	//
10997	// DistributionConfig is a required field
10998	DistributionConfig *DistributionConfig `locationName:"DistributionConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
10999}
11000
11001// String returns the string representation
11002func (s CreateDistributionInput) String() string {
11003	return awsutil.Prettify(s)
11004}
11005
11006// GoString returns the string representation
11007func (s CreateDistributionInput) GoString() string {
11008	return s.String()
11009}
11010
11011// Validate inspects the fields of the type to determine if they are valid.
11012func (s *CreateDistributionInput) Validate() error {
11013	invalidParams := request.ErrInvalidParams{Context: "CreateDistributionInput"}
11014	if s.DistributionConfig == nil {
11015		invalidParams.Add(request.NewErrParamRequired("DistributionConfig"))
11016	}
11017	if s.DistributionConfig != nil {
11018		if err := s.DistributionConfig.Validate(); err != nil {
11019			invalidParams.AddNested("DistributionConfig", err.(request.ErrInvalidParams))
11020		}
11021	}
11022
11023	if invalidParams.Len() > 0 {
11024		return invalidParams
11025	}
11026	return nil
11027}
11028
11029// SetDistributionConfig sets the DistributionConfig field's value.
11030func (s *CreateDistributionInput) SetDistributionConfig(v *DistributionConfig) *CreateDistributionInput {
11031	s.DistributionConfig = v
11032	return s
11033}
11034
11035// The returned result of the corresponding request.
11036type CreateDistributionOutput struct {
11037	_ struct{} `type:"structure" payload:"Distribution"`
11038
11039	// The distribution's information.
11040	Distribution *Distribution `type:"structure"`
11041
11042	// The current version of the distribution created.
11043	ETag *string `location:"header" locationName:"ETag" type:"string"`
11044
11045	// The fully qualified URI of the new distribution resource just created.
11046	Location *string `location:"header" locationName:"Location" type:"string"`
11047}
11048
11049// String returns the string representation
11050func (s CreateDistributionOutput) String() string {
11051	return awsutil.Prettify(s)
11052}
11053
11054// GoString returns the string representation
11055func (s CreateDistributionOutput) GoString() string {
11056	return s.String()
11057}
11058
11059// SetDistribution sets the Distribution field's value.
11060func (s *CreateDistributionOutput) SetDistribution(v *Distribution) *CreateDistributionOutput {
11061	s.Distribution = v
11062	return s
11063}
11064
11065// SetETag sets the ETag field's value.
11066func (s *CreateDistributionOutput) SetETag(v string) *CreateDistributionOutput {
11067	s.ETag = &v
11068	return s
11069}
11070
11071// SetLocation sets the Location field's value.
11072func (s *CreateDistributionOutput) SetLocation(v string) *CreateDistributionOutput {
11073	s.Location = &v
11074	return s
11075}
11076
11077// The request to create a new distribution with tags.
11078type CreateDistributionWithTagsInput struct {
11079	_ struct{} `locationName:"CreateDistributionWithTagsRequest" type:"structure" payload:"DistributionConfigWithTags"`
11080
11081	// The distribution's configuration information.
11082	//
11083	// DistributionConfigWithTags is a required field
11084	DistributionConfigWithTags *DistributionConfigWithTags `locationName:"DistributionConfigWithTags" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
11085}
11086
11087// String returns the string representation
11088func (s CreateDistributionWithTagsInput) String() string {
11089	return awsutil.Prettify(s)
11090}
11091
11092// GoString returns the string representation
11093func (s CreateDistributionWithTagsInput) GoString() string {
11094	return s.String()
11095}
11096
11097// Validate inspects the fields of the type to determine if they are valid.
11098func (s *CreateDistributionWithTagsInput) Validate() error {
11099	invalidParams := request.ErrInvalidParams{Context: "CreateDistributionWithTagsInput"}
11100	if s.DistributionConfigWithTags == nil {
11101		invalidParams.Add(request.NewErrParamRequired("DistributionConfigWithTags"))
11102	}
11103	if s.DistributionConfigWithTags != nil {
11104		if err := s.DistributionConfigWithTags.Validate(); err != nil {
11105			invalidParams.AddNested("DistributionConfigWithTags", err.(request.ErrInvalidParams))
11106		}
11107	}
11108
11109	if invalidParams.Len() > 0 {
11110		return invalidParams
11111	}
11112	return nil
11113}
11114
11115// SetDistributionConfigWithTags sets the DistributionConfigWithTags field's value.
11116func (s *CreateDistributionWithTagsInput) SetDistributionConfigWithTags(v *DistributionConfigWithTags) *CreateDistributionWithTagsInput {
11117	s.DistributionConfigWithTags = v
11118	return s
11119}
11120
11121// The returned result of the corresponding request.
11122type CreateDistributionWithTagsOutput struct {
11123	_ struct{} `type:"structure" payload:"Distribution"`
11124
11125	// The distribution's information.
11126	Distribution *Distribution `type:"structure"`
11127
11128	// The current version of the distribution created.
11129	ETag *string `location:"header" locationName:"ETag" type:"string"`
11130
11131	// The fully qualified URI of the new distribution resource just created.
11132	Location *string `location:"header" locationName:"Location" type:"string"`
11133}
11134
11135// String returns the string representation
11136func (s CreateDistributionWithTagsOutput) String() string {
11137	return awsutil.Prettify(s)
11138}
11139
11140// GoString returns the string representation
11141func (s CreateDistributionWithTagsOutput) GoString() string {
11142	return s.String()
11143}
11144
11145// SetDistribution sets the Distribution field's value.
11146func (s *CreateDistributionWithTagsOutput) SetDistribution(v *Distribution) *CreateDistributionWithTagsOutput {
11147	s.Distribution = v
11148	return s
11149}
11150
11151// SetETag sets the ETag field's value.
11152func (s *CreateDistributionWithTagsOutput) SetETag(v string) *CreateDistributionWithTagsOutput {
11153	s.ETag = &v
11154	return s
11155}
11156
11157// SetLocation sets the Location field's value.
11158func (s *CreateDistributionWithTagsOutput) SetLocation(v string) *CreateDistributionWithTagsOutput {
11159	s.Location = &v
11160	return s
11161}
11162
11163type CreateFieldLevelEncryptionConfigInput struct {
11164	_ struct{} `locationName:"CreateFieldLevelEncryptionConfigRequest" type:"structure" payload:"FieldLevelEncryptionConfig"`
11165
11166	// The request to create a new field-level encryption configuration.
11167	//
11168	// FieldLevelEncryptionConfig is a required field
11169	FieldLevelEncryptionConfig *FieldLevelEncryptionConfig `locationName:"FieldLevelEncryptionConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
11170}
11171
11172// String returns the string representation
11173func (s CreateFieldLevelEncryptionConfigInput) String() string {
11174	return awsutil.Prettify(s)
11175}
11176
11177// GoString returns the string representation
11178func (s CreateFieldLevelEncryptionConfigInput) GoString() string {
11179	return s.String()
11180}
11181
11182// Validate inspects the fields of the type to determine if they are valid.
11183func (s *CreateFieldLevelEncryptionConfigInput) Validate() error {
11184	invalidParams := request.ErrInvalidParams{Context: "CreateFieldLevelEncryptionConfigInput"}
11185	if s.FieldLevelEncryptionConfig == nil {
11186		invalidParams.Add(request.NewErrParamRequired("FieldLevelEncryptionConfig"))
11187	}
11188	if s.FieldLevelEncryptionConfig != nil {
11189		if err := s.FieldLevelEncryptionConfig.Validate(); err != nil {
11190			invalidParams.AddNested("FieldLevelEncryptionConfig", err.(request.ErrInvalidParams))
11191		}
11192	}
11193
11194	if invalidParams.Len() > 0 {
11195		return invalidParams
11196	}
11197	return nil
11198}
11199
11200// SetFieldLevelEncryptionConfig sets the FieldLevelEncryptionConfig field's value.
11201func (s *CreateFieldLevelEncryptionConfigInput) SetFieldLevelEncryptionConfig(v *FieldLevelEncryptionConfig) *CreateFieldLevelEncryptionConfigInput {
11202	s.FieldLevelEncryptionConfig = v
11203	return s
11204}
11205
11206type CreateFieldLevelEncryptionConfigOutput struct {
11207	_ struct{} `type:"structure" payload:"FieldLevelEncryption"`
11208
11209	// The current version of the field level encryption configuration. For example:
11210	// E2QWRUHAPOMQZL.
11211	ETag *string `location:"header" locationName:"ETag" type:"string"`
11212
11213	// Returned when you create a new field-level encryption configuration.
11214	FieldLevelEncryption *FieldLevelEncryption `type:"structure"`
11215
11216	// The fully qualified URI of the new configuration resource just created.
11217	Location *string `location:"header" locationName:"Location" type:"string"`
11218}
11219
11220// String returns the string representation
11221func (s CreateFieldLevelEncryptionConfigOutput) String() string {
11222	return awsutil.Prettify(s)
11223}
11224
11225// GoString returns the string representation
11226func (s CreateFieldLevelEncryptionConfigOutput) GoString() string {
11227	return s.String()
11228}
11229
11230// SetETag sets the ETag field's value.
11231func (s *CreateFieldLevelEncryptionConfigOutput) SetETag(v string) *CreateFieldLevelEncryptionConfigOutput {
11232	s.ETag = &v
11233	return s
11234}
11235
11236// SetFieldLevelEncryption sets the FieldLevelEncryption field's value.
11237func (s *CreateFieldLevelEncryptionConfigOutput) SetFieldLevelEncryption(v *FieldLevelEncryption) *CreateFieldLevelEncryptionConfigOutput {
11238	s.FieldLevelEncryption = v
11239	return s
11240}
11241
11242// SetLocation sets the Location field's value.
11243func (s *CreateFieldLevelEncryptionConfigOutput) SetLocation(v string) *CreateFieldLevelEncryptionConfigOutput {
11244	s.Location = &v
11245	return s
11246}
11247
11248type CreateFieldLevelEncryptionProfileInput struct {
11249	_ struct{} `locationName:"CreateFieldLevelEncryptionProfileRequest" type:"structure" payload:"FieldLevelEncryptionProfileConfig"`
11250
11251	// The request to create a field-level encryption profile.
11252	//
11253	// FieldLevelEncryptionProfileConfig is a required field
11254	FieldLevelEncryptionProfileConfig *FieldLevelEncryptionProfileConfig `locationName:"FieldLevelEncryptionProfileConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
11255}
11256
11257// String returns the string representation
11258func (s CreateFieldLevelEncryptionProfileInput) String() string {
11259	return awsutil.Prettify(s)
11260}
11261
11262// GoString returns the string representation
11263func (s CreateFieldLevelEncryptionProfileInput) GoString() string {
11264	return s.String()
11265}
11266
11267// Validate inspects the fields of the type to determine if they are valid.
11268func (s *CreateFieldLevelEncryptionProfileInput) Validate() error {
11269	invalidParams := request.ErrInvalidParams{Context: "CreateFieldLevelEncryptionProfileInput"}
11270	if s.FieldLevelEncryptionProfileConfig == nil {
11271		invalidParams.Add(request.NewErrParamRequired("FieldLevelEncryptionProfileConfig"))
11272	}
11273	if s.FieldLevelEncryptionProfileConfig != nil {
11274		if err := s.FieldLevelEncryptionProfileConfig.Validate(); err != nil {
11275			invalidParams.AddNested("FieldLevelEncryptionProfileConfig", err.(request.ErrInvalidParams))
11276		}
11277	}
11278
11279	if invalidParams.Len() > 0 {
11280		return invalidParams
11281	}
11282	return nil
11283}
11284
11285// SetFieldLevelEncryptionProfileConfig sets the FieldLevelEncryptionProfileConfig field's value.
11286func (s *CreateFieldLevelEncryptionProfileInput) SetFieldLevelEncryptionProfileConfig(v *FieldLevelEncryptionProfileConfig) *CreateFieldLevelEncryptionProfileInput {
11287	s.FieldLevelEncryptionProfileConfig = v
11288	return s
11289}
11290
11291type CreateFieldLevelEncryptionProfileOutput struct {
11292	_ struct{} `type:"structure" payload:"FieldLevelEncryptionProfile"`
11293
11294	// The current version of the field level encryption profile. For example: E2QWRUHAPOMQZL.
11295	ETag *string `location:"header" locationName:"ETag" type:"string"`
11296
11297	// Returned when you create a new field-level encryption profile.
11298	FieldLevelEncryptionProfile *FieldLevelEncryptionProfile `type:"structure"`
11299
11300	// The fully qualified URI of the new profile resource just created.
11301	Location *string `location:"header" locationName:"Location" type:"string"`
11302}
11303
11304// String returns the string representation
11305func (s CreateFieldLevelEncryptionProfileOutput) String() string {
11306	return awsutil.Prettify(s)
11307}
11308
11309// GoString returns the string representation
11310func (s CreateFieldLevelEncryptionProfileOutput) GoString() string {
11311	return s.String()
11312}
11313
11314// SetETag sets the ETag field's value.
11315func (s *CreateFieldLevelEncryptionProfileOutput) SetETag(v string) *CreateFieldLevelEncryptionProfileOutput {
11316	s.ETag = &v
11317	return s
11318}
11319
11320// SetFieldLevelEncryptionProfile sets the FieldLevelEncryptionProfile field's value.
11321func (s *CreateFieldLevelEncryptionProfileOutput) SetFieldLevelEncryptionProfile(v *FieldLevelEncryptionProfile) *CreateFieldLevelEncryptionProfileOutput {
11322	s.FieldLevelEncryptionProfile = v
11323	return s
11324}
11325
11326// SetLocation sets the Location field's value.
11327func (s *CreateFieldLevelEncryptionProfileOutput) SetLocation(v string) *CreateFieldLevelEncryptionProfileOutput {
11328	s.Location = &v
11329	return s
11330}
11331
11332type CreateFunctionInput struct {
11333	_ struct{} `locationName:"CreateFunctionRequest" type:"structure" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
11334
11335	// The function code. For more information about writing a CloudFront function,
11336	// see Writing function code for CloudFront Functions (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/writing-function-code.html)
11337	// in the Amazon CloudFront Developer Guide.
11338	//
11339	// FunctionCode is automatically base64 encoded/decoded by the SDK.
11340	//
11341	// FunctionCode is a required field
11342	FunctionCode []byte `min:"1" type:"blob" required:"true" sensitive:"true"`
11343
11344	// Configuration information about the function, including an optional comment
11345	// and the function’s runtime.
11346	//
11347	// FunctionConfig is a required field
11348	FunctionConfig *FunctionConfig `type:"structure" required:"true"`
11349
11350	// A name to identify the function.
11351	//
11352	// Name is a required field
11353	Name *string `min:"1" type:"string" required:"true"`
11354}
11355
11356// String returns the string representation
11357func (s CreateFunctionInput) String() string {
11358	return awsutil.Prettify(s)
11359}
11360
11361// GoString returns the string representation
11362func (s CreateFunctionInput) GoString() string {
11363	return s.String()
11364}
11365
11366// Validate inspects the fields of the type to determine if they are valid.
11367func (s *CreateFunctionInput) Validate() error {
11368	invalidParams := request.ErrInvalidParams{Context: "CreateFunctionInput"}
11369	if s.FunctionCode == nil {
11370		invalidParams.Add(request.NewErrParamRequired("FunctionCode"))
11371	}
11372	if s.FunctionCode != nil && len(s.FunctionCode) < 1 {
11373		invalidParams.Add(request.NewErrParamMinLen("FunctionCode", 1))
11374	}
11375	if s.FunctionConfig == nil {
11376		invalidParams.Add(request.NewErrParamRequired("FunctionConfig"))
11377	}
11378	if s.Name == nil {
11379		invalidParams.Add(request.NewErrParamRequired("Name"))
11380	}
11381	if s.Name != nil && len(*s.Name) < 1 {
11382		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
11383	}
11384	if s.FunctionConfig != nil {
11385		if err := s.FunctionConfig.Validate(); err != nil {
11386			invalidParams.AddNested("FunctionConfig", err.(request.ErrInvalidParams))
11387		}
11388	}
11389
11390	if invalidParams.Len() > 0 {
11391		return invalidParams
11392	}
11393	return nil
11394}
11395
11396// SetFunctionCode sets the FunctionCode field's value.
11397func (s *CreateFunctionInput) SetFunctionCode(v []byte) *CreateFunctionInput {
11398	s.FunctionCode = v
11399	return s
11400}
11401
11402// SetFunctionConfig sets the FunctionConfig field's value.
11403func (s *CreateFunctionInput) SetFunctionConfig(v *FunctionConfig) *CreateFunctionInput {
11404	s.FunctionConfig = v
11405	return s
11406}
11407
11408// SetName sets the Name field's value.
11409func (s *CreateFunctionInput) SetName(v string) *CreateFunctionInput {
11410	s.Name = &v
11411	return s
11412}
11413
11414type CreateFunctionOutput struct {
11415	_ struct{} `type:"structure" payload:"FunctionSummary"`
11416
11417	// The version identifier for the current version of the CloudFront function.
11418	ETag *string `location:"header" locationName:"ETag" type:"string"`
11419
11420	// Contains configuration information and metadata about a CloudFront function.
11421	FunctionSummary *FunctionSummary `type:"structure"`
11422
11423	// The URL of the CloudFront function. Use the URL to manage the function with
11424	// the CloudFront API.
11425	Location *string `location:"header" locationName:"Location" type:"string"`
11426}
11427
11428// String returns the string representation
11429func (s CreateFunctionOutput) String() string {
11430	return awsutil.Prettify(s)
11431}
11432
11433// GoString returns the string representation
11434func (s CreateFunctionOutput) GoString() string {
11435	return s.String()
11436}
11437
11438// SetETag sets the ETag field's value.
11439func (s *CreateFunctionOutput) SetETag(v string) *CreateFunctionOutput {
11440	s.ETag = &v
11441	return s
11442}
11443
11444// SetFunctionSummary sets the FunctionSummary field's value.
11445func (s *CreateFunctionOutput) SetFunctionSummary(v *FunctionSummary) *CreateFunctionOutput {
11446	s.FunctionSummary = v
11447	return s
11448}
11449
11450// SetLocation sets the Location field's value.
11451func (s *CreateFunctionOutput) SetLocation(v string) *CreateFunctionOutput {
11452	s.Location = &v
11453	return s
11454}
11455
11456// The request to create an invalidation.
11457type CreateInvalidationInput struct {
11458	_ struct{} `locationName:"CreateInvalidationRequest" type:"structure" payload:"InvalidationBatch"`
11459
11460	// The distribution's id.
11461	//
11462	// DistributionId is a required field
11463	DistributionId *string `location:"uri" locationName:"DistributionId" type:"string" required:"true"`
11464
11465	// The batch information for the invalidation.
11466	//
11467	// InvalidationBatch is a required field
11468	InvalidationBatch *InvalidationBatch `locationName:"InvalidationBatch" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
11469}
11470
11471// String returns the string representation
11472func (s CreateInvalidationInput) String() string {
11473	return awsutil.Prettify(s)
11474}
11475
11476// GoString returns the string representation
11477func (s CreateInvalidationInput) GoString() string {
11478	return s.String()
11479}
11480
11481// Validate inspects the fields of the type to determine if they are valid.
11482func (s *CreateInvalidationInput) Validate() error {
11483	invalidParams := request.ErrInvalidParams{Context: "CreateInvalidationInput"}
11484	if s.DistributionId == nil {
11485		invalidParams.Add(request.NewErrParamRequired("DistributionId"))
11486	}
11487	if s.DistributionId != nil && len(*s.DistributionId) < 1 {
11488		invalidParams.Add(request.NewErrParamMinLen("DistributionId", 1))
11489	}
11490	if s.InvalidationBatch == nil {
11491		invalidParams.Add(request.NewErrParamRequired("InvalidationBatch"))
11492	}
11493	if s.InvalidationBatch != nil {
11494		if err := s.InvalidationBatch.Validate(); err != nil {
11495			invalidParams.AddNested("InvalidationBatch", err.(request.ErrInvalidParams))
11496		}
11497	}
11498
11499	if invalidParams.Len() > 0 {
11500		return invalidParams
11501	}
11502	return nil
11503}
11504
11505// SetDistributionId sets the DistributionId field's value.
11506func (s *CreateInvalidationInput) SetDistributionId(v string) *CreateInvalidationInput {
11507	s.DistributionId = &v
11508	return s
11509}
11510
11511// SetInvalidationBatch sets the InvalidationBatch field's value.
11512func (s *CreateInvalidationInput) SetInvalidationBatch(v *InvalidationBatch) *CreateInvalidationInput {
11513	s.InvalidationBatch = v
11514	return s
11515}
11516
11517// The returned result of the corresponding request.
11518type CreateInvalidationOutput struct {
11519	_ struct{} `type:"structure" payload:"Invalidation"`
11520
11521	// The invalidation's information.
11522	Invalidation *Invalidation `type:"structure"`
11523
11524	// The fully qualified URI of the distribution and invalidation batch request,
11525	// including the Invalidation ID.
11526	Location *string `location:"header" locationName:"Location" type:"string"`
11527}
11528
11529// String returns the string representation
11530func (s CreateInvalidationOutput) String() string {
11531	return awsutil.Prettify(s)
11532}
11533
11534// GoString returns the string representation
11535func (s CreateInvalidationOutput) GoString() string {
11536	return s.String()
11537}
11538
11539// SetInvalidation sets the Invalidation field's value.
11540func (s *CreateInvalidationOutput) SetInvalidation(v *Invalidation) *CreateInvalidationOutput {
11541	s.Invalidation = v
11542	return s
11543}
11544
11545// SetLocation sets the Location field's value.
11546func (s *CreateInvalidationOutput) SetLocation(v string) *CreateInvalidationOutput {
11547	s.Location = &v
11548	return s
11549}
11550
11551type CreateKeyGroupInput struct {
11552	_ struct{} `locationName:"CreateKeyGroupRequest" type:"structure" payload:"KeyGroupConfig"`
11553
11554	// A key group configuration.
11555	//
11556	// KeyGroupConfig is a required field
11557	KeyGroupConfig *KeyGroupConfig `locationName:"KeyGroupConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
11558}
11559
11560// String returns the string representation
11561func (s CreateKeyGroupInput) String() string {
11562	return awsutil.Prettify(s)
11563}
11564
11565// GoString returns the string representation
11566func (s CreateKeyGroupInput) GoString() string {
11567	return s.String()
11568}
11569
11570// Validate inspects the fields of the type to determine if they are valid.
11571func (s *CreateKeyGroupInput) Validate() error {
11572	invalidParams := request.ErrInvalidParams{Context: "CreateKeyGroupInput"}
11573	if s.KeyGroupConfig == nil {
11574		invalidParams.Add(request.NewErrParamRequired("KeyGroupConfig"))
11575	}
11576	if s.KeyGroupConfig != nil {
11577		if err := s.KeyGroupConfig.Validate(); err != nil {
11578			invalidParams.AddNested("KeyGroupConfig", err.(request.ErrInvalidParams))
11579		}
11580	}
11581
11582	if invalidParams.Len() > 0 {
11583		return invalidParams
11584	}
11585	return nil
11586}
11587
11588// SetKeyGroupConfig sets the KeyGroupConfig field's value.
11589func (s *CreateKeyGroupInput) SetKeyGroupConfig(v *KeyGroupConfig) *CreateKeyGroupInput {
11590	s.KeyGroupConfig = v
11591	return s
11592}
11593
11594type CreateKeyGroupOutput struct {
11595	_ struct{} `type:"structure" payload:"KeyGroup"`
11596
11597	// The identifier for this version of the key group.
11598	ETag *string `location:"header" locationName:"ETag" type:"string"`
11599
11600	// The key group that was just created.
11601	KeyGroup *KeyGroup `type:"structure"`
11602
11603	// The URL of the key group.
11604	Location *string `location:"header" locationName:"Location" type:"string"`
11605}
11606
11607// String returns the string representation
11608func (s CreateKeyGroupOutput) String() string {
11609	return awsutil.Prettify(s)
11610}
11611
11612// GoString returns the string representation
11613func (s CreateKeyGroupOutput) GoString() string {
11614	return s.String()
11615}
11616
11617// SetETag sets the ETag field's value.
11618func (s *CreateKeyGroupOutput) SetETag(v string) *CreateKeyGroupOutput {
11619	s.ETag = &v
11620	return s
11621}
11622
11623// SetKeyGroup sets the KeyGroup field's value.
11624func (s *CreateKeyGroupOutput) SetKeyGroup(v *KeyGroup) *CreateKeyGroupOutput {
11625	s.KeyGroup = v
11626	return s
11627}
11628
11629// SetLocation sets the Location field's value.
11630func (s *CreateKeyGroupOutput) SetLocation(v string) *CreateKeyGroupOutput {
11631	s.Location = &v
11632	return s
11633}
11634
11635type CreateMonitoringSubscriptionInput struct {
11636	_ struct{} `locationName:"CreateMonitoringSubscriptionRequest" type:"structure" payload:"MonitoringSubscription"`
11637
11638	// The ID of the distribution that you are enabling metrics for.
11639	//
11640	// DistributionId is a required field
11641	DistributionId *string `location:"uri" locationName:"DistributionId" type:"string" required:"true"`
11642
11643	// A monitoring subscription. This structure contains information about whether
11644	// additional CloudWatch metrics are enabled for a given CloudFront distribution.
11645	//
11646	// MonitoringSubscription is a required field
11647	MonitoringSubscription *MonitoringSubscription `locationName:"MonitoringSubscription" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
11648}
11649
11650// String returns the string representation
11651func (s CreateMonitoringSubscriptionInput) String() string {
11652	return awsutil.Prettify(s)
11653}
11654
11655// GoString returns the string representation
11656func (s CreateMonitoringSubscriptionInput) GoString() string {
11657	return s.String()
11658}
11659
11660// Validate inspects the fields of the type to determine if they are valid.
11661func (s *CreateMonitoringSubscriptionInput) Validate() error {
11662	invalidParams := request.ErrInvalidParams{Context: "CreateMonitoringSubscriptionInput"}
11663	if s.DistributionId == nil {
11664		invalidParams.Add(request.NewErrParamRequired("DistributionId"))
11665	}
11666	if s.DistributionId != nil && len(*s.DistributionId) < 1 {
11667		invalidParams.Add(request.NewErrParamMinLen("DistributionId", 1))
11668	}
11669	if s.MonitoringSubscription == nil {
11670		invalidParams.Add(request.NewErrParamRequired("MonitoringSubscription"))
11671	}
11672	if s.MonitoringSubscription != nil {
11673		if err := s.MonitoringSubscription.Validate(); err != nil {
11674			invalidParams.AddNested("MonitoringSubscription", err.(request.ErrInvalidParams))
11675		}
11676	}
11677
11678	if invalidParams.Len() > 0 {
11679		return invalidParams
11680	}
11681	return nil
11682}
11683
11684// SetDistributionId sets the DistributionId field's value.
11685func (s *CreateMonitoringSubscriptionInput) SetDistributionId(v string) *CreateMonitoringSubscriptionInput {
11686	s.DistributionId = &v
11687	return s
11688}
11689
11690// SetMonitoringSubscription sets the MonitoringSubscription field's value.
11691func (s *CreateMonitoringSubscriptionInput) SetMonitoringSubscription(v *MonitoringSubscription) *CreateMonitoringSubscriptionInput {
11692	s.MonitoringSubscription = v
11693	return s
11694}
11695
11696type CreateMonitoringSubscriptionOutput struct {
11697	_ struct{} `type:"structure" payload:"MonitoringSubscription"`
11698
11699	// A monitoring subscription. This structure contains information about whether
11700	// additional CloudWatch metrics are enabled for a given CloudFront distribution.
11701	MonitoringSubscription *MonitoringSubscription `type:"structure"`
11702}
11703
11704// String returns the string representation
11705func (s CreateMonitoringSubscriptionOutput) String() string {
11706	return awsutil.Prettify(s)
11707}
11708
11709// GoString returns the string representation
11710func (s CreateMonitoringSubscriptionOutput) GoString() string {
11711	return s.String()
11712}
11713
11714// SetMonitoringSubscription sets the MonitoringSubscription field's value.
11715func (s *CreateMonitoringSubscriptionOutput) SetMonitoringSubscription(v *MonitoringSubscription) *CreateMonitoringSubscriptionOutput {
11716	s.MonitoringSubscription = v
11717	return s
11718}
11719
11720type CreateOriginRequestPolicyInput struct {
11721	_ struct{} `locationName:"CreateOriginRequestPolicyRequest" type:"structure" payload:"OriginRequestPolicyConfig"`
11722
11723	// An origin request policy configuration.
11724	//
11725	// OriginRequestPolicyConfig is a required field
11726	OriginRequestPolicyConfig *OriginRequestPolicyConfig `locationName:"OriginRequestPolicyConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
11727}
11728
11729// String returns the string representation
11730func (s CreateOriginRequestPolicyInput) String() string {
11731	return awsutil.Prettify(s)
11732}
11733
11734// GoString returns the string representation
11735func (s CreateOriginRequestPolicyInput) GoString() string {
11736	return s.String()
11737}
11738
11739// Validate inspects the fields of the type to determine if they are valid.
11740func (s *CreateOriginRequestPolicyInput) Validate() error {
11741	invalidParams := request.ErrInvalidParams{Context: "CreateOriginRequestPolicyInput"}
11742	if s.OriginRequestPolicyConfig == nil {
11743		invalidParams.Add(request.NewErrParamRequired("OriginRequestPolicyConfig"))
11744	}
11745	if s.OriginRequestPolicyConfig != nil {
11746		if err := s.OriginRequestPolicyConfig.Validate(); err != nil {
11747			invalidParams.AddNested("OriginRequestPolicyConfig", err.(request.ErrInvalidParams))
11748		}
11749	}
11750
11751	if invalidParams.Len() > 0 {
11752		return invalidParams
11753	}
11754	return nil
11755}
11756
11757// SetOriginRequestPolicyConfig sets the OriginRequestPolicyConfig field's value.
11758func (s *CreateOriginRequestPolicyInput) SetOriginRequestPolicyConfig(v *OriginRequestPolicyConfig) *CreateOriginRequestPolicyInput {
11759	s.OriginRequestPolicyConfig = v
11760	return s
11761}
11762
11763type CreateOriginRequestPolicyOutput struct {
11764	_ struct{} `type:"structure" payload:"OriginRequestPolicy"`
11765
11766	// The current version of the origin request policy.
11767	ETag *string `location:"header" locationName:"ETag" type:"string"`
11768
11769	// The fully qualified URI of the origin request policy just created.
11770	Location *string `location:"header" locationName:"Location" type:"string"`
11771
11772	// An origin request policy.
11773	OriginRequestPolicy *OriginRequestPolicy `type:"structure"`
11774}
11775
11776// String returns the string representation
11777func (s CreateOriginRequestPolicyOutput) String() string {
11778	return awsutil.Prettify(s)
11779}
11780
11781// GoString returns the string representation
11782func (s CreateOriginRequestPolicyOutput) GoString() string {
11783	return s.String()
11784}
11785
11786// SetETag sets the ETag field's value.
11787func (s *CreateOriginRequestPolicyOutput) SetETag(v string) *CreateOriginRequestPolicyOutput {
11788	s.ETag = &v
11789	return s
11790}
11791
11792// SetLocation sets the Location field's value.
11793func (s *CreateOriginRequestPolicyOutput) SetLocation(v string) *CreateOriginRequestPolicyOutput {
11794	s.Location = &v
11795	return s
11796}
11797
11798// SetOriginRequestPolicy sets the OriginRequestPolicy field's value.
11799func (s *CreateOriginRequestPolicyOutput) SetOriginRequestPolicy(v *OriginRequestPolicy) *CreateOriginRequestPolicyOutput {
11800	s.OriginRequestPolicy = v
11801	return s
11802}
11803
11804type CreatePublicKeyInput struct {
11805	_ struct{} `locationName:"CreatePublicKeyRequest" type:"structure" payload:"PublicKeyConfig"`
11806
11807	// A CloudFront public key configuration.
11808	//
11809	// PublicKeyConfig is a required field
11810	PublicKeyConfig *PublicKeyConfig `locationName:"PublicKeyConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
11811}
11812
11813// String returns the string representation
11814func (s CreatePublicKeyInput) String() string {
11815	return awsutil.Prettify(s)
11816}
11817
11818// GoString returns the string representation
11819func (s CreatePublicKeyInput) GoString() string {
11820	return s.String()
11821}
11822
11823// Validate inspects the fields of the type to determine if they are valid.
11824func (s *CreatePublicKeyInput) Validate() error {
11825	invalidParams := request.ErrInvalidParams{Context: "CreatePublicKeyInput"}
11826	if s.PublicKeyConfig == nil {
11827		invalidParams.Add(request.NewErrParamRequired("PublicKeyConfig"))
11828	}
11829	if s.PublicKeyConfig != nil {
11830		if err := s.PublicKeyConfig.Validate(); err != nil {
11831			invalidParams.AddNested("PublicKeyConfig", err.(request.ErrInvalidParams))
11832		}
11833	}
11834
11835	if invalidParams.Len() > 0 {
11836		return invalidParams
11837	}
11838	return nil
11839}
11840
11841// SetPublicKeyConfig sets the PublicKeyConfig field's value.
11842func (s *CreatePublicKeyInput) SetPublicKeyConfig(v *PublicKeyConfig) *CreatePublicKeyInput {
11843	s.PublicKeyConfig = v
11844	return s
11845}
11846
11847type CreatePublicKeyOutput struct {
11848	_ struct{} `type:"structure" payload:"PublicKey"`
11849
11850	// The identifier for this version of the public key.
11851	ETag *string `location:"header" locationName:"ETag" type:"string"`
11852
11853	// The URL of the public key.
11854	Location *string `location:"header" locationName:"Location" type:"string"`
11855
11856	// The public key.
11857	PublicKey *PublicKey `type:"structure"`
11858}
11859
11860// String returns the string representation
11861func (s CreatePublicKeyOutput) String() string {
11862	return awsutil.Prettify(s)
11863}
11864
11865// GoString returns the string representation
11866func (s CreatePublicKeyOutput) GoString() string {
11867	return s.String()
11868}
11869
11870// SetETag sets the ETag field's value.
11871func (s *CreatePublicKeyOutput) SetETag(v string) *CreatePublicKeyOutput {
11872	s.ETag = &v
11873	return s
11874}
11875
11876// SetLocation sets the Location field's value.
11877func (s *CreatePublicKeyOutput) SetLocation(v string) *CreatePublicKeyOutput {
11878	s.Location = &v
11879	return s
11880}
11881
11882// SetPublicKey sets the PublicKey field's value.
11883func (s *CreatePublicKeyOutput) SetPublicKey(v *PublicKey) *CreatePublicKeyOutput {
11884	s.PublicKey = v
11885	return s
11886}
11887
11888type CreateRealtimeLogConfigInput struct {
11889	_ struct{} `locationName:"CreateRealtimeLogConfigRequest" type:"structure" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
11890
11891	// Contains information about the Amazon Kinesis data stream where you are sending
11892	// real-time log data.
11893	//
11894	// EndPoints is a required field
11895	EndPoints []*EndPoint `type:"list" required:"true"`
11896
11897	// A list of fields to include in each real-time log record.
11898	//
11899	// For more information about fields, see Real-time log configuration fields
11900	// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields)
11901	// in the Amazon CloudFront Developer Guide.
11902	//
11903	// Fields is a required field
11904	Fields []*string `locationNameList:"Field" type:"list" required:"true"`
11905
11906	// A unique name to identify this real-time log configuration.
11907	//
11908	// Name is a required field
11909	Name *string `type:"string" required:"true"`
11910
11911	// The sampling rate for this real-time log configuration. The sampling rate
11912	// determines the percentage of viewer requests that are represented in the
11913	// real-time log data. You must provide an integer between 1 and 100, inclusive.
11914	//
11915	// SamplingRate is a required field
11916	SamplingRate *int64 `type:"long" required:"true"`
11917}
11918
11919// String returns the string representation
11920func (s CreateRealtimeLogConfigInput) String() string {
11921	return awsutil.Prettify(s)
11922}
11923
11924// GoString returns the string representation
11925func (s CreateRealtimeLogConfigInput) GoString() string {
11926	return s.String()
11927}
11928
11929// Validate inspects the fields of the type to determine if they are valid.
11930func (s *CreateRealtimeLogConfigInput) Validate() error {
11931	invalidParams := request.ErrInvalidParams{Context: "CreateRealtimeLogConfigInput"}
11932	if s.EndPoints == nil {
11933		invalidParams.Add(request.NewErrParamRequired("EndPoints"))
11934	}
11935	if s.Fields == nil {
11936		invalidParams.Add(request.NewErrParamRequired("Fields"))
11937	}
11938	if s.Name == nil {
11939		invalidParams.Add(request.NewErrParamRequired("Name"))
11940	}
11941	if s.SamplingRate == nil {
11942		invalidParams.Add(request.NewErrParamRequired("SamplingRate"))
11943	}
11944	if s.EndPoints != nil {
11945		for i, v := range s.EndPoints {
11946			if v == nil {
11947				continue
11948			}
11949			if err := v.Validate(); err != nil {
11950				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EndPoints", i), err.(request.ErrInvalidParams))
11951			}
11952		}
11953	}
11954
11955	if invalidParams.Len() > 0 {
11956		return invalidParams
11957	}
11958	return nil
11959}
11960
11961// SetEndPoints sets the EndPoints field's value.
11962func (s *CreateRealtimeLogConfigInput) SetEndPoints(v []*EndPoint) *CreateRealtimeLogConfigInput {
11963	s.EndPoints = v
11964	return s
11965}
11966
11967// SetFields sets the Fields field's value.
11968func (s *CreateRealtimeLogConfigInput) SetFields(v []*string) *CreateRealtimeLogConfigInput {
11969	s.Fields = v
11970	return s
11971}
11972
11973// SetName sets the Name field's value.
11974func (s *CreateRealtimeLogConfigInput) SetName(v string) *CreateRealtimeLogConfigInput {
11975	s.Name = &v
11976	return s
11977}
11978
11979// SetSamplingRate sets the SamplingRate field's value.
11980func (s *CreateRealtimeLogConfigInput) SetSamplingRate(v int64) *CreateRealtimeLogConfigInput {
11981	s.SamplingRate = &v
11982	return s
11983}
11984
11985type CreateRealtimeLogConfigOutput struct {
11986	_ struct{} `type:"structure"`
11987
11988	// A real-time log configuration.
11989	RealtimeLogConfig *RealtimeLogConfig `type:"structure"`
11990}
11991
11992// String returns the string representation
11993func (s CreateRealtimeLogConfigOutput) String() string {
11994	return awsutil.Prettify(s)
11995}
11996
11997// GoString returns the string representation
11998func (s CreateRealtimeLogConfigOutput) GoString() string {
11999	return s.String()
12000}
12001
12002// SetRealtimeLogConfig sets the RealtimeLogConfig field's value.
12003func (s *CreateRealtimeLogConfigOutput) SetRealtimeLogConfig(v *RealtimeLogConfig) *CreateRealtimeLogConfigOutput {
12004	s.RealtimeLogConfig = v
12005	return s
12006}
12007
12008// The request to create a new streaming distribution.
12009type CreateStreamingDistributionInput struct {
12010	_ struct{} `locationName:"CreateStreamingDistributionRequest" type:"structure" payload:"StreamingDistributionConfig"`
12011
12012	// The streaming distribution's configuration information.
12013	//
12014	// StreamingDistributionConfig is a required field
12015	StreamingDistributionConfig *StreamingDistributionConfig `locationName:"StreamingDistributionConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
12016}
12017
12018// String returns the string representation
12019func (s CreateStreamingDistributionInput) String() string {
12020	return awsutil.Prettify(s)
12021}
12022
12023// GoString returns the string representation
12024func (s CreateStreamingDistributionInput) GoString() string {
12025	return s.String()
12026}
12027
12028// Validate inspects the fields of the type to determine if they are valid.
12029func (s *CreateStreamingDistributionInput) Validate() error {
12030	invalidParams := request.ErrInvalidParams{Context: "CreateStreamingDistributionInput"}
12031	if s.StreamingDistributionConfig == nil {
12032		invalidParams.Add(request.NewErrParamRequired("StreamingDistributionConfig"))
12033	}
12034	if s.StreamingDistributionConfig != nil {
12035		if err := s.StreamingDistributionConfig.Validate(); err != nil {
12036			invalidParams.AddNested("StreamingDistributionConfig", err.(request.ErrInvalidParams))
12037		}
12038	}
12039
12040	if invalidParams.Len() > 0 {
12041		return invalidParams
12042	}
12043	return nil
12044}
12045
12046// SetStreamingDistributionConfig sets the StreamingDistributionConfig field's value.
12047func (s *CreateStreamingDistributionInput) SetStreamingDistributionConfig(v *StreamingDistributionConfig) *CreateStreamingDistributionInput {
12048	s.StreamingDistributionConfig = v
12049	return s
12050}
12051
12052// The returned result of the corresponding request.
12053type CreateStreamingDistributionOutput struct {
12054	_ struct{} `type:"structure" payload:"StreamingDistribution"`
12055
12056	// The current version of the streaming distribution created.
12057	ETag *string `location:"header" locationName:"ETag" type:"string"`
12058
12059	// The fully qualified URI of the new streaming distribution resource just created.
12060	Location *string `location:"header" locationName:"Location" type:"string"`
12061
12062	// The streaming distribution's information.
12063	StreamingDistribution *StreamingDistribution `type:"structure"`
12064}
12065
12066// String returns the string representation
12067func (s CreateStreamingDistributionOutput) String() string {
12068	return awsutil.Prettify(s)
12069}
12070
12071// GoString returns the string representation
12072func (s CreateStreamingDistributionOutput) GoString() string {
12073	return s.String()
12074}
12075
12076// SetETag sets the ETag field's value.
12077func (s *CreateStreamingDistributionOutput) SetETag(v string) *CreateStreamingDistributionOutput {
12078	s.ETag = &v
12079	return s
12080}
12081
12082// SetLocation sets the Location field's value.
12083func (s *CreateStreamingDistributionOutput) SetLocation(v string) *CreateStreamingDistributionOutput {
12084	s.Location = &v
12085	return s
12086}
12087
12088// SetStreamingDistribution sets the StreamingDistribution field's value.
12089func (s *CreateStreamingDistributionOutput) SetStreamingDistribution(v *StreamingDistribution) *CreateStreamingDistributionOutput {
12090	s.StreamingDistribution = v
12091	return s
12092}
12093
12094// The request to create a new streaming distribution with tags.
12095type CreateStreamingDistributionWithTagsInput struct {
12096	_ struct{} `locationName:"CreateStreamingDistributionWithTagsRequest" type:"structure" payload:"StreamingDistributionConfigWithTags"`
12097
12098	// The streaming distribution's configuration information.
12099	//
12100	// StreamingDistributionConfigWithTags is a required field
12101	StreamingDistributionConfigWithTags *StreamingDistributionConfigWithTags `locationName:"StreamingDistributionConfigWithTags" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
12102}
12103
12104// String returns the string representation
12105func (s CreateStreamingDistributionWithTagsInput) String() string {
12106	return awsutil.Prettify(s)
12107}
12108
12109// GoString returns the string representation
12110func (s CreateStreamingDistributionWithTagsInput) GoString() string {
12111	return s.String()
12112}
12113
12114// Validate inspects the fields of the type to determine if they are valid.
12115func (s *CreateStreamingDistributionWithTagsInput) Validate() error {
12116	invalidParams := request.ErrInvalidParams{Context: "CreateStreamingDistributionWithTagsInput"}
12117	if s.StreamingDistributionConfigWithTags == nil {
12118		invalidParams.Add(request.NewErrParamRequired("StreamingDistributionConfigWithTags"))
12119	}
12120	if s.StreamingDistributionConfigWithTags != nil {
12121		if err := s.StreamingDistributionConfigWithTags.Validate(); err != nil {
12122			invalidParams.AddNested("StreamingDistributionConfigWithTags", err.(request.ErrInvalidParams))
12123		}
12124	}
12125
12126	if invalidParams.Len() > 0 {
12127		return invalidParams
12128	}
12129	return nil
12130}
12131
12132// SetStreamingDistributionConfigWithTags sets the StreamingDistributionConfigWithTags field's value.
12133func (s *CreateStreamingDistributionWithTagsInput) SetStreamingDistributionConfigWithTags(v *StreamingDistributionConfigWithTags) *CreateStreamingDistributionWithTagsInput {
12134	s.StreamingDistributionConfigWithTags = v
12135	return s
12136}
12137
12138// The returned result of the corresponding request.
12139type CreateStreamingDistributionWithTagsOutput struct {
12140	_ struct{} `type:"structure" payload:"StreamingDistribution"`
12141
12142	// The current version of the distribution created.
12143	ETag *string `location:"header" locationName:"ETag" type:"string"`
12144
12145	// The fully qualified URI of the new streaming distribution resource just created.
12146	Location *string `location:"header" locationName:"Location" type:"string"`
12147
12148	// The streaming distribution's information.
12149	StreamingDistribution *StreamingDistribution `type:"structure"`
12150}
12151
12152// String returns the string representation
12153func (s CreateStreamingDistributionWithTagsOutput) String() string {
12154	return awsutil.Prettify(s)
12155}
12156
12157// GoString returns the string representation
12158func (s CreateStreamingDistributionWithTagsOutput) GoString() string {
12159	return s.String()
12160}
12161
12162// SetETag sets the ETag field's value.
12163func (s *CreateStreamingDistributionWithTagsOutput) SetETag(v string) *CreateStreamingDistributionWithTagsOutput {
12164	s.ETag = &v
12165	return s
12166}
12167
12168// SetLocation sets the Location field's value.
12169func (s *CreateStreamingDistributionWithTagsOutput) SetLocation(v string) *CreateStreamingDistributionWithTagsOutput {
12170	s.Location = &v
12171	return s
12172}
12173
12174// SetStreamingDistribution sets the StreamingDistribution field's value.
12175func (s *CreateStreamingDistributionWithTagsOutput) SetStreamingDistribution(v *StreamingDistribution) *CreateStreamingDistributionWithTagsOutput {
12176	s.StreamingDistribution = v
12177	return s
12178}
12179
12180// A complex type that controls:
12181//
12182//    * Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range
12183//    with custom error messages before returning the response to the viewer.
12184//
12185//    * How long CloudFront caches HTTP status codes in the 4xx and 5xx range.
12186//
12187// For more information about custom error pages, see Customizing Error Responses
12188// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html)
12189// in the Amazon CloudFront Developer Guide.
12190type CustomErrorResponse struct {
12191	_ struct{} `type:"structure"`
12192
12193	// The minimum amount of time, in seconds, that you want CloudFront to cache
12194	// the HTTP status code specified in ErrorCode. When this time period has elapsed,
12195	// CloudFront queries your origin to see whether the problem that caused the
12196	// error has been resolved and the requested object is now available.
12197	//
12198	// For more information, see Customizing Error Responses (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html)
12199	// in the Amazon CloudFront Developer Guide.
12200	ErrorCachingMinTTL *int64 `type:"long"`
12201
12202	// The HTTP status code for which you want to specify a custom error page and/or
12203	// a caching duration.
12204	//
12205	// ErrorCode is a required field
12206	ErrorCode *int64 `type:"integer" required:"true"`
12207
12208	// The HTTP status code that you want CloudFront to return to the viewer along
12209	// with the custom error page. There are a variety of reasons that you might
12210	// want CloudFront to return a status code different from the status code that
12211	// your origin returned to CloudFront, for example:
12212	//
12213	//    * Some Internet devices (some firewalls and corporate proxies, for example)
12214	//    intercept HTTP 4xx and 5xx and prevent the response from being returned
12215	//    to the viewer. If you substitute 200, the response typically won't be
12216	//    intercepted.
12217	//
12218	//    * If you don't care about distinguishing among different client errors
12219	//    or server errors, you can specify 400 or 500 as the ResponseCode for all
12220	//    4xx or 5xx errors.
12221	//
12222	//    * You might want to return a 200 status code (OK) and static website so
12223	//    your customers don't know that your website is down.
12224	//
12225	// If you specify a value for ResponseCode, you must also specify a value for
12226	// ResponsePagePath.
12227	ResponseCode *string `type:"string"`
12228
12229	// The path to the custom error page that you want CloudFront to return to a
12230	// viewer when your origin returns the HTTP status code specified by ErrorCode,
12231	// for example, /4xx-errors/403-forbidden.html. If you want to store your objects
12232	// and your custom error pages in different locations, your distribution must
12233	// include a cache behavior for which the following is true:
12234	//
12235	//    * The value of PathPattern matches the path to your custom error messages.
12236	//    For example, suppose you saved custom error pages for 4xx errors in an
12237	//    Amazon S3 bucket in a directory named /4xx-errors. Your distribution must
12238	//    include a cache behavior for which the path pattern routes requests for
12239	//    your custom error pages to that location, for example, /4xx-errors/*.
12240	//
12241	//    * The value of TargetOriginId specifies the value of the ID element for
12242	//    the origin that contains your custom error pages.
12243	//
12244	// If you specify a value for ResponsePagePath, you must also specify a value
12245	// for ResponseCode.
12246	//
12247	// We recommend that you store custom error pages in an Amazon S3 bucket. If
12248	// you store custom error pages on an HTTP server and the server starts to return
12249	// 5xx errors, CloudFront can't get the files that you want to return to viewers
12250	// because the origin server is unavailable.
12251	ResponsePagePath *string `type:"string"`
12252}
12253
12254// String returns the string representation
12255func (s CustomErrorResponse) String() string {
12256	return awsutil.Prettify(s)
12257}
12258
12259// GoString returns the string representation
12260func (s CustomErrorResponse) GoString() string {
12261	return s.String()
12262}
12263
12264// Validate inspects the fields of the type to determine if they are valid.
12265func (s *CustomErrorResponse) Validate() error {
12266	invalidParams := request.ErrInvalidParams{Context: "CustomErrorResponse"}
12267	if s.ErrorCode == nil {
12268		invalidParams.Add(request.NewErrParamRequired("ErrorCode"))
12269	}
12270
12271	if invalidParams.Len() > 0 {
12272		return invalidParams
12273	}
12274	return nil
12275}
12276
12277// SetErrorCachingMinTTL sets the ErrorCachingMinTTL field's value.
12278func (s *CustomErrorResponse) SetErrorCachingMinTTL(v int64) *CustomErrorResponse {
12279	s.ErrorCachingMinTTL = &v
12280	return s
12281}
12282
12283// SetErrorCode sets the ErrorCode field's value.
12284func (s *CustomErrorResponse) SetErrorCode(v int64) *CustomErrorResponse {
12285	s.ErrorCode = &v
12286	return s
12287}
12288
12289// SetResponseCode sets the ResponseCode field's value.
12290func (s *CustomErrorResponse) SetResponseCode(v string) *CustomErrorResponse {
12291	s.ResponseCode = &v
12292	return s
12293}
12294
12295// SetResponsePagePath sets the ResponsePagePath field's value.
12296func (s *CustomErrorResponse) SetResponsePagePath(v string) *CustomErrorResponse {
12297	s.ResponsePagePath = &v
12298	return s
12299}
12300
12301// A complex type that controls:
12302//
12303//    * Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range
12304//    with custom error messages before returning the response to the viewer.
12305//
12306//    * How long CloudFront caches HTTP status codes in the 4xx and 5xx range.
12307//
12308// For more information about custom error pages, see Customizing Error Responses
12309// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html)
12310// in the Amazon CloudFront Developer Guide.
12311type CustomErrorResponses struct {
12312	_ struct{} `type:"structure"`
12313
12314	// A complex type that contains a CustomErrorResponse element for each HTTP
12315	// status code for which you want to specify a custom error page and/or a caching
12316	// duration.
12317	Items []*CustomErrorResponse `locationNameList:"CustomErrorResponse" type:"list"`
12318
12319	// The number of HTTP status codes for which you want to specify a custom error
12320	// page and/or a caching duration. If Quantity is 0, you can omit Items.
12321	//
12322	// Quantity is a required field
12323	Quantity *int64 `type:"integer" required:"true"`
12324}
12325
12326// String returns the string representation
12327func (s CustomErrorResponses) String() string {
12328	return awsutil.Prettify(s)
12329}
12330
12331// GoString returns the string representation
12332func (s CustomErrorResponses) GoString() string {
12333	return s.String()
12334}
12335
12336// Validate inspects the fields of the type to determine if they are valid.
12337func (s *CustomErrorResponses) Validate() error {
12338	invalidParams := request.ErrInvalidParams{Context: "CustomErrorResponses"}
12339	if s.Quantity == nil {
12340		invalidParams.Add(request.NewErrParamRequired("Quantity"))
12341	}
12342	if s.Items != nil {
12343		for i, v := range s.Items {
12344			if v == nil {
12345				continue
12346			}
12347			if err := v.Validate(); err != nil {
12348				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
12349			}
12350		}
12351	}
12352
12353	if invalidParams.Len() > 0 {
12354		return invalidParams
12355	}
12356	return nil
12357}
12358
12359// SetItems sets the Items field's value.
12360func (s *CustomErrorResponses) SetItems(v []*CustomErrorResponse) *CustomErrorResponses {
12361	s.Items = v
12362	return s
12363}
12364
12365// SetQuantity sets the Quantity field's value.
12366func (s *CustomErrorResponses) SetQuantity(v int64) *CustomErrorResponses {
12367	s.Quantity = &v
12368	return s
12369}
12370
12371// A complex type that contains the list of Custom Headers for each origin.
12372type CustomHeaders struct {
12373	_ struct{} `type:"structure"`
12374
12375	// Optional: A list that contains one OriginCustomHeader element for each custom
12376	// header that you want CloudFront to forward to the origin. If Quantity is
12377	// 0, omit Items.
12378	Items []*OriginCustomHeader `locationNameList:"OriginCustomHeader" type:"list"`
12379
12380	// The number of custom headers, if any, for this distribution.
12381	//
12382	// Quantity is a required field
12383	Quantity *int64 `type:"integer" required:"true"`
12384}
12385
12386// String returns the string representation
12387func (s CustomHeaders) String() string {
12388	return awsutil.Prettify(s)
12389}
12390
12391// GoString returns the string representation
12392func (s CustomHeaders) GoString() string {
12393	return s.String()
12394}
12395
12396// Validate inspects the fields of the type to determine if they are valid.
12397func (s *CustomHeaders) Validate() error {
12398	invalidParams := request.ErrInvalidParams{Context: "CustomHeaders"}
12399	if s.Quantity == nil {
12400		invalidParams.Add(request.NewErrParamRequired("Quantity"))
12401	}
12402	if s.Items != nil {
12403		for i, v := range s.Items {
12404			if v == nil {
12405				continue
12406			}
12407			if err := v.Validate(); err != nil {
12408				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
12409			}
12410		}
12411	}
12412
12413	if invalidParams.Len() > 0 {
12414		return invalidParams
12415	}
12416	return nil
12417}
12418
12419// SetItems sets the Items field's value.
12420func (s *CustomHeaders) SetItems(v []*OriginCustomHeader) *CustomHeaders {
12421	s.Items = v
12422	return s
12423}
12424
12425// SetQuantity sets the Quantity field's value.
12426func (s *CustomHeaders) SetQuantity(v int64) *CustomHeaders {
12427	s.Quantity = &v
12428	return s
12429}
12430
12431// A custom origin. A custom origin is any origin that is not an Amazon S3 bucket,
12432// with one exception. An Amazon S3 bucket that is configured with static website
12433// hosting (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)
12434// is a custom origin.
12435type CustomOriginConfig struct {
12436	_ struct{} `type:"structure"`
12437
12438	// The HTTP port that CloudFront uses to connect to the origin. Specify the
12439	// HTTP port that the origin listens on.
12440	//
12441	// HTTPPort is a required field
12442	HTTPPort *int64 `type:"integer" required:"true"`
12443
12444	// The HTTPS port that CloudFront uses to connect to the origin. Specify the
12445	// HTTPS port that the origin listens on.
12446	//
12447	// HTTPSPort is a required field
12448	HTTPSPort *int64 `type:"integer" required:"true"`
12449
12450	// Specifies how long, in seconds, CloudFront persists its connection to the
12451	// origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the
12452	// default (if you don’t specify otherwise) is 5 seconds.
12453	//
12454	// For more information, see Origin Keep-alive Timeout (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout)
12455	// in the Amazon CloudFront Developer Guide.
12456	OriginKeepaliveTimeout *int64 `type:"integer"`
12457
12458	// Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to
12459	// the origin. Valid values are:
12460	//
12461	//    * http-only – CloudFront always uses HTTP to connect to the origin.
12462	//
12463	//    * match-viewer – CloudFront connects to the origin using the same protocol
12464	//    that the viewer used to connect to CloudFront.
12465	//
12466	//    * https-only – CloudFront always uses HTTPS to connect to the origin.
12467	//
12468	// OriginProtocolPolicy is a required field
12469	OriginProtocolPolicy *string `type:"string" required:"true" enum:"OriginProtocolPolicy"`
12470
12471	// Specifies how long, in seconds, CloudFront waits for a response from the
12472	// origin. This is also known as the origin response timeout. The minimum timeout
12473	// is 1 second, the maximum is 60 seconds, and the default (if you don’t specify
12474	// otherwise) is 30 seconds.
12475	//
12476	// For more information, see Origin Response Timeout (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout)
12477	// in the Amazon CloudFront Developer Guide.
12478	OriginReadTimeout *int64 `type:"integer"`
12479
12480	// Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting
12481	// to your origin over HTTPS. Valid values include SSLv3, TLSv1, TLSv1.1, and
12482	// TLSv1.2.
12483	//
12484	// For more information, see Minimum Origin SSL Protocol (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols)
12485	// in the Amazon CloudFront Developer Guide.
12486	OriginSslProtocols *OriginSslProtocols `type:"structure"`
12487}
12488
12489// String returns the string representation
12490func (s CustomOriginConfig) String() string {
12491	return awsutil.Prettify(s)
12492}
12493
12494// GoString returns the string representation
12495func (s CustomOriginConfig) GoString() string {
12496	return s.String()
12497}
12498
12499// Validate inspects the fields of the type to determine if they are valid.
12500func (s *CustomOriginConfig) Validate() error {
12501	invalidParams := request.ErrInvalidParams{Context: "CustomOriginConfig"}
12502	if s.HTTPPort == nil {
12503		invalidParams.Add(request.NewErrParamRequired("HTTPPort"))
12504	}
12505	if s.HTTPSPort == nil {
12506		invalidParams.Add(request.NewErrParamRequired("HTTPSPort"))
12507	}
12508	if s.OriginProtocolPolicy == nil {
12509		invalidParams.Add(request.NewErrParamRequired("OriginProtocolPolicy"))
12510	}
12511	if s.OriginSslProtocols != nil {
12512		if err := s.OriginSslProtocols.Validate(); err != nil {
12513			invalidParams.AddNested("OriginSslProtocols", err.(request.ErrInvalidParams))
12514		}
12515	}
12516
12517	if invalidParams.Len() > 0 {
12518		return invalidParams
12519	}
12520	return nil
12521}
12522
12523// SetHTTPPort sets the HTTPPort field's value.
12524func (s *CustomOriginConfig) SetHTTPPort(v int64) *CustomOriginConfig {
12525	s.HTTPPort = &v
12526	return s
12527}
12528
12529// SetHTTPSPort sets the HTTPSPort field's value.
12530func (s *CustomOriginConfig) SetHTTPSPort(v int64) *CustomOriginConfig {
12531	s.HTTPSPort = &v
12532	return s
12533}
12534
12535// SetOriginKeepaliveTimeout sets the OriginKeepaliveTimeout field's value.
12536func (s *CustomOriginConfig) SetOriginKeepaliveTimeout(v int64) *CustomOriginConfig {
12537	s.OriginKeepaliveTimeout = &v
12538	return s
12539}
12540
12541// SetOriginProtocolPolicy sets the OriginProtocolPolicy field's value.
12542func (s *CustomOriginConfig) SetOriginProtocolPolicy(v string) *CustomOriginConfig {
12543	s.OriginProtocolPolicy = &v
12544	return s
12545}
12546
12547// SetOriginReadTimeout sets the OriginReadTimeout field's value.
12548func (s *CustomOriginConfig) SetOriginReadTimeout(v int64) *CustomOriginConfig {
12549	s.OriginReadTimeout = &v
12550	return s
12551}
12552
12553// SetOriginSslProtocols sets the OriginSslProtocols field's value.
12554func (s *CustomOriginConfig) SetOriginSslProtocols(v *OriginSslProtocols) *CustomOriginConfig {
12555	s.OriginSslProtocols = v
12556	return s
12557}
12558
12559// A complex type that describes the default cache behavior if you don’t specify
12560// a CacheBehavior element or if request URLs don’t match any of the values
12561// of PathPattern in CacheBehavior elements. You must create exactly one default
12562// cache behavior.
12563type DefaultCacheBehavior struct {
12564	_ struct{} `type:"structure"`
12565
12566	// A complex type that controls which HTTP methods CloudFront processes and
12567	// forwards to your Amazon S3 bucket or your custom origin. There are three
12568	// choices:
12569	//
12570	//    * CloudFront forwards only GET and HEAD requests.
12571	//
12572	//    * CloudFront forwards only GET, HEAD, and OPTIONS requests.
12573	//
12574	//    * CloudFront forwards GET, HEAD, OPTIONS, PUT, PATCH, POST, and DELETE
12575	//    requests.
12576	//
12577	// If you pick the third choice, you may need to restrict access to your Amazon
12578	// S3 bucket or to your custom origin so users can't perform operations that
12579	// you don't want them to. For example, you might not want users to have permissions
12580	// to delete objects from your origin.
12581	AllowedMethods *AllowedMethods `type:"structure"`
12582
12583	// The unique identifier of the cache policy that is attached to the default
12584	// cache behavior. For more information, see Creating cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
12585	// or Using the managed cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html)
12586	// in the Amazon CloudFront Developer Guide.
12587	//
12588	// A DefaultCacheBehavior must include either a CachePolicyId or ForwardedValues.
12589	// We recommend that you use a CachePolicyId.
12590	CachePolicyId *string `type:"string"`
12591
12592	// Whether you want CloudFront to automatically compress certain files for this
12593	// cache behavior. If so, specify true; if not, specify false. For more information,
12594	// see Serving Compressed Files (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html)
12595	// in the Amazon CloudFront Developer Guide.
12596	Compress *bool `type:"boolean"`
12597
12598	// This field is deprecated. We recommend that you use the DefaultTTL field
12599	// in a cache policy instead of this field. For more information, see Creating
12600	// cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
12601	// or Using the managed cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html)
12602	// in the Amazon CloudFront Developer Guide.
12603	//
12604	// The default amount of time that you want objects to stay in CloudFront caches
12605	// before CloudFront forwards another request to your origin to determine whether
12606	// the object has been updated. The value that you specify applies only when
12607	// your origin does not add HTTP headers such as Cache-Control max-age, Cache-Control
12608	// s-maxage, and Expires to objects. For more information, see Managing How
12609	// Long Content Stays in an Edge Cache (Expiration) (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)
12610	// in the Amazon CloudFront Developer Guide.
12611	//
12612	// Deprecated: DefaultTTL has been deprecated
12613	DefaultTTL *int64 `deprecated:"true" type:"long"`
12614
12615	// The value of ID for the field-level encryption configuration that you want
12616	// CloudFront to use for encrypting specific fields of data for the default
12617	// cache behavior.
12618	FieldLevelEncryptionId *string `type:"string"`
12619
12620	// This field is deprecated. We recommend that you use a cache policy or an
12621	// origin request policy instead of this field. For more information, see Working
12622	// with policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html)
12623	// in the Amazon CloudFront Developer Guide.
12624	//
12625	// If you want to include values in the cache key, use a cache policy. For more
12626	// information, see Creating cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
12627	// or Using the managed cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html)
12628	// in the Amazon CloudFront Developer Guide.
12629	//
12630	// If you want to send values to the origin but not include them in the cache
12631	// key, use an origin request policy. For more information, see Creating origin
12632	// request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy)
12633	// or Using the managed origin request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html)
12634	// in the Amazon CloudFront Developer Guide.
12635	//
12636	// A DefaultCacheBehavior must include either a CachePolicyId or ForwardedValues.
12637	// We recommend that you use a CachePolicyId.
12638	//
12639	// A complex type that specifies how CloudFront handles query strings, cookies,
12640	// and HTTP headers.
12641	//
12642	// Deprecated: ForwardedValues has been deprecated
12643	ForwardedValues *ForwardedValues `deprecated:"true" type:"structure"`
12644
12645	// A list of CloudFront functions that are associated with this cache behavior.
12646	// CloudFront functions must be published to the LIVE stage to associate them
12647	// with a cache behavior.
12648	FunctionAssociations *FunctionAssociations `type:"structure"`
12649
12650	// A complex type that contains zero or more Lambda@Edge function associations
12651	// for a cache behavior.
12652	LambdaFunctionAssociations *LambdaFunctionAssociations `type:"structure"`
12653
12654	// This field is deprecated. We recommend that you use the MaxTTL field in a
12655	// cache policy instead of this field. For more information, see Creating cache
12656	// policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
12657	// or Using the managed cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html)
12658	// in the Amazon CloudFront Developer Guide.
12659	//
12660	// The maximum amount of time that you want objects to stay in CloudFront caches
12661	// before CloudFront forwards another request to your origin to determine whether
12662	// the object has been updated. The value that you specify applies only when
12663	// your origin adds HTTP headers such as Cache-Control max-age, Cache-Control
12664	// s-maxage, and Expires to objects. For more information, see Managing How
12665	// Long Content Stays in an Edge Cache (Expiration) (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)
12666	// in the Amazon CloudFront Developer Guide.
12667	//
12668	// Deprecated: MaxTTL has been deprecated
12669	MaxTTL *int64 `deprecated:"true" type:"long"`
12670
12671	// This field is deprecated. We recommend that you use the MinTTL field in a
12672	// cache policy instead of this field. For more information, see Creating cache
12673	// policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
12674	// or Using the managed cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html)
12675	// in the Amazon CloudFront Developer Guide.
12676	//
12677	// The minimum amount of time that you want objects to stay in CloudFront caches
12678	// before CloudFront forwards another request to your origin to determine whether
12679	// the object has been updated. For more information, see Managing How Long
12680	// Content Stays in an Edge Cache (Expiration) (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)
12681	// in the Amazon CloudFront Developer Guide.
12682	//
12683	// You must specify 0 for MinTTL if you configure CloudFront to forward all
12684	// headers to your origin (under Headers, if you specify 1 for Quantity and
12685	// * for Name).
12686	//
12687	// Deprecated: MinTTL has been deprecated
12688	MinTTL *int64 `deprecated:"true" type:"long"`
12689
12690	// The unique identifier of the origin request policy that is attached to the
12691	// default cache behavior. For more information, see Creating origin request
12692	// policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy)
12693	// or Using the managed origin request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html)
12694	// in the Amazon CloudFront Developer Guide.
12695	OriginRequestPolicyId *string `type:"string"`
12696
12697	// The Amazon Resource Name (ARN) of the real-time log configuration that is
12698	// attached to this cache behavior. For more information, see Real-time logs
12699	// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html)
12700	// in the Amazon CloudFront Developer Guide.
12701	RealtimeLogConfigArn *string `type:"string"`
12702
12703	// Indicates whether you want to distribute media files in the Microsoft Smooth
12704	// Streaming format using the origin that is associated with this cache behavior.
12705	// If so, specify true; if not, specify false. If you specify true for SmoothStreaming,
12706	// you can still distribute other content using this cache behavior if the content
12707	// matches the value of PathPattern.
12708	SmoothStreaming *bool `type:"boolean"`
12709
12710	// The value of ID for the origin that you want CloudFront to route requests
12711	// to when they use the default cache behavior.
12712	//
12713	// TargetOriginId is a required field
12714	TargetOriginId *string `type:"string" required:"true"`
12715
12716	// A list of key groups that CloudFront can use to validate signed URLs or signed
12717	// cookies.
12718	//
12719	// When a cache behavior contains trusted key groups, CloudFront requires signed
12720	// URLs or signed cookies for all requests that match the cache behavior. The
12721	// URLs or cookies must be signed with a private key whose corresponding public
12722	// key is in the key group. The signed URL or cookie contains information about
12723	// which public key CloudFront should use to verify the signature. For more
12724	// information, see Serving private content (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html)
12725	// in the Amazon CloudFront Developer Guide.
12726	TrustedKeyGroups *TrustedKeyGroups `type:"structure"`
12727
12728	//
12729	// We recommend using TrustedKeyGroups instead of TrustedSigners.
12730	//
12731	// A list of account IDs whose public keys CloudFront can use to validate signed
12732	// URLs or signed cookies.
12733	//
12734	// When a cache behavior contains trusted signers, CloudFront requires signed
12735	// URLs or signed cookies for all requests that match the cache behavior. The
12736	// URLs or cookies must be signed with the private key of a CloudFront key pair
12737	// in a trusted signer’s account. The signed URL or cookie contains information
12738	// about which public key CloudFront should use to verify the signature. For
12739	// more information, see Serving private content (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html)
12740	// in the Amazon CloudFront Developer Guide.
12741	TrustedSigners *TrustedSigners `type:"structure"`
12742
12743	// The protocol that viewers can use to access the files in the origin specified
12744	// by TargetOriginId when a request matches the path pattern in PathPattern.
12745	// You can specify the following options:
12746	//
12747	//    * allow-all: Viewers can use HTTP or HTTPS.
12748	//
12749	//    * redirect-to-https: If a viewer submits an HTTP request, CloudFront returns
12750	//    an HTTP status code of 301 (Moved Permanently) to the viewer along with
12751	//    the HTTPS URL. The viewer then resubmits the request using the new URL.
12752	//
12753	//    * https-only: If a viewer sends an HTTP request, CloudFront returns an
12754	//    HTTP status code of 403 (Forbidden).
12755	//
12756	// For more information about requiring the HTTPS protocol, see Requiring HTTPS
12757	// Between Viewers and CloudFront (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html)
12758	// in the Amazon CloudFront Developer Guide.
12759	//
12760	// The only way to guarantee that viewers retrieve an object that was fetched
12761	// from the origin using HTTPS is never to use any other protocol to fetch the
12762	// object. If you have recently changed from HTTP to HTTPS, we recommend that
12763	// you clear your objects’ cache because cached objects are protocol agnostic.
12764	// That means that an edge location will return an object from the cache regardless
12765	// of whether the current request protocol matches the protocol used previously.
12766	// For more information, see Managing Cache Expiration (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)
12767	// in the Amazon CloudFront Developer Guide.
12768	//
12769	// ViewerProtocolPolicy is a required field
12770	ViewerProtocolPolicy *string `type:"string" required:"true" enum:"ViewerProtocolPolicy"`
12771}
12772
12773// String returns the string representation
12774func (s DefaultCacheBehavior) String() string {
12775	return awsutil.Prettify(s)
12776}
12777
12778// GoString returns the string representation
12779func (s DefaultCacheBehavior) GoString() string {
12780	return s.String()
12781}
12782
12783// Validate inspects the fields of the type to determine if they are valid.
12784func (s *DefaultCacheBehavior) Validate() error {
12785	invalidParams := request.ErrInvalidParams{Context: "DefaultCacheBehavior"}
12786	if s.TargetOriginId == nil {
12787		invalidParams.Add(request.NewErrParamRequired("TargetOriginId"))
12788	}
12789	if s.ViewerProtocolPolicy == nil {
12790		invalidParams.Add(request.NewErrParamRequired("ViewerProtocolPolicy"))
12791	}
12792	if s.AllowedMethods != nil {
12793		if err := s.AllowedMethods.Validate(); err != nil {
12794			invalidParams.AddNested("AllowedMethods", err.(request.ErrInvalidParams))
12795		}
12796	}
12797	if s.ForwardedValues != nil {
12798		if err := s.ForwardedValues.Validate(); err != nil {
12799			invalidParams.AddNested("ForwardedValues", err.(request.ErrInvalidParams))
12800		}
12801	}
12802	if s.FunctionAssociations != nil {
12803		if err := s.FunctionAssociations.Validate(); err != nil {
12804			invalidParams.AddNested("FunctionAssociations", err.(request.ErrInvalidParams))
12805		}
12806	}
12807	if s.LambdaFunctionAssociations != nil {
12808		if err := s.LambdaFunctionAssociations.Validate(); err != nil {
12809			invalidParams.AddNested("LambdaFunctionAssociations", err.(request.ErrInvalidParams))
12810		}
12811	}
12812	if s.TrustedKeyGroups != nil {
12813		if err := s.TrustedKeyGroups.Validate(); err != nil {
12814			invalidParams.AddNested("TrustedKeyGroups", err.(request.ErrInvalidParams))
12815		}
12816	}
12817	if s.TrustedSigners != nil {
12818		if err := s.TrustedSigners.Validate(); err != nil {
12819			invalidParams.AddNested("TrustedSigners", err.(request.ErrInvalidParams))
12820		}
12821	}
12822
12823	if invalidParams.Len() > 0 {
12824		return invalidParams
12825	}
12826	return nil
12827}
12828
12829// SetAllowedMethods sets the AllowedMethods field's value.
12830func (s *DefaultCacheBehavior) SetAllowedMethods(v *AllowedMethods) *DefaultCacheBehavior {
12831	s.AllowedMethods = v
12832	return s
12833}
12834
12835// SetCachePolicyId sets the CachePolicyId field's value.
12836func (s *DefaultCacheBehavior) SetCachePolicyId(v string) *DefaultCacheBehavior {
12837	s.CachePolicyId = &v
12838	return s
12839}
12840
12841// SetCompress sets the Compress field's value.
12842func (s *DefaultCacheBehavior) SetCompress(v bool) *DefaultCacheBehavior {
12843	s.Compress = &v
12844	return s
12845}
12846
12847// SetDefaultTTL sets the DefaultTTL field's value.
12848func (s *DefaultCacheBehavior) SetDefaultTTL(v int64) *DefaultCacheBehavior {
12849	s.DefaultTTL = &v
12850	return s
12851}
12852
12853// SetFieldLevelEncryptionId sets the FieldLevelEncryptionId field's value.
12854func (s *DefaultCacheBehavior) SetFieldLevelEncryptionId(v string) *DefaultCacheBehavior {
12855	s.FieldLevelEncryptionId = &v
12856	return s
12857}
12858
12859// SetForwardedValues sets the ForwardedValues field's value.
12860func (s *DefaultCacheBehavior) SetForwardedValues(v *ForwardedValues) *DefaultCacheBehavior {
12861	s.ForwardedValues = v
12862	return s
12863}
12864
12865// SetFunctionAssociations sets the FunctionAssociations field's value.
12866func (s *DefaultCacheBehavior) SetFunctionAssociations(v *FunctionAssociations) *DefaultCacheBehavior {
12867	s.FunctionAssociations = v
12868	return s
12869}
12870
12871// SetLambdaFunctionAssociations sets the LambdaFunctionAssociations field's value.
12872func (s *DefaultCacheBehavior) SetLambdaFunctionAssociations(v *LambdaFunctionAssociations) *DefaultCacheBehavior {
12873	s.LambdaFunctionAssociations = v
12874	return s
12875}
12876
12877// SetMaxTTL sets the MaxTTL field's value.
12878func (s *DefaultCacheBehavior) SetMaxTTL(v int64) *DefaultCacheBehavior {
12879	s.MaxTTL = &v
12880	return s
12881}
12882
12883// SetMinTTL sets the MinTTL field's value.
12884func (s *DefaultCacheBehavior) SetMinTTL(v int64) *DefaultCacheBehavior {
12885	s.MinTTL = &v
12886	return s
12887}
12888
12889// SetOriginRequestPolicyId sets the OriginRequestPolicyId field's value.
12890func (s *DefaultCacheBehavior) SetOriginRequestPolicyId(v string) *DefaultCacheBehavior {
12891	s.OriginRequestPolicyId = &v
12892	return s
12893}
12894
12895// SetRealtimeLogConfigArn sets the RealtimeLogConfigArn field's value.
12896func (s *DefaultCacheBehavior) SetRealtimeLogConfigArn(v string) *DefaultCacheBehavior {
12897	s.RealtimeLogConfigArn = &v
12898	return s
12899}
12900
12901// SetSmoothStreaming sets the SmoothStreaming field's value.
12902func (s *DefaultCacheBehavior) SetSmoothStreaming(v bool) *DefaultCacheBehavior {
12903	s.SmoothStreaming = &v
12904	return s
12905}
12906
12907// SetTargetOriginId sets the TargetOriginId field's value.
12908func (s *DefaultCacheBehavior) SetTargetOriginId(v string) *DefaultCacheBehavior {
12909	s.TargetOriginId = &v
12910	return s
12911}
12912
12913// SetTrustedKeyGroups sets the TrustedKeyGroups field's value.
12914func (s *DefaultCacheBehavior) SetTrustedKeyGroups(v *TrustedKeyGroups) *DefaultCacheBehavior {
12915	s.TrustedKeyGroups = v
12916	return s
12917}
12918
12919// SetTrustedSigners sets the TrustedSigners field's value.
12920func (s *DefaultCacheBehavior) SetTrustedSigners(v *TrustedSigners) *DefaultCacheBehavior {
12921	s.TrustedSigners = v
12922	return s
12923}
12924
12925// SetViewerProtocolPolicy sets the ViewerProtocolPolicy field's value.
12926func (s *DefaultCacheBehavior) SetViewerProtocolPolicy(v string) *DefaultCacheBehavior {
12927	s.ViewerProtocolPolicy = &v
12928	return s
12929}
12930
12931type DeleteCachePolicyInput struct {
12932	_ struct{} `locationName:"DeleteCachePolicyRequest" type:"structure"`
12933
12934	// The unique identifier for the cache policy that you are deleting. To get
12935	// the identifier, you can use ListCachePolicies.
12936	//
12937	// Id is a required field
12938	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
12939
12940	// The version of the cache policy that you are deleting. The version is the
12941	// cache policy’s ETag value, which you can get using ListCachePolicies, GetCachePolicy,
12942	// or GetCachePolicyConfig.
12943	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
12944}
12945
12946// String returns the string representation
12947func (s DeleteCachePolicyInput) String() string {
12948	return awsutil.Prettify(s)
12949}
12950
12951// GoString returns the string representation
12952func (s DeleteCachePolicyInput) GoString() string {
12953	return s.String()
12954}
12955
12956// Validate inspects the fields of the type to determine if they are valid.
12957func (s *DeleteCachePolicyInput) Validate() error {
12958	invalidParams := request.ErrInvalidParams{Context: "DeleteCachePolicyInput"}
12959	if s.Id == nil {
12960		invalidParams.Add(request.NewErrParamRequired("Id"))
12961	}
12962	if s.Id != nil && len(*s.Id) < 1 {
12963		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
12964	}
12965
12966	if invalidParams.Len() > 0 {
12967		return invalidParams
12968	}
12969	return nil
12970}
12971
12972// SetId sets the Id field's value.
12973func (s *DeleteCachePolicyInput) SetId(v string) *DeleteCachePolicyInput {
12974	s.Id = &v
12975	return s
12976}
12977
12978// SetIfMatch sets the IfMatch field's value.
12979func (s *DeleteCachePolicyInput) SetIfMatch(v string) *DeleteCachePolicyInput {
12980	s.IfMatch = &v
12981	return s
12982}
12983
12984type DeleteCachePolicyOutput struct {
12985	_ struct{} `type:"structure"`
12986}
12987
12988// String returns the string representation
12989func (s DeleteCachePolicyOutput) String() string {
12990	return awsutil.Prettify(s)
12991}
12992
12993// GoString returns the string representation
12994func (s DeleteCachePolicyOutput) GoString() string {
12995	return s.String()
12996}
12997
12998// Deletes a origin access identity.
12999type DeleteCloudFrontOriginAccessIdentityInput struct {
13000	_ struct{} `locationName:"DeleteCloudFrontOriginAccessIdentityRequest" type:"structure"`
13001
13002	// The origin access identity's ID.
13003	//
13004	// Id is a required field
13005	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
13006
13007	// The value of the ETag header you received from a previous GET or PUT request.
13008	// For example: E2QWRUHAPOMQZL.
13009	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
13010}
13011
13012// String returns the string representation
13013func (s DeleteCloudFrontOriginAccessIdentityInput) String() string {
13014	return awsutil.Prettify(s)
13015}
13016
13017// GoString returns the string representation
13018func (s DeleteCloudFrontOriginAccessIdentityInput) GoString() string {
13019	return s.String()
13020}
13021
13022// Validate inspects the fields of the type to determine if they are valid.
13023func (s *DeleteCloudFrontOriginAccessIdentityInput) Validate() error {
13024	invalidParams := request.ErrInvalidParams{Context: "DeleteCloudFrontOriginAccessIdentityInput"}
13025	if s.Id == nil {
13026		invalidParams.Add(request.NewErrParamRequired("Id"))
13027	}
13028	if s.Id != nil && len(*s.Id) < 1 {
13029		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13030	}
13031
13032	if invalidParams.Len() > 0 {
13033		return invalidParams
13034	}
13035	return nil
13036}
13037
13038// SetId sets the Id field's value.
13039func (s *DeleteCloudFrontOriginAccessIdentityInput) SetId(v string) *DeleteCloudFrontOriginAccessIdentityInput {
13040	s.Id = &v
13041	return s
13042}
13043
13044// SetIfMatch sets the IfMatch field's value.
13045func (s *DeleteCloudFrontOriginAccessIdentityInput) SetIfMatch(v string) *DeleteCloudFrontOriginAccessIdentityInput {
13046	s.IfMatch = &v
13047	return s
13048}
13049
13050type DeleteCloudFrontOriginAccessIdentityOutput struct {
13051	_ struct{} `type:"structure"`
13052}
13053
13054// String returns the string representation
13055func (s DeleteCloudFrontOriginAccessIdentityOutput) String() string {
13056	return awsutil.Prettify(s)
13057}
13058
13059// GoString returns the string representation
13060func (s DeleteCloudFrontOriginAccessIdentityOutput) GoString() string {
13061	return s.String()
13062}
13063
13064// This action deletes a web distribution. To delete a web distribution using
13065// the CloudFront API, perform the following steps.
13066//
13067// To delete a web distribution using the CloudFront API:
13068//
13069// Disable the web distribution
13070//
13071// Submit a GET Distribution Config request to get the current configuration
13072// and the Etag header for the distribution.
13073//
13074// Update the XML document that was returned in the response to your GET Distribution
13075// Config request to change the value of Enabled to false.
13076//
13077// Submit a PUT Distribution Config request to update the configuration for
13078// your distribution. In the request body, include the XML document that you
13079// updated in Step 3. Set the value of the HTTP If-Match header to the value
13080// of the ETag header that CloudFront returned when you submitted the GET Distribution
13081// Config request in Step 2.
13082//
13083// Review the response to the PUT Distribution Config request to confirm that
13084// the distribution was successfully disabled.
13085//
13086// Submit a GET Distribution request to confirm that your changes have propagated.
13087// When propagation is complete, the value of Status is Deployed.
13088//
13089// Submit a DELETE Distribution request. Set the value of the HTTP If-Match
13090// header to the value of the ETag header that CloudFront returned when you
13091// submitted the GET Distribution Config request in Step 6.
13092//
13093// Review the response to your DELETE Distribution request to confirm that the
13094// distribution was successfully deleted.
13095//
13096// For information about deleting a distribution using the CloudFront console,
13097// see Deleting a Distribution (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowToDeleteDistribution.html)
13098// in the Amazon CloudFront Developer Guide.
13099type DeleteDistributionInput struct {
13100	_ struct{} `locationName:"DeleteDistributionRequest" type:"structure"`
13101
13102	// The distribution ID.
13103	//
13104	// Id is a required field
13105	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
13106
13107	// The value of the ETag header that you received when you disabled the distribution.
13108	// For example: E2QWRUHAPOMQZL.
13109	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
13110}
13111
13112// String returns the string representation
13113func (s DeleteDistributionInput) String() string {
13114	return awsutil.Prettify(s)
13115}
13116
13117// GoString returns the string representation
13118func (s DeleteDistributionInput) GoString() string {
13119	return s.String()
13120}
13121
13122// Validate inspects the fields of the type to determine if they are valid.
13123func (s *DeleteDistributionInput) Validate() error {
13124	invalidParams := request.ErrInvalidParams{Context: "DeleteDistributionInput"}
13125	if s.Id == nil {
13126		invalidParams.Add(request.NewErrParamRequired("Id"))
13127	}
13128	if s.Id != nil && len(*s.Id) < 1 {
13129		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13130	}
13131
13132	if invalidParams.Len() > 0 {
13133		return invalidParams
13134	}
13135	return nil
13136}
13137
13138// SetId sets the Id field's value.
13139func (s *DeleteDistributionInput) SetId(v string) *DeleteDistributionInput {
13140	s.Id = &v
13141	return s
13142}
13143
13144// SetIfMatch sets the IfMatch field's value.
13145func (s *DeleteDistributionInput) SetIfMatch(v string) *DeleteDistributionInput {
13146	s.IfMatch = &v
13147	return s
13148}
13149
13150type DeleteDistributionOutput struct {
13151	_ struct{} `type:"structure"`
13152}
13153
13154// String returns the string representation
13155func (s DeleteDistributionOutput) String() string {
13156	return awsutil.Prettify(s)
13157}
13158
13159// GoString returns the string representation
13160func (s DeleteDistributionOutput) GoString() string {
13161	return s.String()
13162}
13163
13164type DeleteFieldLevelEncryptionConfigInput struct {
13165	_ struct{} `locationName:"DeleteFieldLevelEncryptionConfigRequest" type:"structure"`
13166
13167	// The ID of the configuration you want to delete from CloudFront.
13168	//
13169	// Id is a required field
13170	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
13171
13172	// The value of the ETag header that you received when retrieving the configuration
13173	// identity to delete. For example: E2QWRUHAPOMQZL.
13174	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
13175}
13176
13177// String returns the string representation
13178func (s DeleteFieldLevelEncryptionConfigInput) String() string {
13179	return awsutil.Prettify(s)
13180}
13181
13182// GoString returns the string representation
13183func (s DeleteFieldLevelEncryptionConfigInput) GoString() string {
13184	return s.String()
13185}
13186
13187// Validate inspects the fields of the type to determine if they are valid.
13188func (s *DeleteFieldLevelEncryptionConfigInput) Validate() error {
13189	invalidParams := request.ErrInvalidParams{Context: "DeleteFieldLevelEncryptionConfigInput"}
13190	if s.Id == nil {
13191		invalidParams.Add(request.NewErrParamRequired("Id"))
13192	}
13193	if s.Id != nil && len(*s.Id) < 1 {
13194		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13195	}
13196
13197	if invalidParams.Len() > 0 {
13198		return invalidParams
13199	}
13200	return nil
13201}
13202
13203// SetId sets the Id field's value.
13204func (s *DeleteFieldLevelEncryptionConfigInput) SetId(v string) *DeleteFieldLevelEncryptionConfigInput {
13205	s.Id = &v
13206	return s
13207}
13208
13209// SetIfMatch sets the IfMatch field's value.
13210func (s *DeleteFieldLevelEncryptionConfigInput) SetIfMatch(v string) *DeleteFieldLevelEncryptionConfigInput {
13211	s.IfMatch = &v
13212	return s
13213}
13214
13215type DeleteFieldLevelEncryptionConfigOutput struct {
13216	_ struct{} `type:"structure"`
13217}
13218
13219// String returns the string representation
13220func (s DeleteFieldLevelEncryptionConfigOutput) String() string {
13221	return awsutil.Prettify(s)
13222}
13223
13224// GoString returns the string representation
13225func (s DeleteFieldLevelEncryptionConfigOutput) GoString() string {
13226	return s.String()
13227}
13228
13229type DeleteFieldLevelEncryptionProfileInput struct {
13230	_ struct{} `locationName:"DeleteFieldLevelEncryptionProfileRequest" type:"structure"`
13231
13232	// Request the ID of the profile you want to delete from CloudFront.
13233	//
13234	// Id is a required field
13235	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
13236
13237	// The value of the ETag header that you received when retrieving the profile
13238	// to delete. For example: E2QWRUHAPOMQZL.
13239	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
13240}
13241
13242// String returns the string representation
13243func (s DeleteFieldLevelEncryptionProfileInput) String() string {
13244	return awsutil.Prettify(s)
13245}
13246
13247// GoString returns the string representation
13248func (s DeleteFieldLevelEncryptionProfileInput) GoString() string {
13249	return s.String()
13250}
13251
13252// Validate inspects the fields of the type to determine if they are valid.
13253func (s *DeleteFieldLevelEncryptionProfileInput) Validate() error {
13254	invalidParams := request.ErrInvalidParams{Context: "DeleteFieldLevelEncryptionProfileInput"}
13255	if s.Id == nil {
13256		invalidParams.Add(request.NewErrParamRequired("Id"))
13257	}
13258	if s.Id != nil && len(*s.Id) < 1 {
13259		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13260	}
13261
13262	if invalidParams.Len() > 0 {
13263		return invalidParams
13264	}
13265	return nil
13266}
13267
13268// SetId sets the Id field's value.
13269func (s *DeleteFieldLevelEncryptionProfileInput) SetId(v string) *DeleteFieldLevelEncryptionProfileInput {
13270	s.Id = &v
13271	return s
13272}
13273
13274// SetIfMatch sets the IfMatch field's value.
13275func (s *DeleteFieldLevelEncryptionProfileInput) SetIfMatch(v string) *DeleteFieldLevelEncryptionProfileInput {
13276	s.IfMatch = &v
13277	return s
13278}
13279
13280type DeleteFieldLevelEncryptionProfileOutput struct {
13281	_ struct{} `type:"structure"`
13282}
13283
13284// String returns the string representation
13285func (s DeleteFieldLevelEncryptionProfileOutput) String() string {
13286	return awsutil.Prettify(s)
13287}
13288
13289// GoString returns the string representation
13290func (s DeleteFieldLevelEncryptionProfileOutput) GoString() string {
13291	return s.String()
13292}
13293
13294type DeleteFunctionInput struct {
13295	_ struct{} `locationName:"DeleteFunctionRequest" type:"structure"`
13296
13297	// The current version (ETag value) of the function that you are deleting, which
13298	// you can get using DescribeFunction.
13299	//
13300	// IfMatch is a required field
13301	IfMatch *string `location:"header" locationName:"If-Match" type:"string" required:"true"`
13302
13303	// The name of the function that you are deleting.
13304	//
13305	// Name is a required field
13306	Name *string `location:"uri" locationName:"Name" type:"string" required:"true"`
13307}
13308
13309// String returns the string representation
13310func (s DeleteFunctionInput) String() string {
13311	return awsutil.Prettify(s)
13312}
13313
13314// GoString returns the string representation
13315func (s DeleteFunctionInput) GoString() string {
13316	return s.String()
13317}
13318
13319// Validate inspects the fields of the type to determine if they are valid.
13320func (s *DeleteFunctionInput) Validate() error {
13321	invalidParams := request.ErrInvalidParams{Context: "DeleteFunctionInput"}
13322	if s.IfMatch == nil {
13323		invalidParams.Add(request.NewErrParamRequired("IfMatch"))
13324	}
13325	if s.Name == nil {
13326		invalidParams.Add(request.NewErrParamRequired("Name"))
13327	}
13328	if s.Name != nil && len(*s.Name) < 1 {
13329		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
13330	}
13331
13332	if invalidParams.Len() > 0 {
13333		return invalidParams
13334	}
13335	return nil
13336}
13337
13338// SetIfMatch sets the IfMatch field's value.
13339func (s *DeleteFunctionInput) SetIfMatch(v string) *DeleteFunctionInput {
13340	s.IfMatch = &v
13341	return s
13342}
13343
13344// SetName sets the Name field's value.
13345func (s *DeleteFunctionInput) SetName(v string) *DeleteFunctionInput {
13346	s.Name = &v
13347	return s
13348}
13349
13350type DeleteFunctionOutput struct {
13351	_ struct{} `type:"structure"`
13352}
13353
13354// String returns the string representation
13355func (s DeleteFunctionOutput) String() string {
13356	return awsutil.Prettify(s)
13357}
13358
13359// GoString returns the string representation
13360func (s DeleteFunctionOutput) GoString() string {
13361	return s.String()
13362}
13363
13364type DeleteKeyGroupInput struct {
13365	_ struct{} `locationName:"DeleteKeyGroupRequest" type:"structure"`
13366
13367	// The identifier of the key group that you are deleting. To get the identifier,
13368	// use ListKeyGroups.
13369	//
13370	// Id is a required field
13371	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
13372
13373	// The version of the key group that you are deleting. The version is the key
13374	// group’s ETag value. To get the ETag, use GetKeyGroup or GetKeyGroupConfig.
13375	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
13376}
13377
13378// String returns the string representation
13379func (s DeleteKeyGroupInput) String() string {
13380	return awsutil.Prettify(s)
13381}
13382
13383// GoString returns the string representation
13384func (s DeleteKeyGroupInput) GoString() string {
13385	return s.String()
13386}
13387
13388// Validate inspects the fields of the type to determine if they are valid.
13389func (s *DeleteKeyGroupInput) Validate() error {
13390	invalidParams := request.ErrInvalidParams{Context: "DeleteKeyGroupInput"}
13391	if s.Id == nil {
13392		invalidParams.Add(request.NewErrParamRequired("Id"))
13393	}
13394	if s.Id != nil && len(*s.Id) < 1 {
13395		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13396	}
13397
13398	if invalidParams.Len() > 0 {
13399		return invalidParams
13400	}
13401	return nil
13402}
13403
13404// SetId sets the Id field's value.
13405func (s *DeleteKeyGroupInput) SetId(v string) *DeleteKeyGroupInput {
13406	s.Id = &v
13407	return s
13408}
13409
13410// SetIfMatch sets the IfMatch field's value.
13411func (s *DeleteKeyGroupInput) SetIfMatch(v string) *DeleteKeyGroupInput {
13412	s.IfMatch = &v
13413	return s
13414}
13415
13416type DeleteKeyGroupOutput struct {
13417	_ struct{} `type:"structure"`
13418}
13419
13420// String returns the string representation
13421func (s DeleteKeyGroupOutput) String() string {
13422	return awsutil.Prettify(s)
13423}
13424
13425// GoString returns the string representation
13426func (s DeleteKeyGroupOutput) GoString() string {
13427	return s.String()
13428}
13429
13430type DeleteMonitoringSubscriptionInput struct {
13431	_ struct{} `locationName:"DeleteMonitoringSubscriptionRequest" type:"structure"`
13432
13433	// The ID of the distribution that you are disabling metrics for.
13434	//
13435	// DistributionId is a required field
13436	DistributionId *string `location:"uri" locationName:"DistributionId" type:"string" required:"true"`
13437}
13438
13439// String returns the string representation
13440func (s DeleteMonitoringSubscriptionInput) String() string {
13441	return awsutil.Prettify(s)
13442}
13443
13444// GoString returns the string representation
13445func (s DeleteMonitoringSubscriptionInput) GoString() string {
13446	return s.String()
13447}
13448
13449// Validate inspects the fields of the type to determine if they are valid.
13450func (s *DeleteMonitoringSubscriptionInput) Validate() error {
13451	invalidParams := request.ErrInvalidParams{Context: "DeleteMonitoringSubscriptionInput"}
13452	if s.DistributionId == nil {
13453		invalidParams.Add(request.NewErrParamRequired("DistributionId"))
13454	}
13455	if s.DistributionId != nil && len(*s.DistributionId) < 1 {
13456		invalidParams.Add(request.NewErrParamMinLen("DistributionId", 1))
13457	}
13458
13459	if invalidParams.Len() > 0 {
13460		return invalidParams
13461	}
13462	return nil
13463}
13464
13465// SetDistributionId sets the DistributionId field's value.
13466func (s *DeleteMonitoringSubscriptionInput) SetDistributionId(v string) *DeleteMonitoringSubscriptionInput {
13467	s.DistributionId = &v
13468	return s
13469}
13470
13471type DeleteMonitoringSubscriptionOutput struct {
13472	_ struct{} `type:"structure"`
13473}
13474
13475// String returns the string representation
13476func (s DeleteMonitoringSubscriptionOutput) String() string {
13477	return awsutil.Prettify(s)
13478}
13479
13480// GoString returns the string representation
13481func (s DeleteMonitoringSubscriptionOutput) GoString() string {
13482	return s.String()
13483}
13484
13485type DeleteOriginRequestPolicyInput struct {
13486	_ struct{} `locationName:"DeleteOriginRequestPolicyRequest" type:"structure"`
13487
13488	// The unique identifier for the origin request policy that you are deleting.
13489	// To get the identifier, you can use ListOriginRequestPolicies.
13490	//
13491	// Id is a required field
13492	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
13493
13494	// The version of the origin request policy that you are deleting. The version
13495	// is the origin request policy’s ETag value, which you can get using ListOriginRequestPolicies,
13496	// GetOriginRequestPolicy, or GetOriginRequestPolicyConfig.
13497	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
13498}
13499
13500// String returns the string representation
13501func (s DeleteOriginRequestPolicyInput) String() string {
13502	return awsutil.Prettify(s)
13503}
13504
13505// GoString returns the string representation
13506func (s DeleteOriginRequestPolicyInput) GoString() string {
13507	return s.String()
13508}
13509
13510// Validate inspects the fields of the type to determine if they are valid.
13511func (s *DeleteOriginRequestPolicyInput) Validate() error {
13512	invalidParams := request.ErrInvalidParams{Context: "DeleteOriginRequestPolicyInput"}
13513	if s.Id == nil {
13514		invalidParams.Add(request.NewErrParamRequired("Id"))
13515	}
13516	if s.Id != nil && len(*s.Id) < 1 {
13517		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13518	}
13519
13520	if invalidParams.Len() > 0 {
13521		return invalidParams
13522	}
13523	return nil
13524}
13525
13526// SetId sets the Id field's value.
13527func (s *DeleteOriginRequestPolicyInput) SetId(v string) *DeleteOriginRequestPolicyInput {
13528	s.Id = &v
13529	return s
13530}
13531
13532// SetIfMatch sets the IfMatch field's value.
13533func (s *DeleteOriginRequestPolicyInput) SetIfMatch(v string) *DeleteOriginRequestPolicyInput {
13534	s.IfMatch = &v
13535	return s
13536}
13537
13538type DeleteOriginRequestPolicyOutput struct {
13539	_ struct{} `type:"structure"`
13540}
13541
13542// String returns the string representation
13543func (s DeleteOriginRequestPolicyOutput) String() string {
13544	return awsutil.Prettify(s)
13545}
13546
13547// GoString returns the string representation
13548func (s DeleteOriginRequestPolicyOutput) GoString() string {
13549	return s.String()
13550}
13551
13552type DeletePublicKeyInput struct {
13553	_ struct{} `locationName:"DeletePublicKeyRequest" type:"structure"`
13554
13555	// The ID of the public key you want to remove from CloudFront.
13556	//
13557	// Id is a required field
13558	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
13559
13560	// The value of the ETag header that you received when retrieving the public
13561	// key identity to delete. For example: E2QWRUHAPOMQZL.
13562	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
13563}
13564
13565// String returns the string representation
13566func (s DeletePublicKeyInput) String() string {
13567	return awsutil.Prettify(s)
13568}
13569
13570// GoString returns the string representation
13571func (s DeletePublicKeyInput) GoString() string {
13572	return s.String()
13573}
13574
13575// Validate inspects the fields of the type to determine if they are valid.
13576func (s *DeletePublicKeyInput) Validate() error {
13577	invalidParams := request.ErrInvalidParams{Context: "DeletePublicKeyInput"}
13578	if s.Id == nil {
13579		invalidParams.Add(request.NewErrParamRequired("Id"))
13580	}
13581	if s.Id != nil && len(*s.Id) < 1 {
13582		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13583	}
13584
13585	if invalidParams.Len() > 0 {
13586		return invalidParams
13587	}
13588	return nil
13589}
13590
13591// SetId sets the Id field's value.
13592func (s *DeletePublicKeyInput) SetId(v string) *DeletePublicKeyInput {
13593	s.Id = &v
13594	return s
13595}
13596
13597// SetIfMatch sets the IfMatch field's value.
13598func (s *DeletePublicKeyInput) SetIfMatch(v string) *DeletePublicKeyInput {
13599	s.IfMatch = &v
13600	return s
13601}
13602
13603type DeletePublicKeyOutput struct {
13604	_ struct{} `type:"structure"`
13605}
13606
13607// String returns the string representation
13608func (s DeletePublicKeyOutput) String() string {
13609	return awsutil.Prettify(s)
13610}
13611
13612// GoString returns the string representation
13613func (s DeletePublicKeyOutput) GoString() string {
13614	return s.String()
13615}
13616
13617type DeleteRealtimeLogConfigInput struct {
13618	_ struct{} `locationName:"DeleteRealtimeLogConfigRequest" type:"structure" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
13619
13620	// The Amazon Resource Name (ARN) of the real-time log configuration to delete.
13621	ARN *string `type:"string"`
13622
13623	// The name of the real-time log configuration to delete.
13624	Name *string `type:"string"`
13625}
13626
13627// String returns the string representation
13628func (s DeleteRealtimeLogConfigInput) String() string {
13629	return awsutil.Prettify(s)
13630}
13631
13632// GoString returns the string representation
13633func (s DeleteRealtimeLogConfigInput) GoString() string {
13634	return s.String()
13635}
13636
13637// SetARN sets the ARN field's value.
13638func (s *DeleteRealtimeLogConfigInput) SetARN(v string) *DeleteRealtimeLogConfigInput {
13639	s.ARN = &v
13640	return s
13641}
13642
13643// SetName sets the Name field's value.
13644func (s *DeleteRealtimeLogConfigInput) SetName(v string) *DeleteRealtimeLogConfigInput {
13645	s.Name = &v
13646	return s
13647}
13648
13649type DeleteRealtimeLogConfigOutput struct {
13650	_ struct{} `type:"structure"`
13651}
13652
13653// String returns the string representation
13654func (s DeleteRealtimeLogConfigOutput) String() string {
13655	return awsutil.Prettify(s)
13656}
13657
13658// GoString returns the string representation
13659func (s DeleteRealtimeLogConfigOutput) GoString() string {
13660	return s.String()
13661}
13662
13663// The request to delete a streaming distribution.
13664type DeleteStreamingDistributionInput struct {
13665	_ struct{} `locationName:"DeleteStreamingDistributionRequest" type:"structure"`
13666
13667	// The distribution ID.
13668	//
13669	// Id is a required field
13670	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
13671
13672	// The value of the ETag header that you received when you disabled the streaming
13673	// distribution. For example: E2QWRUHAPOMQZL.
13674	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
13675}
13676
13677// String returns the string representation
13678func (s DeleteStreamingDistributionInput) String() string {
13679	return awsutil.Prettify(s)
13680}
13681
13682// GoString returns the string representation
13683func (s DeleteStreamingDistributionInput) GoString() string {
13684	return s.String()
13685}
13686
13687// Validate inspects the fields of the type to determine if they are valid.
13688func (s *DeleteStreamingDistributionInput) Validate() error {
13689	invalidParams := request.ErrInvalidParams{Context: "DeleteStreamingDistributionInput"}
13690	if s.Id == nil {
13691		invalidParams.Add(request.NewErrParamRequired("Id"))
13692	}
13693	if s.Id != nil && len(*s.Id) < 1 {
13694		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13695	}
13696
13697	if invalidParams.Len() > 0 {
13698		return invalidParams
13699	}
13700	return nil
13701}
13702
13703// SetId sets the Id field's value.
13704func (s *DeleteStreamingDistributionInput) SetId(v string) *DeleteStreamingDistributionInput {
13705	s.Id = &v
13706	return s
13707}
13708
13709// SetIfMatch sets the IfMatch field's value.
13710func (s *DeleteStreamingDistributionInput) SetIfMatch(v string) *DeleteStreamingDistributionInput {
13711	s.IfMatch = &v
13712	return s
13713}
13714
13715type DeleteStreamingDistributionOutput struct {
13716	_ struct{} `type:"structure"`
13717}
13718
13719// String returns the string representation
13720func (s DeleteStreamingDistributionOutput) String() string {
13721	return awsutil.Prettify(s)
13722}
13723
13724// GoString returns the string representation
13725func (s DeleteStreamingDistributionOutput) GoString() string {
13726	return s.String()
13727}
13728
13729type DescribeFunctionInput struct {
13730	_ struct{} `locationName:"DescribeFunctionRequest" type:"structure"`
13731
13732	// The name of the function that you are getting information about.
13733	//
13734	// Name is a required field
13735	Name *string `location:"uri" locationName:"Name" type:"string" required:"true"`
13736
13737	// The function’s stage, either DEVELOPMENT or LIVE.
13738	Stage *string `location:"querystring" locationName:"Stage" type:"string" enum:"FunctionStage"`
13739}
13740
13741// String returns the string representation
13742func (s DescribeFunctionInput) String() string {
13743	return awsutil.Prettify(s)
13744}
13745
13746// GoString returns the string representation
13747func (s DescribeFunctionInput) GoString() string {
13748	return s.String()
13749}
13750
13751// Validate inspects the fields of the type to determine if they are valid.
13752func (s *DescribeFunctionInput) Validate() error {
13753	invalidParams := request.ErrInvalidParams{Context: "DescribeFunctionInput"}
13754	if s.Name == nil {
13755		invalidParams.Add(request.NewErrParamRequired("Name"))
13756	}
13757	if s.Name != nil && len(*s.Name) < 1 {
13758		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
13759	}
13760
13761	if invalidParams.Len() > 0 {
13762		return invalidParams
13763	}
13764	return nil
13765}
13766
13767// SetName sets the Name field's value.
13768func (s *DescribeFunctionInput) SetName(v string) *DescribeFunctionInput {
13769	s.Name = &v
13770	return s
13771}
13772
13773// SetStage sets the Stage field's value.
13774func (s *DescribeFunctionInput) SetStage(v string) *DescribeFunctionInput {
13775	s.Stage = &v
13776	return s
13777}
13778
13779type DescribeFunctionOutput struct {
13780	_ struct{} `type:"structure" payload:"FunctionSummary"`
13781
13782	// The version identifier for the current version of the CloudFront function.
13783	ETag *string `location:"header" locationName:"ETag" type:"string"`
13784
13785	// Contains configuration information and metadata about a CloudFront function.
13786	FunctionSummary *FunctionSummary `type:"structure"`
13787}
13788
13789// String returns the string representation
13790func (s DescribeFunctionOutput) String() string {
13791	return awsutil.Prettify(s)
13792}
13793
13794// GoString returns the string representation
13795func (s DescribeFunctionOutput) GoString() string {
13796	return s.String()
13797}
13798
13799// SetETag sets the ETag field's value.
13800func (s *DescribeFunctionOutput) SetETag(v string) *DescribeFunctionOutput {
13801	s.ETag = &v
13802	return s
13803}
13804
13805// SetFunctionSummary sets the FunctionSummary field's value.
13806func (s *DescribeFunctionOutput) SetFunctionSummary(v *FunctionSummary) *DescribeFunctionOutput {
13807	s.FunctionSummary = v
13808	return s
13809}
13810
13811// A distribution tells CloudFront where you want content to be delivered from,
13812// and the details about how to track and manage content delivery.
13813type Distribution struct {
13814	_ struct{} `type:"structure"`
13815
13816	// The ARN (Amazon Resource Name) for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5,
13817	// where 123456789012 is your account ID.
13818	//
13819	// ARN is a required field
13820	ARN *string `type:"string" required:"true"`
13821
13822	// CloudFront automatically adds this field to the response if you’ve configured
13823	// a cache behavior in this distribution to serve private content using key
13824	// groups. This field contains a list of key groups and the public keys in each
13825	// key group that CloudFront can use to verify the signatures of signed URLs
13826	// or signed cookies.
13827	ActiveTrustedKeyGroups *ActiveTrustedKeyGroups `type:"structure"`
13828
13829	//
13830	// We recommend using TrustedKeyGroups instead of TrustedSigners.
13831	//
13832	// CloudFront automatically adds this field to the response if you’ve configured
13833	// a cache behavior in this distribution to serve private content using trusted
13834	// signers. This field contains a list of account IDs and the active CloudFront
13835	// key pairs in each account that CloudFront can use to verify the signatures
13836	// of signed URLs or signed cookies.
13837	ActiveTrustedSigners *ActiveTrustedSigners `type:"structure"`
13838
13839	// Amazon Web Services services in China customers must file for an Internet
13840	// Content Provider (ICP) recordal if they want to serve content publicly on
13841	// an alternate domain name, also known as a CNAME, that they've added to CloudFront.
13842	// AliasICPRecordal provides the ICP recordal status for CNAMEs associated with
13843	// distributions.
13844	//
13845	// For more information about ICP recordals, see Signup, Accounts, and Credentials
13846	// (https://docs.amazonaws.cn/en_us/aws/latest/userguide/accounts-and-credentials.html)
13847	// in Getting Started with Amazon Web Services services in China.
13848	AliasICPRecordals []*AliasICPRecordal `locationNameList:"AliasICPRecordal" type:"list"`
13849
13850	// The current configuration information for the distribution. Send a GET request
13851	// to the /CloudFront API version/distribution ID/config resource.
13852	//
13853	// DistributionConfig is a required field
13854	DistributionConfig *DistributionConfig `type:"structure" required:"true"`
13855
13856	// The domain name corresponding to the distribution, for example, d111111abcdef8.cloudfront.net.
13857	//
13858	// DomainName is a required field
13859	DomainName *string `type:"string" required:"true"`
13860
13861	// The identifier for the distribution. For example: EDFDVBD632BHDS5.
13862	//
13863	// Id is a required field
13864	Id *string `type:"string" required:"true"`
13865
13866	// The number of invalidation batches currently in progress.
13867	//
13868	// InProgressInvalidationBatches is a required field
13869	InProgressInvalidationBatches *int64 `type:"integer" required:"true"`
13870
13871	// The date and time the distribution was last modified.
13872	//
13873	// LastModifiedTime is a required field
13874	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
13875
13876	// This response element indicates the current status of the distribution. When
13877	// the status is Deployed, the distribution's information is fully propagated
13878	// to all CloudFront edge locations.
13879	//
13880	// Status is a required field
13881	Status *string `type:"string" required:"true"`
13882}
13883
13884// String returns the string representation
13885func (s Distribution) String() string {
13886	return awsutil.Prettify(s)
13887}
13888
13889// GoString returns the string representation
13890func (s Distribution) GoString() string {
13891	return s.String()
13892}
13893
13894// SetARN sets the ARN field's value.
13895func (s *Distribution) SetARN(v string) *Distribution {
13896	s.ARN = &v
13897	return s
13898}
13899
13900// SetActiveTrustedKeyGroups sets the ActiveTrustedKeyGroups field's value.
13901func (s *Distribution) SetActiveTrustedKeyGroups(v *ActiveTrustedKeyGroups) *Distribution {
13902	s.ActiveTrustedKeyGroups = v
13903	return s
13904}
13905
13906// SetActiveTrustedSigners sets the ActiveTrustedSigners field's value.
13907func (s *Distribution) SetActiveTrustedSigners(v *ActiveTrustedSigners) *Distribution {
13908	s.ActiveTrustedSigners = v
13909	return s
13910}
13911
13912// SetAliasICPRecordals sets the AliasICPRecordals field's value.
13913func (s *Distribution) SetAliasICPRecordals(v []*AliasICPRecordal) *Distribution {
13914	s.AliasICPRecordals = v
13915	return s
13916}
13917
13918// SetDistributionConfig sets the DistributionConfig field's value.
13919func (s *Distribution) SetDistributionConfig(v *DistributionConfig) *Distribution {
13920	s.DistributionConfig = v
13921	return s
13922}
13923
13924// SetDomainName sets the DomainName field's value.
13925func (s *Distribution) SetDomainName(v string) *Distribution {
13926	s.DomainName = &v
13927	return s
13928}
13929
13930// SetId sets the Id field's value.
13931func (s *Distribution) SetId(v string) *Distribution {
13932	s.Id = &v
13933	return s
13934}
13935
13936// SetInProgressInvalidationBatches sets the InProgressInvalidationBatches field's value.
13937func (s *Distribution) SetInProgressInvalidationBatches(v int64) *Distribution {
13938	s.InProgressInvalidationBatches = &v
13939	return s
13940}
13941
13942// SetLastModifiedTime sets the LastModifiedTime field's value.
13943func (s *Distribution) SetLastModifiedTime(v time.Time) *Distribution {
13944	s.LastModifiedTime = &v
13945	return s
13946}
13947
13948// SetStatus sets the Status field's value.
13949func (s *Distribution) SetStatus(v string) *Distribution {
13950	s.Status = &v
13951	return s
13952}
13953
13954// A distribution configuration.
13955type DistributionConfig struct {
13956	_ struct{} `type:"structure"`
13957
13958	// A complex type that contains information about CNAMEs (alternate domain names),
13959	// if any, for this distribution.
13960	Aliases *Aliases `type:"structure"`
13961
13962	// A complex type that contains zero or more CacheBehavior elements.
13963	CacheBehaviors *CacheBehaviors `type:"structure"`
13964
13965	// A unique value (for example, a date-time stamp) that ensures that the request
13966	// can't be replayed.
13967	//
13968	// If the value of CallerReference is new (regardless of the content of the
13969	// DistributionConfig object), CloudFront creates a new distribution.
13970	//
13971	// If CallerReference is a value that you already sent in a previous request
13972	// to create a distribution, CloudFront returns a DistributionAlreadyExists
13973	// error.
13974	//
13975	// CallerReference is a required field
13976	CallerReference *string `type:"string" required:"true"`
13977
13978	// An optional comment to describe the distribution. The comment cannot be longer
13979	// than 128 characters.
13980	//
13981	// Comment is a required field
13982	Comment *string `type:"string" required:"true" sensitive:"true"`
13983
13984	// A complex type that controls the following:
13985	//
13986	//    * Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range
13987	//    with custom error messages before returning the response to the viewer.
13988	//
13989	//    * How long CloudFront caches HTTP status codes in the 4xx and 5xx range.
13990	//
13991	// For more information about custom error pages, see Customizing Error Responses
13992	// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html)
13993	// in the Amazon CloudFront Developer Guide.
13994	CustomErrorResponses *CustomErrorResponses `type:"structure"`
13995
13996	// A complex type that describes the default cache behavior if you don't specify
13997	// a CacheBehavior element or if files don't match any of the values of PathPattern
13998	// in CacheBehavior elements. You must create exactly one default cache behavior.
13999	//
14000	// DefaultCacheBehavior is a required field
14001	DefaultCacheBehavior *DefaultCacheBehavior `type:"structure" required:"true"`
14002
14003	// The object that you want CloudFront to request from your origin (for example,
14004	// index.html) when a viewer requests the root URL for your distribution (http://www.example.com)
14005	// instead of an object in your distribution (http://www.example.com/product-description.html).
14006	// Specifying a default root object avoids exposing the contents of your distribution.
14007	//
14008	// Specify only the object name, for example, index.html. Don't add a / before
14009	// the object name.
14010	//
14011	// If you don't want to specify a default root object when you create a distribution,
14012	// include an empty DefaultRootObject element.
14013	//
14014	// To delete the default root object from an existing distribution, update the
14015	// distribution configuration and include an empty DefaultRootObject element.
14016	//
14017	// To replace the default root object, update the distribution configuration
14018	// and specify the new object.
14019	//
14020	// For more information about the default root object, see Creating a Default
14021	// Root Object (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html)
14022	// in the Amazon CloudFront Developer Guide.
14023	DefaultRootObject *string `type:"string"`
14024
14025	// From this field, you can enable or disable the selected distribution.
14026	//
14027	// Enabled is a required field
14028	Enabled *bool `type:"boolean" required:"true"`
14029
14030	// (Optional) Specify the maximum HTTP version that you want viewers to use
14031	// to communicate with CloudFront. The default value for new web distributions
14032	// is http2. Viewers that don't support HTTP/2 automatically use an earlier
14033	// HTTP version.
14034	//
14035	// For viewers and CloudFront to use HTTP/2, viewers must support TLS 1.2 or
14036	// later, and must support Server Name Identification (SNI).
14037	//
14038	// In general, configuring CloudFront to communicate with viewers using HTTP/2
14039	// reduces latency. You can improve performance by optimizing for HTTP/2. For
14040	// more information, do an Internet search for "http/2 optimization."
14041	HttpVersion *string `type:"string" enum:"HttpVersion"`
14042
14043	// If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address
14044	// for your distribution, specify true. If you specify false, CloudFront responds
14045	// to IPv6 DNS requests with the DNS response code NOERROR and with no IP addresses.
14046	// This allows viewers to submit a second request, for an IPv4 address for your
14047	// distribution.
14048	//
14049	// In general, you should enable IPv6 if you have users on IPv6 networks who
14050	// want to access your content. However, if you're using signed URLs or signed
14051	// cookies to restrict access to your content, and if you're using a custom
14052	// policy that includes the IpAddress parameter to restrict the IP addresses
14053	// that can access your content, don't enable IPv6. If you want to restrict
14054	// access to some content by IP address and not restrict access to other content
14055	// (or restrict access but not by IP address), you can create two distributions.
14056	// For more information, see Creating a Signed URL Using a Custom Policy (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html)
14057	// in the Amazon CloudFront Developer Guide.
14058	//
14059	// If you're using an Route 53 Amazon Web Services Integration alias resource
14060	// record set to route traffic to your CloudFront distribution, you need to
14061	// create a second alias resource record set when both of the following are
14062	// true:
14063	//
14064	//    * You enable IPv6 for the distribution
14065	//
14066	//    * You're using alternate domain names in the URLs for your objects
14067	//
14068	// For more information, see Routing Traffic to an Amazon CloudFront Web Distribution
14069	// by Using Your Domain Name (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html)
14070	// in the Route 53 Amazon Web Services Integration Developer Guide.
14071	//
14072	// If you created a CNAME resource record set, either with Route 53 Amazon Web
14073	// Services Integration or with another DNS service, you don't need to make
14074	// any changes. A CNAME record will route traffic to your distribution regardless
14075	// of the IP address format of the viewer request.
14076	IsIPV6Enabled *bool `type:"boolean"`
14077
14078	// A complex type that controls whether access logs are written for the distribution.
14079	//
14080	// For more information about logging, see Access Logs (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html)
14081	// in the Amazon CloudFront Developer Guide.
14082	Logging *LoggingConfig `type:"structure"`
14083
14084	// A complex type that contains information about origin groups for this distribution.
14085	OriginGroups *OriginGroups `type:"structure"`
14086
14087	// A complex type that contains information about origins for this distribution.
14088	//
14089	// Origins is a required field
14090	Origins *Origins `type:"structure" required:"true"`
14091
14092	// The price class that corresponds with the maximum price that you want to
14093	// pay for CloudFront service. If you specify PriceClass_All, CloudFront responds
14094	// to requests for your objects from all CloudFront edge locations.
14095	//
14096	// If you specify a price class other than PriceClass_All, CloudFront serves
14097	// your objects from the CloudFront edge location that has the lowest latency
14098	// among the edge locations in your price class. Viewers who are in or near
14099	// regions that are excluded from your specified price class may encounter slower
14100	// performance.
14101	//
14102	// For more information about price classes, see Choosing the Price Class for
14103	// a CloudFront Distribution (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html)
14104	// in the Amazon CloudFront Developer Guide. For information about CloudFront
14105	// pricing, including how price classes (such as Price Class 100) map to CloudFront
14106	// regions, see Amazon CloudFront Pricing (http://aws.amazon.com/cloudfront/pricing/).
14107	PriceClass *string `type:"string" enum:"PriceClass"`
14108
14109	// A complex type that identifies ways in which you want to restrict distribution
14110	// of your content.
14111	Restrictions *Restrictions `type:"structure"`
14112
14113	// A complex type that determines the distribution’s SSL/TLS configuration
14114	// for communicating with viewers.
14115	ViewerCertificate *ViewerCertificate `type:"structure"`
14116
14117	// A unique identifier that specifies the WAF web ACL, if any, to associate
14118	// with this distribution. To specify a web ACL created using the latest version
14119	// of WAF, use the ACL ARN, for example arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a.
14120	// To specify a web ACL created using WAF Classic, use the ACL ID, for example
14121	// 473e64fd-f30b-4765-81a0-62ad96dd167a.
14122	//
14123	// WAF is a web application firewall that lets you monitor the HTTP and HTTPS
14124	// requests that are forwarded to CloudFront, and lets you control access to
14125	// your content. Based on conditions that you specify, such as the IP addresses
14126	// that requests originate from or the values of query strings, CloudFront responds
14127	// to requests either with the requested content or with an HTTP 403 status
14128	// code (Forbidden). You can also configure CloudFront to return a custom error
14129	// page when a request is blocked. For more information about WAF, see the WAF
14130	// Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html).
14131	WebACLId *string `type:"string"`
14132}
14133
14134// String returns the string representation
14135func (s DistributionConfig) String() string {
14136	return awsutil.Prettify(s)
14137}
14138
14139// GoString returns the string representation
14140func (s DistributionConfig) GoString() string {
14141	return s.String()
14142}
14143
14144// Validate inspects the fields of the type to determine if they are valid.
14145func (s *DistributionConfig) Validate() error {
14146	invalidParams := request.ErrInvalidParams{Context: "DistributionConfig"}
14147	if s.CallerReference == nil {
14148		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
14149	}
14150	if s.Comment == nil {
14151		invalidParams.Add(request.NewErrParamRequired("Comment"))
14152	}
14153	if s.DefaultCacheBehavior == nil {
14154		invalidParams.Add(request.NewErrParamRequired("DefaultCacheBehavior"))
14155	}
14156	if s.Enabled == nil {
14157		invalidParams.Add(request.NewErrParamRequired("Enabled"))
14158	}
14159	if s.Origins == nil {
14160		invalidParams.Add(request.NewErrParamRequired("Origins"))
14161	}
14162	if s.Aliases != nil {
14163		if err := s.Aliases.Validate(); err != nil {
14164			invalidParams.AddNested("Aliases", err.(request.ErrInvalidParams))
14165		}
14166	}
14167	if s.CacheBehaviors != nil {
14168		if err := s.CacheBehaviors.Validate(); err != nil {
14169			invalidParams.AddNested("CacheBehaviors", err.(request.ErrInvalidParams))
14170		}
14171	}
14172	if s.CustomErrorResponses != nil {
14173		if err := s.CustomErrorResponses.Validate(); err != nil {
14174			invalidParams.AddNested("CustomErrorResponses", err.(request.ErrInvalidParams))
14175		}
14176	}
14177	if s.DefaultCacheBehavior != nil {
14178		if err := s.DefaultCacheBehavior.Validate(); err != nil {
14179			invalidParams.AddNested("DefaultCacheBehavior", err.(request.ErrInvalidParams))
14180		}
14181	}
14182	if s.Logging != nil {
14183		if err := s.Logging.Validate(); err != nil {
14184			invalidParams.AddNested("Logging", err.(request.ErrInvalidParams))
14185		}
14186	}
14187	if s.OriginGroups != nil {
14188		if err := s.OriginGroups.Validate(); err != nil {
14189			invalidParams.AddNested("OriginGroups", err.(request.ErrInvalidParams))
14190		}
14191	}
14192	if s.Origins != nil {
14193		if err := s.Origins.Validate(); err != nil {
14194			invalidParams.AddNested("Origins", err.(request.ErrInvalidParams))
14195		}
14196	}
14197	if s.Restrictions != nil {
14198		if err := s.Restrictions.Validate(); err != nil {
14199			invalidParams.AddNested("Restrictions", err.(request.ErrInvalidParams))
14200		}
14201	}
14202
14203	if invalidParams.Len() > 0 {
14204		return invalidParams
14205	}
14206	return nil
14207}
14208
14209// SetAliases sets the Aliases field's value.
14210func (s *DistributionConfig) SetAliases(v *Aliases) *DistributionConfig {
14211	s.Aliases = v
14212	return s
14213}
14214
14215// SetCacheBehaviors sets the CacheBehaviors field's value.
14216func (s *DistributionConfig) SetCacheBehaviors(v *CacheBehaviors) *DistributionConfig {
14217	s.CacheBehaviors = v
14218	return s
14219}
14220
14221// SetCallerReference sets the CallerReference field's value.
14222func (s *DistributionConfig) SetCallerReference(v string) *DistributionConfig {
14223	s.CallerReference = &v
14224	return s
14225}
14226
14227// SetComment sets the Comment field's value.
14228func (s *DistributionConfig) SetComment(v string) *DistributionConfig {
14229	s.Comment = &v
14230	return s
14231}
14232
14233// SetCustomErrorResponses sets the CustomErrorResponses field's value.
14234func (s *DistributionConfig) SetCustomErrorResponses(v *CustomErrorResponses) *DistributionConfig {
14235	s.CustomErrorResponses = v
14236	return s
14237}
14238
14239// SetDefaultCacheBehavior sets the DefaultCacheBehavior field's value.
14240func (s *DistributionConfig) SetDefaultCacheBehavior(v *DefaultCacheBehavior) *DistributionConfig {
14241	s.DefaultCacheBehavior = v
14242	return s
14243}
14244
14245// SetDefaultRootObject sets the DefaultRootObject field's value.
14246func (s *DistributionConfig) SetDefaultRootObject(v string) *DistributionConfig {
14247	s.DefaultRootObject = &v
14248	return s
14249}
14250
14251// SetEnabled sets the Enabled field's value.
14252func (s *DistributionConfig) SetEnabled(v bool) *DistributionConfig {
14253	s.Enabled = &v
14254	return s
14255}
14256
14257// SetHttpVersion sets the HttpVersion field's value.
14258func (s *DistributionConfig) SetHttpVersion(v string) *DistributionConfig {
14259	s.HttpVersion = &v
14260	return s
14261}
14262
14263// SetIsIPV6Enabled sets the IsIPV6Enabled field's value.
14264func (s *DistributionConfig) SetIsIPV6Enabled(v bool) *DistributionConfig {
14265	s.IsIPV6Enabled = &v
14266	return s
14267}
14268
14269// SetLogging sets the Logging field's value.
14270func (s *DistributionConfig) SetLogging(v *LoggingConfig) *DistributionConfig {
14271	s.Logging = v
14272	return s
14273}
14274
14275// SetOriginGroups sets the OriginGroups field's value.
14276func (s *DistributionConfig) SetOriginGroups(v *OriginGroups) *DistributionConfig {
14277	s.OriginGroups = v
14278	return s
14279}
14280
14281// SetOrigins sets the Origins field's value.
14282func (s *DistributionConfig) SetOrigins(v *Origins) *DistributionConfig {
14283	s.Origins = v
14284	return s
14285}
14286
14287// SetPriceClass sets the PriceClass field's value.
14288func (s *DistributionConfig) SetPriceClass(v string) *DistributionConfig {
14289	s.PriceClass = &v
14290	return s
14291}
14292
14293// SetRestrictions sets the Restrictions field's value.
14294func (s *DistributionConfig) SetRestrictions(v *Restrictions) *DistributionConfig {
14295	s.Restrictions = v
14296	return s
14297}
14298
14299// SetViewerCertificate sets the ViewerCertificate field's value.
14300func (s *DistributionConfig) SetViewerCertificate(v *ViewerCertificate) *DistributionConfig {
14301	s.ViewerCertificate = v
14302	return s
14303}
14304
14305// SetWebACLId sets the WebACLId field's value.
14306func (s *DistributionConfig) SetWebACLId(v string) *DistributionConfig {
14307	s.WebACLId = &v
14308	return s
14309}
14310
14311// A distribution Configuration and a list of tags to be associated with the
14312// distribution.
14313type DistributionConfigWithTags struct {
14314	_ struct{} `type:"structure"`
14315
14316	// A distribution configuration.
14317	//
14318	// DistributionConfig is a required field
14319	DistributionConfig *DistributionConfig `type:"structure" required:"true"`
14320
14321	// A complex type that contains zero or more Tag elements.
14322	//
14323	// Tags is a required field
14324	Tags *Tags `type:"structure" required:"true"`
14325}
14326
14327// String returns the string representation
14328func (s DistributionConfigWithTags) String() string {
14329	return awsutil.Prettify(s)
14330}
14331
14332// GoString returns the string representation
14333func (s DistributionConfigWithTags) GoString() string {
14334	return s.String()
14335}
14336
14337// Validate inspects the fields of the type to determine if they are valid.
14338func (s *DistributionConfigWithTags) Validate() error {
14339	invalidParams := request.ErrInvalidParams{Context: "DistributionConfigWithTags"}
14340	if s.DistributionConfig == nil {
14341		invalidParams.Add(request.NewErrParamRequired("DistributionConfig"))
14342	}
14343	if s.Tags == nil {
14344		invalidParams.Add(request.NewErrParamRequired("Tags"))
14345	}
14346	if s.DistributionConfig != nil {
14347		if err := s.DistributionConfig.Validate(); err != nil {
14348			invalidParams.AddNested("DistributionConfig", err.(request.ErrInvalidParams))
14349		}
14350	}
14351	if s.Tags != nil {
14352		if err := s.Tags.Validate(); err != nil {
14353			invalidParams.AddNested("Tags", err.(request.ErrInvalidParams))
14354		}
14355	}
14356
14357	if invalidParams.Len() > 0 {
14358		return invalidParams
14359	}
14360	return nil
14361}
14362
14363// SetDistributionConfig sets the DistributionConfig field's value.
14364func (s *DistributionConfigWithTags) SetDistributionConfig(v *DistributionConfig) *DistributionConfigWithTags {
14365	s.DistributionConfig = v
14366	return s
14367}
14368
14369// SetTags sets the Tags field's value.
14370func (s *DistributionConfigWithTags) SetTags(v *Tags) *DistributionConfigWithTags {
14371	s.Tags = v
14372	return s
14373}
14374
14375// A list of distribution IDs.
14376type DistributionIdList struct {
14377	_ struct{} `type:"structure"`
14378
14379	// A flag that indicates whether more distribution IDs remain to be listed.
14380	// If your results were truncated, you can make a subsequent request using the
14381	// Marker request field to retrieve more distribution IDs in the list.
14382	//
14383	// IsTruncated is a required field
14384	IsTruncated *bool `type:"boolean" required:"true"`
14385
14386	// Contains the distribution IDs in the list.
14387	Items []*string `locationNameList:"DistributionId" type:"list"`
14388
14389	// The value provided in the Marker request field.
14390	//
14391	// Marker is a required field
14392	Marker *string `type:"string" required:"true"`
14393
14394	// The maximum number of distribution IDs requested.
14395	//
14396	// MaxItems is a required field
14397	MaxItems *int64 `type:"integer" required:"true"`
14398
14399	// Contains the value that you should use in the Marker field of a subsequent
14400	// request to continue listing distribution IDs where you left off.
14401	NextMarker *string `type:"string"`
14402
14403	// The total number of distribution IDs returned in the response.
14404	//
14405	// Quantity is a required field
14406	Quantity *int64 `type:"integer" required:"true"`
14407}
14408
14409// String returns the string representation
14410func (s DistributionIdList) String() string {
14411	return awsutil.Prettify(s)
14412}
14413
14414// GoString returns the string representation
14415func (s DistributionIdList) GoString() string {
14416	return s.String()
14417}
14418
14419// SetIsTruncated sets the IsTruncated field's value.
14420func (s *DistributionIdList) SetIsTruncated(v bool) *DistributionIdList {
14421	s.IsTruncated = &v
14422	return s
14423}
14424
14425// SetItems sets the Items field's value.
14426func (s *DistributionIdList) SetItems(v []*string) *DistributionIdList {
14427	s.Items = v
14428	return s
14429}
14430
14431// SetMarker sets the Marker field's value.
14432func (s *DistributionIdList) SetMarker(v string) *DistributionIdList {
14433	s.Marker = &v
14434	return s
14435}
14436
14437// SetMaxItems sets the MaxItems field's value.
14438func (s *DistributionIdList) SetMaxItems(v int64) *DistributionIdList {
14439	s.MaxItems = &v
14440	return s
14441}
14442
14443// SetNextMarker sets the NextMarker field's value.
14444func (s *DistributionIdList) SetNextMarker(v string) *DistributionIdList {
14445	s.NextMarker = &v
14446	return s
14447}
14448
14449// SetQuantity sets the Quantity field's value.
14450func (s *DistributionIdList) SetQuantity(v int64) *DistributionIdList {
14451	s.Quantity = &v
14452	return s
14453}
14454
14455// A distribution list.
14456type DistributionList struct {
14457	_ struct{} `type:"structure"`
14458
14459	// A flag that indicates whether more distributions remain to be listed. If
14460	// your results were truncated, you can make a follow-up pagination request
14461	// using the Marker request parameter to retrieve more distributions in the
14462	// list.
14463	//
14464	// IsTruncated is a required field
14465	IsTruncated *bool `type:"boolean" required:"true"`
14466
14467	// A complex type that contains one DistributionSummary element for each distribution
14468	// that was created by the current account.
14469	Items []*DistributionSummary `locationNameList:"DistributionSummary" type:"list"`
14470
14471	// The value you provided for the Marker request parameter.
14472	//
14473	// Marker is a required field
14474	Marker *string `type:"string" required:"true"`
14475
14476	// The value you provided for the MaxItems request parameter.
14477	//
14478	// MaxItems is a required field
14479	MaxItems *int64 `type:"integer" required:"true"`
14480
14481	// If IsTruncated is true, this element is present and contains the value you
14482	// can use for the Marker request parameter to continue listing your distributions
14483	// where they left off.
14484	NextMarker *string `type:"string"`
14485
14486	// The number of distributions that were created by the current account.
14487	//
14488	// Quantity is a required field
14489	Quantity *int64 `type:"integer" required:"true"`
14490}
14491
14492// String returns the string representation
14493func (s DistributionList) String() string {
14494	return awsutil.Prettify(s)
14495}
14496
14497// GoString returns the string representation
14498func (s DistributionList) GoString() string {
14499	return s.String()
14500}
14501
14502// SetIsTruncated sets the IsTruncated field's value.
14503func (s *DistributionList) SetIsTruncated(v bool) *DistributionList {
14504	s.IsTruncated = &v
14505	return s
14506}
14507
14508// SetItems sets the Items field's value.
14509func (s *DistributionList) SetItems(v []*DistributionSummary) *DistributionList {
14510	s.Items = v
14511	return s
14512}
14513
14514// SetMarker sets the Marker field's value.
14515func (s *DistributionList) SetMarker(v string) *DistributionList {
14516	s.Marker = &v
14517	return s
14518}
14519
14520// SetMaxItems sets the MaxItems field's value.
14521func (s *DistributionList) SetMaxItems(v int64) *DistributionList {
14522	s.MaxItems = &v
14523	return s
14524}
14525
14526// SetNextMarker sets the NextMarker field's value.
14527func (s *DistributionList) SetNextMarker(v string) *DistributionList {
14528	s.NextMarker = &v
14529	return s
14530}
14531
14532// SetQuantity sets the Quantity field's value.
14533func (s *DistributionList) SetQuantity(v int64) *DistributionList {
14534	s.Quantity = &v
14535	return s
14536}
14537
14538// A summary of the information about a CloudFront distribution.
14539type DistributionSummary struct {
14540	_ struct{} `type:"structure"`
14541
14542	// The ARN (Amazon Resource Name) for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5,
14543	// where 123456789012 is your account ID.
14544	//
14545	// ARN is a required field
14546	ARN *string `type:"string" required:"true"`
14547
14548	// Amazon Web Services services in China customers must file for an Internet
14549	// Content Provider (ICP) recordal if they want to serve content publicly on
14550	// an alternate domain name, also known as a CNAME, that they've added to CloudFront.
14551	// AliasICPRecordal provides the ICP recordal status for CNAMEs associated with
14552	// distributions.
14553	//
14554	// For more information about ICP recordals, see Signup, Accounts, and Credentials
14555	// (https://docs.amazonaws.cn/en_us/aws/latest/userguide/accounts-and-credentials.html)
14556	// in Getting Started with Amazon Web Services services in China.
14557	AliasICPRecordals []*AliasICPRecordal `locationNameList:"AliasICPRecordal" type:"list"`
14558
14559	// A complex type that contains information about CNAMEs (alternate domain names),
14560	// if any, for this distribution.
14561	//
14562	// Aliases is a required field
14563	Aliases *Aliases `type:"structure" required:"true"`
14564
14565	// A complex type that contains zero or more CacheBehavior elements.
14566	//
14567	// CacheBehaviors is a required field
14568	CacheBehaviors *CacheBehaviors `type:"structure" required:"true"`
14569
14570	// The comment originally specified when this distribution was created.
14571	//
14572	// Comment is a required field
14573	Comment *string `type:"string" required:"true"`
14574
14575	// A complex type that contains zero or more CustomErrorResponses elements.
14576	//
14577	// CustomErrorResponses is a required field
14578	CustomErrorResponses *CustomErrorResponses `type:"structure" required:"true"`
14579
14580	// A complex type that describes the default cache behavior if you don't specify
14581	// a CacheBehavior element or if files don't match any of the values of PathPattern
14582	// in CacheBehavior elements. You must create exactly one default cache behavior.
14583	//
14584	// DefaultCacheBehavior is a required field
14585	DefaultCacheBehavior *DefaultCacheBehavior `type:"structure" required:"true"`
14586
14587	// The domain name that corresponds to the distribution, for example, d111111abcdef8.cloudfront.net.
14588	//
14589	// DomainName is a required field
14590	DomainName *string `type:"string" required:"true"`
14591
14592	// Whether the distribution is enabled to accept user requests for content.
14593	//
14594	// Enabled is a required field
14595	Enabled *bool `type:"boolean" required:"true"`
14596
14597	// Specify the maximum HTTP version that you want viewers to use to communicate
14598	// with CloudFront. The default value for new web distributions is http2. Viewers
14599	// that don't support HTTP/2 will automatically use an earlier version.
14600	//
14601	// HttpVersion is a required field
14602	HttpVersion *string `type:"string" required:"true" enum:"HttpVersion"`
14603
14604	// The identifier for the distribution. For example: EDFDVBD632BHDS5.
14605	//
14606	// Id is a required field
14607	Id *string `type:"string" required:"true"`
14608
14609	// Whether CloudFront responds to IPv6 DNS requests with an IPv6 address for
14610	// your distribution.
14611	//
14612	// IsIPV6Enabled is a required field
14613	IsIPV6Enabled *bool `type:"boolean" required:"true"`
14614
14615	// The date and time the distribution was last modified.
14616	//
14617	// LastModifiedTime is a required field
14618	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
14619
14620	// A complex type that contains information about origin groups for this distribution.
14621	OriginGroups *OriginGroups `type:"structure"`
14622
14623	// A complex type that contains information about origins for this distribution.
14624	//
14625	// Origins is a required field
14626	Origins *Origins `type:"structure" required:"true"`
14627
14628	// A complex type that contains information about price class for this streaming
14629	// distribution.
14630	//
14631	// PriceClass is a required field
14632	PriceClass *string `type:"string" required:"true" enum:"PriceClass"`
14633
14634	// A complex type that identifies ways in which you want to restrict distribution
14635	// of your content.
14636	//
14637	// Restrictions is a required field
14638	Restrictions *Restrictions `type:"structure" required:"true"`
14639
14640	// The current status of the distribution. When the status is Deployed, the
14641	// distribution's information is propagated to all CloudFront edge locations.
14642	//
14643	// Status is a required field
14644	Status *string `type:"string" required:"true"`
14645
14646	// A complex type that determines the distribution’s SSL/TLS configuration
14647	// for communicating with viewers.
14648	//
14649	// ViewerCertificate is a required field
14650	ViewerCertificate *ViewerCertificate `type:"structure" required:"true"`
14651
14652	// The Web ACL Id (if any) associated with the distribution.
14653	//
14654	// WebACLId is a required field
14655	WebACLId *string `type:"string" required:"true"`
14656}
14657
14658// String returns the string representation
14659func (s DistributionSummary) String() string {
14660	return awsutil.Prettify(s)
14661}
14662
14663// GoString returns the string representation
14664func (s DistributionSummary) GoString() string {
14665	return s.String()
14666}
14667
14668// SetARN sets the ARN field's value.
14669func (s *DistributionSummary) SetARN(v string) *DistributionSummary {
14670	s.ARN = &v
14671	return s
14672}
14673
14674// SetAliasICPRecordals sets the AliasICPRecordals field's value.
14675func (s *DistributionSummary) SetAliasICPRecordals(v []*AliasICPRecordal) *DistributionSummary {
14676	s.AliasICPRecordals = v
14677	return s
14678}
14679
14680// SetAliases sets the Aliases field's value.
14681func (s *DistributionSummary) SetAliases(v *Aliases) *DistributionSummary {
14682	s.Aliases = v
14683	return s
14684}
14685
14686// SetCacheBehaviors sets the CacheBehaviors field's value.
14687func (s *DistributionSummary) SetCacheBehaviors(v *CacheBehaviors) *DistributionSummary {
14688	s.CacheBehaviors = v
14689	return s
14690}
14691
14692// SetComment sets the Comment field's value.
14693func (s *DistributionSummary) SetComment(v string) *DistributionSummary {
14694	s.Comment = &v
14695	return s
14696}
14697
14698// SetCustomErrorResponses sets the CustomErrorResponses field's value.
14699func (s *DistributionSummary) SetCustomErrorResponses(v *CustomErrorResponses) *DistributionSummary {
14700	s.CustomErrorResponses = v
14701	return s
14702}
14703
14704// SetDefaultCacheBehavior sets the DefaultCacheBehavior field's value.
14705func (s *DistributionSummary) SetDefaultCacheBehavior(v *DefaultCacheBehavior) *DistributionSummary {
14706	s.DefaultCacheBehavior = v
14707	return s
14708}
14709
14710// SetDomainName sets the DomainName field's value.
14711func (s *DistributionSummary) SetDomainName(v string) *DistributionSummary {
14712	s.DomainName = &v
14713	return s
14714}
14715
14716// SetEnabled sets the Enabled field's value.
14717func (s *DistributionSummary) SetEnabled(v bool) *DistributionSummary {
14718	s.Enabled = &v
14719	return s
14720}
14721
14722// SetHttpVersion sets the HttpVersion field's value.
14723func (s *DistributionSummary) SetHttpVersion(v string) *DistributionSummary {
14724	s.HttpVersion = &v
14725	return s
14726}
14727
14728// SetId sets the Id field's value.
14729func (s *DistributionSummary) SetId(v string) *DistributionSummary {
14730	s.Id = &v
14731	return s
14732}
14733
14734// SetIsIPV6Enabled sets the IsIPV6Enabled field's value.
14735func (s *DistributionSummary) SetIsIPV6Enabled(v bool) *DistributionSummary {
14736	s.IsIPV6Enabled = &v
14737	return s
14738}
14739
14740// SetLastModifiedTime sets the LastModifiedTime field's value.
14741func (s *DistributionSummary) SetLastModifiedTime(v time.Time) *DistributionSummary {
14742	s.LastModifiedTime = &v
14743	return s
14744}
14745
14746// SetOriginGroups sets the OriginGroups field's value.
14747func (s *DistributionSummary) SetOriginGroups(v *OriginGroups) *DistributionSummary {
14748	s.OriginGroups = v
14749	return s
14750}
14751
14752// SetOrigins sets the Origins field's value.
14753func (s *DistributionSummary) SetOrigins(v *Origins) *DistributionSummary {
14754	s.Origins = v
14755	return s
14756}
14757
14758// SetPriceClass sets the PriceClass field's value.
14759func (s *DistributionSummary) SetPriceClass(v string) *DistributionSummary {
14760	s.PriceClass = &v
14761	return s
14762}
14763
14764// SetRestrictions sets the Restrictions field's value.
14765func (s *DistributionSummary) SetRestrictions(v *Restrictions) *DistributionSummary {
14766	s.Restrictions = v
14767	return s
14768}
14769
14770// SetStatus sets the Status field's value.
14771func (s *DistributionSummary) SetStatus(v string) *DistributionSummary {
14772	s.Status = &v
14773	return s
14774}
14775
14776// SetViewerCertificate sets the ViewerCertificate field's value.
14777func (s *DistributionSummary) SetViewerCertificate(v *ViewerCertificate) *DistributionSummary {
14778	s.ViewerCertificate = v
14779	return s
14780}
14781
14782// SetWebACLId sets the WebACLId field's value.
14783func (s *DistributionSummary) SetWebACLId(v string) *DistributionSummary {
14784	s.WebACLId = &v
14785	return s
14786}
14787
14788// Complex data type for field-level encryption profiles that includes all of
14789// the encryption entities.
14790type EncryptionEntities struct {
14791	_ struct{} `type:"structure"`
14792
14793	// An array of field patterns in a field-level encryption content type-profile
14794	// mapping.
14795	Items []*EncryptionEntity `locationNameList:"EncryptionEntity" type:"list"`
14796
14797	// Number of field pattern items in a field-level encryption content type-profile
14798	// mapping.
14799	//
14800	// Quantity is a required field
14801	Quantity *int64 `type:"integer" required:"true"`
14802}
14803
14804// String returns the string representation
14805func (s EncryptionEntities) String() string {
14806	return awsutil.Prettify(s)
14807}
14808
14809// GoString returns the string representation
14810func (s EncryptionEntities) GoString() string {
14811	return s.String()
14812}
14813
14814// Validate inspects the fields of the type to determine if they are valid.
14815func (s *EncryptionEntities) Validate() error {
14816	invalidParams := request.ErrInvalidParams{Context: "EncryptionEntities"}
14817	if s.Quantity == nil {
14818		invalidParams.Add(request.NewErrParamRequired("Quantity"))
14819	}
14820	if s.Items != nil {
14821		for i, v := range s.Items {
14822			if v == nil {
14823				continue
14824			}
14825			if err := v.Validate(); err != nil {
14826				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
14827			}
14828		}
14829	}
14830
14831	if invalidParams.Len() > 0 {
14832		return invalidParams
14833	}
14834	return nil
14835}
14836
14837// SetItems sets the Items field's value.
14838func (s *EncryptionEntities) SetItems(v []*EncryptionEntity) *EncryptionEntities {
14839	s.Items = v
14840	return s
14841}
14842
14843// SetQuantity sets the Quantity field's value.
14844func (s *EncryptionEntities) SetQuantity(v int64) *EncryptionEntities {
14845	s.Quantity = &v
14846	return s
14847}
14848
14849// Complex data type for field-level encryption profiles that includes the encryption
14850// key and field pattern specifications.
14851type EncryptionEntity struct {
14852	_ struct{} `type:"structure"`
14853
14854	// Field patterns in a field-level encryption content type profile specify the
14855	// fields that you want to be encrypted. You can provide the full field name,
14856	// or any beginning characters followed by a wildcard (*). You can't overlap
14857	// field patterns. For example, you can't have both ABC* and AB*. Note that
14858	// field patterns are case-sensitive.
14859	//
14860	// FieldPatterns is a required field
14861	FieldPatterns *FieldPatterns `type:"structure" required:"true"`
14862
14863	// The provider associated with the public key being used for encryption. This
14864	// value must also be provided with the private key for applications to be able
14865	// to decrypt data.
14866	//
14867	// ProviderId is a required field
14868	ProviderId *string `type:"string" required:"true"`
14869
14870	// The public key associated with a set of field-level encryption patterns,
14871	// to be used when encrypting the fields that match the patterns.
14872	//
14873	// PublicKeyId is a required field
14874	PublicKeyId *string `type:"string" required:"true"`
14875}
14876
14877// String returns the string representation
14878func (s EncryptionEntity) String() string {
14879	return awsutil.Prettify(s)
14880}
14881
14882// GoString returns the string representation
14883func (s EncryptionEntity) GoString() string {
14884	return s.String()
14885}
14886
14887// Validate inspects the fields of the type to determine if they are valid.
14888func (s *EncryptionEntity) Validate() error {
14889	invalidParams := request.ErrInvalidParams{Context: "EncryptionEntity"}
14890	if s.FieldPatterns == nil {
14891		invalidParams.Add(request.NewErrParamRequired("FieldPatterns"))
14892	}
14893	if s.ProviderId == nil {
14894		invalidParams.Add(request.NewErrParamRequired("ProviderId"))
14895	}
14896	if s.PublicKeyId == nil {
14897		invalidParams.Add(request.NewErrParamRequired("PublicKeyId"))
14898	}
14899	if s.FieldPatterns != nil {
14900		if err := s.FieldPatterns.Validate(); err != nil {
14901			invalidParams.AddNested("FieldPatterns", err.(request.ErrInvalidParams))
14902		}
14903	}
14904
14905	if invalidParams.Len() > 0 {
14906		return invalidParams
14907	}
14908	return nil
14909}
14910
14911// SetFieldPatterns sets the FieldPatterns field's value.
14912func (s *EncryptionEntity) SetFieldPatterns(v *FieldPatterns) *EncryptionEntity {
14913	s.FieldPatterns = v
14914	return s
14915}
14916
14917// SetProviderId sets the ProviderId field's value.
14918func (s *EncryptionEntity) SetProviderId(v string) *EncryptionEntity {
14919	s.ProviderId = &v
14920	return s
14921}
14922
14923// SetPublicKeyId sets the PublicKeyId field's value.
14924func (s *EncryptionEntity) SetPublicKeyId(v string) *EncryptionEntity {
14925	s.PublicKeyId = &v
14926	return s
14927}
14928
14929// Contains information about the Amazon Kinesis data stream where you are sending
14930// real-time log data in a real-time log configuration.
14931type EndPoint struct {
14932	_ struct{} `type:"structure"`
14933
14934	// Contains information about the Amazon Kinesis data stream where you are sending
14935	// real-time log data.
14936	KinesisStreamConfig *KinesisStreamConfig `type:"structure"`
14937
14938	// The type of data stream where you are sending real-time log data. The only
14939	// valid value is Kinesis.
14940	//
14941	// StreamType is a required field
14942	StreamType *string `type:"string" required:"true"`
14943}
14944
14945// String returns the string representation
14946func (s EndPoint) String() string {
14947	return awsutil.Prettify(s)
14948}
14949
14950// GoString returns the string representation
14951func (s EndPoint) GoString() string {
14952	return s.String()
14953}
14954
14955// Validate inspects the fields of the type to determine if they are valid.
14956func (s *EndPoint) Validate() error {
14957	invalidParams := request.ErrInvalidParams{Context: "EndPoint"}
14958	if s.StreamType == nil {
14959		invalidParams.Add(request.NewErrParamRequired("StreamType"))
14960	}
14961	if s.KinesisStreamConfig != nil {
14962		if err := s.KinesisStreamConfig.Validate(); err != nil {
14963			invalidParams.AddNested("KinesisStreamConfig", err.(request.ErrInvalidParams))
14964		}
14965	}
14966
14967	if invalidParams.Len() > 0 {
14968		return invalidParams
14969	}
14970	return nil
14971}
14972
14973// SetKinesisStreamConfig sets the KinesisStreamConfig field's value.
14974func (s *EndPoint) SetKinesisStreamConfig(v *KinesisStreamConfig) *EndPoint {
14975	s.KinesisStreamConfig = v
14976	return s
14977}
14978
14979// SetStreamType sets the StreamType field's value.
14980func (s *EndPoint) SetStreamType(v string) *EndPoint {
14981	s.StreamType = &v
14982	return s
14983}
14984
14985// A complex data type that includes the profile configurations and other options
14986// specified for field-level encryption.
14987type FieldLevelEncryption struct {
14988	_ struct{} `type:"structure"`
14989
14990	// A complex data type that includes the profile configurations specified for
14991	// field-level encryption.
14992	//
14993	// FieldLevelEncryptionConfig is a required field
14994	FieldLevelEncryptionConfig *FieldLevelEncryptionConfig `type:"structure" required:"true"`
14995
14996	// The configuration ID for a field-level encryption configuration which includes
14997	// a set of profiles that specify certain selected data fields to be encrypted
14998	// by specific public keys.
14999	//
15000	// Id is a required field
15001	Id *string `type:"string" required:"true"`
15002
15003	// The last time the field-level encryption configuration was changed.
15004	//
15005	// LastModifiedTime is a required field
15006	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
15007}
15008
15009// String returns the string representation
15010func (s FieldLevelEncryption) String() string {
15011	return awsutil.Prettify(s)
15012}
15013
15014// GoString returns the string representation
15015func (s FieldLevelEncryption) GoString() string {
15016	return s.String()
15017}
15018
15019// SetFieldLevelEncryptionConfig sets the FieldLevelEncryptionConfig field's value.
15020func (s *FieldLevelEncryption) SetFieldLevelEncryptionConfig(v *FieldLevelEncryptionConfig) *FieldLevelEncryption {
15021	s.FieldLevelEncryptionConfig = v
15022	return s
15023}
15024
15025// SetId sets the Id field's value.
15026func (s *FieldLevelEncryption) SetId(v string) *FieldLevelEncryption {
15027	s.Id = &v
15028	return s
15029}
15030
15031// SetLastModifiedTime sets the LastModifiedTime field's value.
15032func (s *FieldLevelEncryption) SetLastModifiedTime(v time.Time) *FieldLevelEncryption {
15033	s.LastModifiedTime = &v
15034	return s
15035}
15036
15037// A complex data type that includes the profile configurations specified for
15038// field-level encryption.
15039type FieldLevelEncryptionConfig struct {
15040	_ struct{} `type:"structure"`
15041
15042	// A unique number that ensures the request can't be replayed.
15043	//
15044	// CallerReference is a required field
15045	CallerReference *string `type:"string" required:"true"`
15046
15047	// An optional comment about the configuration. The comment cannot be longer
15048	// than 128 characters.
15049	Comment *string `type:"string"`
15050
15051	// A complex data type that specifies when to forward content if a content type
15052	// isn't recognized and profiles to use as by default in a request if a query
15053	// argument doesn't specify a profile to use.
15054	ContentTypeProfileConfig *ContentTypeProfileConfig `type:"structure"`
15055
15056	// A complex data type that specifies when to forward content if a profile isn't
15057	// found and the profile that can be provided as a query argument in a request.
15058	QueryArgProfileConfig *QueryArgProfileConfig `type:"structure"`
15059}
15060
15061// String returns the string representation
15062func (s FieldLevelEncryptionConfig) String() string {
15063	return awsutil.Prettify(s)
15064}
15065
15066// GoString returns the string representation
15067func (s FieldLevelEncryptionConfig) GoString() string {
15068	return s.String()
15069}
15070
15071// Validate inspects the fields of the type to determine if they are valid.
15072func (s *FieldLevelEncryptionConfig) Validate() error {
15073	invalidParams := request.ErrInvalidParams{Context: "FieldLevelEncryptionConfig"}
15074	if s.CallerReference == nil {
15075		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
15076	}
15077	if s.ContentTypeProfileConfig != nil {
15078		if err := s.ContentTypeProfileConfig.Validate(); err != nil {
15079			invalidParams.AddNested("ContentTypeProfileConfig", err.(request.ErrInvalidParams))
15080		}
15081	}
15082	if s.QueryArgProfileConfig != nil {
15083		if err := s.QueryArgProfileConfig.Validate(); err != nil {
15084			invalidParams.AddNested("QueryArgProfileConfig", err.(request.ErrInvalidParams))
15085		}
15086	}
15087
15088	if invalidParams.Len() > 0 {
15089		return invalidParams
15090	}
15091	return nil
15092}
15093
15094// SetCallerReference sets the CallerReference field's value.
15095func (s *FieldLevelEncryptionConfig) SetCallerReference(v string) *FieldLevelEncryptionConfig {
15096	s.CallerReference = &v
15097	return s
15098}
15099
15100// SetComment sets the Comment field's value.
15101func (s *FieldLevelEncryptionConfig) SetComment(v string) *FieldLevelEncryptionConfig {
15102	s.Comment = &v
15103	return s
15104}
15105
15106// SetContentTypeProfileConfig sets the ContentTypeProfileConfig field's value.
15107func (s *FieldLevelEncryptionConfig) SetContentTypeProfileConfig(v *ContentTypeProfileConfig) *FieldLevelEncryptionConfig {
15108	s.ContentTypeProfileConfig = v
15109	return s
15110}
15111
15112// SetQueryArgProfileConfig sets the QueryArgProfileConfig field's value.
15113func (s *FieldLevelEncryptionConfig) SetQueryArgProfileConfig(v *QueryArgProfileConfig) *FieldLevelEncryptionConfig {
15114	s.QueryArgProfileConfig = v
15115	return s
15116}
15117
15118// List of field-level encrpytion configurations.
15119type FieldLevelEncryptionList struct {
15120	_ struct{} `type:"structure"`
15121
15122	// An array of field-level encryption items.
15123	Items []*FieldLevelEncryptionSummary `locationNameList:"FieldLevelEncryptionSummary" type:"list"`
15124
15125	// The maximum number of elements you want in the response body.
15126	//
15127	// MaxItems is a required field
15128	MaxItems *int64 `type:"integer" required:"true"`
15129
15130	// If there are more elements to be listed, this element is present and contains
15131	// the value that you can use for the Marker request parameter to continue listing
15132	// your configurations where you left off.
15133	NextMarker *string `type:"string"`
15134
15135	// The number of field-level encryption items.
15136	//
15137	// Quantity is a required field
15138	Quantity *int64 `type:"integer" required:"true"`
15139}
15140
15141// String returns the string representation
15142func (s FieldLevelEncryptionList) String() string {
15143	return awsutil.Prettify(s)
15144}
15145
15146// GoString returns the string representation
15147func (s FieldLevelEncryptionList) GoString() string {
15148	return s.String()
15149}
15150
15151// SetItems sets the Items field's value.
15152func (s *FieldLevelEncryptionList) SetItems(v []*FieldLevelEncryptionSummary) *FieldLevelEncryptionList {
15153	s.Items = v
15154	return s
15155}
15156
15157// SetMaxItems sets the MaxItems field's value.
15158func (s *FieldLevelEncryptionList) SetMaxItems(v int64) *FieldLevelEncryptionList {
15159	s.MaxItems = &v
15160	return s
15161}
15162
15163// SetNextMarker sets the NextMarker field's value.
15164func (s *FieldLevelEncryptionList) SetNextMarker(v string) *FieldLevelEncryptionList {
15165	s.NextMarker = &v
15166	return s
15167}
15168
15169// SetQuantity sets the Quantity field's value.
15170func (s *FieldLevelEncryptionList) SetQuantity(v int64) *FieldLevelEncryptionList {
15171	s.Quantity = &v
15172	return s
15173}
15174
15175// A complex data type for field-level encryption profiles.
15176type FieldLevelEncryptionProfile struct {
15177	_ struct{} `type:"structure"`
15178
15179	// A complex data type that includes the profile name and the encryption entities
15180	// for the field-level encryption profile.
15181	//
15182	// FieldLevelEncryptionProfileConfig is a required field
15183	FieldLevelEncryptionProfileConfig *FieldLevelEncryptionProfileConfig `type:"structure" required:"true"`
15184
15185	// The ID for a field-level encryption profile configuration which includes
15186	// a set of profiles that specify certain selected data fields to be encrypted
15187	// by specific public keys.
15188	//
15189	// Id is a required field
15190	Id *string `type:"string" required:"true"`
15191
15192	// The last time the field-level encryption profile was updated.
15193	//
15194	// LastModifiedTime is a required field
15195	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
15196}
15197
15198// String returns the string representation
15199func (s FieldLevelEncryptionProfile) String() string {
15200	return awsutil.Prettify(s)
15201}
15202
15203// GoString returns the string representation
15204func (s FieldLevelEncryptionProfile) GoString() string {
15205	return s.String()
15206}
15207
15208// SetFieldLevelEncryptionProfileConfig sets the FieldLevelEncryptionProfileConfig field's value.
15209func (s *FieldLevelEncryptionProfile) SetFieldLevelEncryptionProfileConfig(v *FieldLevelEncryptionProfileConfig) *FieldLevelEncryptionProfile {
15210	s.FieldLevelEncryptionProfileConfig = v
15211	return s
15212}
15213
15214// SetId sets the Id field's value.
15215func (s *FieldLevelEncryptionProfile) SetId(v string) *FieldLevelEncryptionProfile {
15216	s.Id = &v
15217	return s
15218}
15219
15220// SetLastModifiedTime sets the LastModifiedTime field's value.
15221func (s *FieldLevelEncryptionProfile) SetLastModifiedTime(v time.Time) *FieldLevelEncryptionProfile {
15222	s.LastModifiedTime = &v
15223	return s
15224}
15225
15226// A complex data type of profiles for the field-level encryption.
15227type FieldLevelEncryptionProfileConfig struct {
15228	_ struct{} `type:"structure"`
15229
15230	// A unique number that ensures that the request can't be replayed.
15231	//
15232	// CallerReference is a required field
15233	CallerReference *string `type:"string" required:"true"`
15234
15235	// An optional comment for the field-level encryption profile. The comment cannot
15236	// be longer than 128 characters.
15237	Comment *string `type:"string"`
15238
15239	// A complex data type of encryption entities for the field-level encryption
15240	// profile that include the public key ID, provider, and field patterns for
15241	// specifying which fields to encrypt with this key.
15242	//
15243	// EncryptionEntities is a required field
15244	EncryptionEntities *EncryptionEntities `type:"structure" required:"true"`
15245
15246	// Profile name for the field-level encryption profile.
15247	//
15248	// Name is a required field
15249	Name *string `type:"string" required:"true"`
15250}
15251
15252// String returns the string representation
15253func (s FieldLevelEncryptionProfileConfig) String() string {
15254	return awsutil.Prettify(s)
15255}
15256
15257// GoString returns the string representation
15258func (s FieldLevelEncryptionProfileConfig) GoString() string {
15259	return s.String()
15260}
15261
15262// Validate inspects the fields of the type to determine if they are valid.
15263func (s *FieldLevelEncryptionProfileConfig) Validate() error {
15264	invalidParams := request.ErrInvalidParams{Context: "FieldLevelEncryptionProfileConfig"}
15265	if s.CallerReference == nil {
15266		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
15267	}
15268	if s.EncryptionEntities == nil {
15269		invalidParams.Add(request.NewErrParamRequired("EncryptionEntities"))
15270	}
15271	if s.Name == nil {
15272		invalidParams.Add(request.NewErrParamRequired("Name"))
15273	}
15274	if s.EncryptionEntities != nil {
15275		if err := s.EncryptionEntities.Validate(); err != nil {
15276			invalidParams.AddNested("EncryptionEntities", err.(request.ErrInvalidParams))
15277		}
15278	}
15279
15280	if invalidParams.Len() > 0 {
15281		return invalidParams
15282	}
15283	return nil
15284}
15285
15286// SetCallerReference sets the CallerReference field's value.
15287func (s *FieldLevelEncryptionProfileConfig) SetCallerReference(v string) *FieldLevelEncryptionProfileConfig {
15288	s.CallerReference = &v
15289	return s
15290}
15291
15292// SetComment sets the Comment field's value.
15293func (s *FieldLevelEncryptionProfileConfig) SetComment(v string) *FieldLevelEncryptionProfileConfig {
15294	s.Comment = &v
15295	return s
15296}
15297
15298// SetEncryptionEntities sets the EncryptionEntities field's value.
15299func (s *FieldLevelEncryptionProfileConfig) SetEncryptionEntities(v *EncryptionEntities) *FieldLevelEncryptionProfileConfig {
15300	s.EncryptionEntities = v
15301	return s
15302}
15303
15304// SetName sets the Name field's value.
15305func (s *FieldLevelEncryptionProfileConfig) SetName(v string) *FieldLevelEncryptionProfileConfig {
15306	s.Name = &v
15307	return s
15308}
15309
15310// List of field-level encryption profiles.
15311type FieldLevelEncryptionProfileList struct {
15312	_ struct{} `type:"structure"`
15313
15314	// The field-level encryption profile items.
15315	Items []*FieldLevelEncryptionProfileSummary `locationNameList:"FieldLevelEncryptionProfileSummary" type:"list"`
15316
15317	// The maximum number of field-level encryption profiles you want in the response
15318	// body.
15319	//
15320	// MaxItems is a required field
15321	MaxItems *int64 `type:"integer" required:"true"`
15322
15323	// If there are more elements to be listed, this element is present and contains
15324	// the value that you can use for the Marker request parameter to continue listing
15325	// your profiles where you left off.
15326	NextMarker *string `type:"string"`
15327
15328	// The number of field-level encryption profiles.
15329	//
15330	// Quantity is a required field
15331	Quantity *int64 `type:"integer" required:"true"`
15332}
15333
15334// String returns the string representation
15335func (s FieldLevelEncryptionProfileList) String() string {
15336	return awsutil.Prettify(s)
15337}
15338
15339// GoString returns the string representation
15340func (s FieldLevelEncryptionProfileList) GoString() string {
15341	return s.String()
15342}
15343
15344// SetItems sets the Items field's value.
15345func (s *FieldLevelEncryptionProfileList) SetItems(v []*FieldLevelEncryptionProfileSummary) *FieldLevelEncryptionProfileList {
15346	s.Items = v
15347	return s
15348}
15349
15350// SetMaxItems sets the MaxItems field's value.
15351func (s *FieldLevelEncryptionProfileList) SetMaxItems(v int64) *FieldLevelEncryptionProfileList {
15352	s.MaxItems = &v
15353	return s
15354}
15355
15356// SetNextMarker sets the NextMarker field's value.
15357func (s *FieldLevelEncryptionProfileList) SetNextMarker(v string) *FieldLevelEncryptionProfileList {
15358	s.NextMarker = &v
15359	return s
15360}
15361
15362// SetQuantity sets the Quantity field's value.
15363func (s *FieldLevelEncryptionProfileList) SetQuantity(v int64) *FieldLevelEncryptionProfileList {
15364	s.Quantity = &v
15365	return s
15366}
15367
15368// The field-level encryption profile summary.
15369type FieldLevelEncryptionProfileSummary struct {
15370	_ struct{} `type:"structure"`
15371
15372	// An optional comment for the field-level encryption profile summary. The comment
15373	// cannot be longer than 128 characters.
15374	Comment *string `type:"string"`
15375
15376	// A complex data type of encryption entities for the field-level encryption
15377	// profile that include the public key ID, provider, and field patterns for
15378	// specifying which fields to encrypt with this key.
15379	//
15380	// EncryptionEntities is a required field
15381	EncryptionEntities *EncryptionEntities `type:"structure" required:"true"`
15382
15383	// ID for the field-level encryption profile summary.
15384	//
15385	// Id is a required field
15386	Id *string `type:"string" required:"true"`
15387
15388	// The time when the the field-level encryption profile summary was last updated.
15389	//
15390	// LastModifiedTime is a required field
15391	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
15392
15393	// Name for the field-level encryption profile summary.
15394	//
15395	// Name is a required field
15396	Name *string `type:"string" required:"true"`
15397}
15398
15399// String returns the string representation
15400func (s FieldLevelEncryptionProfileSummary) String() string {
15401	return awsutil.Prettify(s)
15402}
15403
15404// GoString returns the string representation
15405func (s FieldLevelEncryptionProfileSummary) GoString() string {
15406	return s.String()
15407}
15408
15409// SetComment sets the Comment field's value.
15410func (s *FieldLevelEncryptionProfileSummary) SetComment(v string) *FieldLevelEncryptionProfileSummary {
15411	s.Comment = &v
15412	return s
15413}
15414
15415// SetEncryptionEntities sets the EncryptionEntities field's value.
15416func (s *FieldLevelEncryptionProfileSummary) SetEncryptionEntities(v *EncryptionEntities) *FieldLevelEncryptionProfileSummary {
15417	s.EncryptionEntities = v
15418	return s
15419}
15420
15421// SetId sets the Id field's value.
15422func (s *FieldLevelEncryptionProfileSummary) SetId(v string) *FieldLevelEncryptionProfileSummary {
15423	s.Id = &v
15424	return s
15425}
15426
15427// SetLastModifiedTime sets the LastModifiedTime field's value.
15428func (s *FieldLevelEncryptionProfileSummary) SetLastModifiedTime(v time.Time) *FieldLevelEncryptionProfileSummary {
15429	s.LastModifiedTime = &v
15430	return s
15431}
15432
15433// SetName sets the Name field's value.
15434func (s *FieldLevelEncryptionProfileSummary) SetName(v string) *FieldLevelEncryptionProfileSummary {
15435	s.Name = &v
15436	return s
15437}
15438
15439// A summary of a field-level encryption item.
15440type FieldLevelEncryptionSummary struct {
15441	_ struct{} `type:"structure"`
15442
15443	// An optional comment about the field-level encryption item. The comment cannot
15444	// be longer than 128 characters.
15445	Comment *string `type:"string"`
15446
15447	// A summary of a content type-profile mapping.
15448	ContentTypeProfileConfig *ContentTypeProfileConfig `type:"structure"`
15449
15450	// The unique ID of a field-level encryption item.
15451	//
15452	// Id is a required field
15453	Id *string `type:"string" required:"true"`
15454
15455	// The last time that the summary of field-level encryption items was modified.
15456	//
15457	// LastModifiedTime is a required field
15458	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
15459
15460	// A summary of a query argument-profile mapping.
15461	QueryArgProfileConfig *QueryArgProfileConfig `type:"structure"`
15462}
15463
15464// String returns the string representation
15465func (s FieldLevelEncryptionSummary) String() string {
15466	return awsutil.Prettify(s)
15467}
15468
15469// GoString returns the string representation
15470func (s FieldLevelEncryptionSummary) GoString() string {
15471	return s.String()
15472}
15473
15474// SetComment sets the Comment field's value.
15475func (s *FieldLevelEncryptionSummary) SetComment(v string) *FieldLevelEncryptionSummary {
15476	s.Comment = &v
15477	return s
15478}
15479
15480// SetContentTypeProfileConfig sets the ContentTypeProfileConfig field's value.
15481func (s *FieldLevelEncryptionSummary) SetContentTypeProfileConfig(v *ContentTypeProfileConfig) *FieldLevelEncryptionSummary {
15482	s.ContentTypeProfileConfig = v
15483	return s
15484}
15485
15486// SetId sets the Id field's value.
15487func (s *FieldLevelEncryptionSummary) SetId(v string) *FieldLevelEncryptionSummary {
15488	s.Id = &v
15489	return s
15490}
15491
15492// SetLastModifiedTime sets the LastModifiedTime field's value.
15493func (s *FieldLevelEncryptionSummary) SetLastModifiedTime(v time.Time) *FieldLevelEncryptionSummary {
15494	s.LastModifiedTime = &v
15495	return s
15496}
15497
15498// SetQueryArgProfileConfig sets the QueryArgProfileConfig field's value.
15499func (s *FieldLevelEncryptionSummary) SetQueryArgProfileConfig(v *QueryArgProfileConfig) *FieldLevelEncryptionSummary {
15500	s.QueryArgProfileConfig = v
15501	return s
15502}
15503
15504// A complex data type that includes the field patterns to match for field-level
15505// encryption.
15506type FieldPatterns struct {
15507	_ struct{} `type:"structure"`
15508
15509	// An array of the field-level encryption field patterns.
15510	Items []*string `locationNameList:"FieldPattern" type:"list"`
15511
15512	// The number of field-level encryption field patterns.
15513	//
15514	// Quantity is a required field
15515	Quantity *int64 `type:"integer" required:"true"`
15516}
15517
15518// String returns the string representation
15519func (s FieldPatterns) String() string {
15520	return awsutil.Prettify(s)
15521}
15522
15523// GoString returns the string representation
15524func (s FieldPatterns) GoString() string {
15525	return s.String()
15526}
15527
15528// Validate inspects the fields of the type to determine if they are valid.
15529func (s *FieldPatterns) Validate() error {
15530	invalidParams := request.ErrInvalidParams{Context: "FieldPatterns"}
15531	if s.Quantity == nil {
15532		invalidParams.Add(request.NewErrParamRequired("Quantity"))
15533	}
15534
15535	if invalidParams.Len() > 0 {
15536		return invalidParams
15537	}
15538	return nil
15539}
15540
15541// SetItems sets the Items field's value.
15542func (s *FieldPatterns) SetItems(v []*string) *FieldPatterns {
15543	s.Items = v
15544	return s
15545}
15546
15547// SetQuantity sets the Quantity field's value.
15548func (s *FieldPatterns) SetQuantity(v int64) *FieldPatterns {
15549	s.Quantity = &v
15550	return s
15551}
15552
15553// This field is deprecated. We recommend that you use a cache policy or an
15554// origin request policy instead of this field.
15555//
15556// If you want to include values in the cache key, use a cache policy. For more
15557// information, see Creating cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
15558// in the Amazon CloudFront Developer Guide.
15559//
15560// If you want to send values to the origin but not include them in the cache
15561// key, use an origin request policy. For more information, see Creating origin
15562// request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy)
15563// in the Amazon CloudFront Developer Guide.
15564//
15565// A complex type that specifies how CloudFront handles query strings, cookies,
15566// and HTTP headers.
15567type ForwardedValues struct {
15568	_ struct{} `type:"structure"`
15569
15570	// This field is deprecated. We recommend that you use a cache policy or an
15571	// origin request policy instead of this field.
15572	//
15573	// If you want to include cookies in the cache key, use a cache policy. For
15574	// more information, see Creating cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
15575	// in the Amazon CloudFront Developer Guide.
15576	//
15577	// If you want to send cookies to the origin but not include them in the cache
15578	// key, use an origin request policy. For more information, see Creating origin
15579	// request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy)
15580	// in the Amazon CloudFront Developer Guide.
15581	//
15582	// A complex type that specifies whether you want CloudFront to forward cookies
15583	// to the origin and, if so, which ones. For more information about forwarding
15584	// cookies to the origin, see How CloudFront Forwards, Caches, and Logs Cookies
15585	// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html)
15586	// in the Amazon CloudFront Developer Guide.
15587	//
15588	// Cookies is a required field
15589	Cookies *CookiePreference `type:"structure" required:"true"`
15590
15591	// This field is deprecated. We recommend that you use a cache policy or an
15592	// origin request policy instead of this field.
15593	//
15594	// If you want to include headers in the cache key, use a cache policy. For
15595	// more information, see Creating cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
15596	// in the Amazon CloudFront Developer Guide.
15597	//
15598	// If you want to send headers to the origin but not include them in the cache
15599	// key, use an origin request policy. For more information, see Creating origin
15600	// request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy)
15601	// in the Amazon CloudFront Developer Guide.
15602	//
15603	// A complex type that specifies the Headers, if any, that you want CloudFront
15604	// to forward to the origin for this cache behavior (whitelisted headers). For
15605	// the headers that you specify, CloudFront also caches separate versions of
15606	// a specified object that is based on the header values in viewer requests.
15607	//
15608	// For more information, see Caching Content Based on Request Headers (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html)
15609	// in the Amazon CloudFront Developer Guide.
15610	Headers *Headers `type:"structure"`
15611
15612	// This field is deprecated. We recommend that you use a cache policy or an
15613	// origin request policy instead of this field.
15614	//
15615	// If you want to include query strings in the cache key, use a cache policy.
15616	// For more information, see Creating cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
15617	// in the Amazon CloudFront Developer Guide.
15618	//
15619	// If you want to send query strings to the origin but not include them in the
15620	// cache key, use an origin request policy. For more information, see Creating
15621	// origin request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy)
15622	// in the Amazon CloudFront Developer Guide.
15623	//
15624	// Indicates whether you want CloudFront to forward query strings to the origin
15625	// that is associated with this cache behavior and cache based on the query
15626	// string parameters. CloudFront behavior depends on the value of QueryString
15627	// and on the values that you specify for QueryStringCacheKeys, if any:
15628	//
15629	// If you specify true for QueryString and you don't specify any values for
15630	// QueryStringCacheKeys, CloudFront forwards all query string parameters to
15631	// the origin and caches based on all query string parameters. Depending on
15632	// how many query string parameters and values you have, this can adversely
15633	// affect performance because CloudFront must forward more requests to the origin.
15634	//
15635	// If you specify true for QueryString and you specify one or more values for
15636	// QueryStringCacheKeys, CloudFront forwards all query string parameters to
15637	// the origin, but it only caches based on the query string parameters that
15638	// you specify.
15639	//
15640	// If you specify false for QueryString, CloudFront doesn't forward any query
15641	// string parameters to the origin, and doesn't cache based on query string
15642	// parameters.
15643	//
15644	// For more information, see Configuring CloudFront to Cache Based on Query
15645	// String Parameters (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html)
15646	// in the Amazon CloudFront Developer Guide.
15647	//
15648	// QueryString is a required field
15649	QueryString *bool `type:"boolean" required:"true"`
15650
15651	// This field is deprecated. We recommend that you use a cache policy or an
15652	// origin request policy instead of this field.
15653	//
15654	// If you want to include query strings in the cache key, use a cache policy.
15655	// For more information, see Creating cache policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy)
15656	// in the Amazon CloudFront Developer Guide.
15657	//
15658	// If you want to send query strings to the origin but not include them in the
15659	// cache key, use an origin request policy. For more information, see Creating
15660	// origin request policies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy)
15661	// in the Amazon CloudFront Developer Guide.
15662	//
15663	// A complex type that contains information about the query string parameters
15664	// that you want CloudFront to use for caching for this cache behavior.
15665	QueryStringCacheKeys *QueryStringCacheKeys `type:"structure"`
15666}
15667
15668// String returns the string representation
15669func (s ForwardedValues) String() string {
15670	return awsutil.Prettify(s)
15671}
15672
15673// GoString returns the string representation
15674func (s ForwardedValues) GoString() string {
15675	return s.String()
15676}
15677
15678// Validate inspects the fields of the type to determine if they are valid.
15679func (s *ForwardedValues) Validate() error {
15680	invalidParams := request.ErrInvalidParams{Context: "ForwardedValues"}
15681	if s.Cookies == nil {
15682		invalidParams.Add(request.NewErrParamRequired("Cookies"))
15683	}
15684	if s.QueryString == nil {
15685		invalidParams.Add(request.NewErrParamRequired("QueryString"))
15686	}
15687	if s.Cookies != nil {
15688		if err := s.Cookies.Validate(); err != nil {
15689			invalidParams.AddNested("Cookies", err.(request.ErrInvalidParams))
15690		}
15691	}
15692	if s.Headers != nil {
15693		if err := s.Headers.Validate(); err != nil {
15694			invalidParams.AddNested("Headers", err.(request.ErrInvalidParams))
15695		}
15696	}
15697	if s.QueryStringCacheKeys != nil {
15698		if err := s.QueryStringCacheKeys.Validate(); err != nil {
15699			invalidParams.AddNested("QueryStringCacheKeys", err.(request.ErrInvalidParams))
15700		}
15701	}
15702
15703	if invalidParams.Len() > 0 {
15704		return invalidParams
15705	}
15706	return nil
15707}
15708
15709// SetCookies sets the Cookies field's value.
15710func (s *ForwardedValues) SetCookies(v *CookiePreference) *ForwardedValues {
15711	s.Cookies = v
15712	return s
15713}
15714
15715// SetHeaders sets the Headers field's value.
15716func (s *ForwardedValues) SetHeaders(v *Headers) *ForwardedValues {
15717	s.Headers = v
15718	return s
15719}
15720
15721// SetQueryString sets the QueryString field's value.
15722func (s *ForwardedValues) SetQueryString(v bool) *ForwardedValues {
15723	s.QueryString = &v
15724	return s
15725}
15726
15727// SetQueryStringCacheKeys sets the QueryStringCacheKeys field's value.
15728func (s *ForwardedValues) SetQueryStringCacheKeys(v *QueryStringCacheKeys) *ForwardedValues {
15729	s.QueryStringCacheKeys = v
15730	return s
15731}
15732
15733// A CloudFront function that is associated with a cache behavior in a CloudFront
15734// distribution.
15735type FunctionAssociation struct {
15736	_ struct{} `type:"structure"`
15737
15738	// The event type of the function, either viewer-request or viewer-response.
15739	// You cannot use origin-facing event types (origin-request and origin-response)
15740	// with a CloudFront function.
15741	//
15742	// EventType is a required field
15743	EventType *string `type:"string" required:"true" enum:"EventType"`
15744
15745	// The Amazon Resource Name (ARN) of the function.
15746	//
15747	// FunctionARN is a required field
15748	FunctionARN *string `type:"string" required:"true"`
15749}
15750
15751// String returns the string representation
15752func (s FunctionAssociation) String() string {
15753	return awsutil.Prettify(s)
15754}
15755
15756// GoString returns the string representation
15757func (s FunctionAssociation) GoString() string {
15758	return s.String()
15759}
15760
15761// Validate inspects the fields of the type to determine if they are valid.
15762func (s *FunctionAssociation) Validate() error {
15763	invalidParams := request.ErrInvalidParams{Context: "FunctionAssociation"}
15764	if s.EventType == nil {
15765		invalidParams.Add(request.NewErrParamRequired("EventType"))
15766	}
15767	if s.FunctionARN == nil {
15768		invalidParams.Add(request.NewErrParamRequired("FunctionARN"))
15769	}
15770
15771	if invalidParams.Len() > 0 {
15772		return invalidParams
15773	}
15774	return nil
15775}
15776
15777// SetEventType sets the EventType field's value.
15778func (s *FunctionAssociation) SetEventType(v string) *FunctionAssociation {
15779	s.EventType = &v
15780	return s
15781}
15782
15783// SetFunctionARN sets the FunctionARN field's value.
15784func (s *FunctionAssociation) SetFunctionARN(v string) *FunctionAssociation {
15785	s.FunctionARN = &v
15786	return s
15787}
15788
15789// A list of CloudFront functions that are associated with a cache behavior
15790// in a CloudFront distribution. CloudFront functions must be published to the
15791// LIVE stage to associate them with a cache behavior.
15792type FunctionAssociations struct {
15793	_ struct{} `type:"structure"`
15794
15795	// The CloudFront functions that are associated with a cache behavior in a CloudFront
15796	// distribution. CloudFront functions must be published to the LIVE stage to
15797	// associate them with a cache behavior.
15798	Items []*FunctionAssociation `locationNameList:"FunctionAssociation" type:"list"`
15799
15800	// The number of CloudFront functions in the list.
15801	//
15802	// Quantity is a required field
15803	Quantity *int64 `type:"integer" required:"true"`
15804}
15805
15806// String returns the string representation
15807func (s FunctionAssociations) String() string {
15808	return awsutil.Prettify(s)
15809}
15810
15811// GoString returns the string representation
15812func (s FunctionAssociations) GoString() string {
15813	return s.String()
15814}
15815
15816// Validate inspects the fields of the type to determine if they are valid.
15817func (s *FunctionAssociations) Validate() error {
15818	invalidParams := request.ErrInvalidParams{Context: "FunctionAssociations"}
15819	if s.Quantity == nil {
15820		invalidParams.Add(request.NewErrParamRequired("Quantity"))
15821	}
15822	if s.Items != nil {
15823		for i, v := range s.Items {
15824			if v == nil {
15825				continue
15826			}
15827			if err := v.Validate(); err != nil {
15828				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
15829			}
15830		}
15831	}
15832
15833	if invalidParams.Len() > 0 {
15834		return invalidParams
15835	}
15836	return nil
15837}
15838
15839// SetItems sets the Items field's value.
15840func (s *FunctionAssociations) SetItems(v []*FunctionAssociation) *FunctionAssociations {
15841	s.Items = v
15842	return s
15843}
15844
15845// SetQuantity sets the Quantity field's value.
15846func (s *FunctionAssociations) SetQuantity(v int64) *FunctionAssociations {
15847	s.Quantity = &v
15848	return s
15849}
15850
15851// Contains configuration information about a CloudFront function.
15852type FunctionConfig struct {
15853	_ struct{} `type:"structure"`
15854
15855	// A comment to describe the function.
15856	//
15857	// Comment is a required field
15858	Comment *string `type:"string" required:"true"`
15859
15860	// The function’s runtime environment. The only valid value is cloudfront-js-1.0.
15861	//
15862	// Runtime is a required field
15863	Runtime *string `type:"string" required:"true" enum:"FunctionRuntime"`
15864}
15865
15866// String returns the string representation
15867func (s FunctionConfig) String() string {
15868	return awsutil.Prettify(s)
15869}
15870
15871// GoString returns the string representation
15872func (s FunctionConfig) GoString() string {
15873	return s.String()
15874}
15875
15876// Validate inspects the fields of the type to determine if they are valid.
15877func (s *FunctionConfig) Validate() error {
15878	invalidParams := request.ErrInvalidParams{Context: "FunctionConfig"}
15879	if s.Comment == nil {
15880		invalidParams.Add(request.NewErrParamRequired("Comment"))
15881	}
15882	if s.Runtime == nil {
15883		invalidParams.Add(request.NewErrParamRequired("Runtime"))
15884	}
15885
15886	if invalidParams.Len() > 0 {
15887		return invalidParams
15888	}
15889	return nil
15890}
15891
15892// SetComment sets the Comment field's value.
15893func (s *FunctionConfig) SetComment(v string) *FunctionConfig {
15894	s.Comment = &v
15895	return s
15896}
15897
15898// SetRuntime sets the Runtime field's value.
15899func (s *FunctionConfig) SetRuntime(v string) *FunctionConfig {
15900	s.Runtime = &v
15901	return s
15902}
15903
15904// A list of CloudFront functions.
15905type FunctionList struct {
15906	_ struct{} `type:"structure"`
15907
15908	// Contains the functions in the list.
15909	Items []*FunctionSummary `locationNameList:"FunctionSummary" type:"list"`
15910
15911	// The maximum number of functions requested.
15912	//
15913	// MaxItems is a required field
15914	MaxItems *int64 `type:"integer" required:"true"`
15915
15916	// If there are more items in the list than are in this response, this element
15917	// is present. It contains the value that you should use in the Marker field
15918	// of a subsequent request to continue listing functions where you left off.
15919	NextMarker *string `type:"string"`
15920
15921	// The number of functions returned in the response.
15922	//
15923	// Quantity is a required field
15924	Quantity *int64 `type:"integer" required:"true"`
15925}
15926
15927// String returns the string representation
15928func (s FunctionList) String() string {
15929	return awsutil.Prettify(s)
15930}
15931
15932// GoString returns the string representation
15933func (s FunctionList) GoString() string {
15934	return s.String()
15935}
15936
15937// SetItems sets the Items field's value.
15938func (s *FunctionList) SetItems(v []*FunctionSummary) *FunctionList {
15939	s.Items = v
15940	return s
15941}
15942
15943// SetMaxItems sets the MaxItems field's value.
15944func (s *FunctionList) SetMaxItems(v int64) *FunctionList {
15945	s.MaxItems = &v
15946	return s
15947}
15948
15949// SetNextMarker sets the NextMarker field's value.
15950func (s *FunctionList) SetNextMarker(v string) *FunctionList {
15951	s.NextMarker = &v
15952	return s
15953}
15954
15955// SetQuantity sets the Quantity field's value.
15956func (s *FunctionList) SetQuantity(v int64) *FunctionList {
15957	s.Quantity = &v
15958	return s
15959}
15960
15961// Contains metadata about a CloudFront function.
15962type FunctionMetadata struct {
15963	_ struct{} `type:"structure"`
15964
15965	// The date and time when the function was created.
15966	CreatedTime *time.Time `type:"timestamp"`
15967
15968	// The Amazon Resource Name (ARN) of the function. The ARN uniquely identifies
15969	// the function.
15970	//
15971	// FunctionARN is a required field
15972	FunctionARN *string `type:"string" required:"true"`
15973
15974	// The date and time when the function was most recently updated.
15975	//
15976	// LastModifiedTime is a required field
15977	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
15978
15979	// The stage that the function is in, either DEVELOPMENT or LIVE.
15980	//
15981	// When a function is in the DEVELOPMENT stage, you can test the function with
15982	// TestFunction, and update it with UpdateFunction.
15983	//
15984	// When a function is in the LIVE stage, you can attach the function to a distribution’s
15985	// cache behavior, using the function’s ARN.
15986	Stage *string `type:"string" enum:"FunctionStage"`
15987}
15988
15989// String returns the string representation
15990func (s FunctionMetadata) String() string {
15991	return awsutil.Prettify(s)
15992}
15993
15994// GoString returns the string representation
15995func (s FunctionMetadata) GoString() string {
15996	return s.String()
15997}
15998
15999// SetCreatedTime sets the CreatedTime field's value.
16000func (s *FunctionMetadata) SetCreatedTime(v time.Time) *FunctionMetadata {
16001	s.CreatedTime = &v
16002	return s
16003}
16004
16005// SetFunctionARN sets the FunctionARN field's value.
16006func (s *FunctionMetadata) SetFunctionARN(v string) *FunctionMetadata {
16007	s.FunctionARN = &v
16008	return s
16009}
16010
16011// SetLastModifiedTime sets the LastModifiedTime field's value.
16012func (s *FunctionMetadata) SetLastModifiedTime(v time.Time) *FunctionMetadata {
16013	s.LastModifiedTime = &v
16014	return s
16015}
16016
16017// SetStage sets the Stage field's value.
16018func (s *FunctionMetadata) SetStage(v string) *FunctionMetadata {
16019	s.Stage = &v
16020	return s
16021}
16022
16023// Contains configuration information and metadata about a CloudFront function.
16024type FunctionSummary struct {
16025	_ struct{} `type:"structure"`
16026
16027	// Contains configuration information about a CloudFront function.
16028	//
16029	// FunctionConfig is a required field
16030	FunctionConfig *FunctionConfig `type:"structure" required:"true"`
16031
16032	// Contains metadata about a CloudFront function.
16033	//
16034	// FunctionMetadata is a required field
16035	FunctionMetadata *FunctionMetadata `type:"structure" required:"true"`
16036
16037	// The name of the CloudFront function.
16038	//
16039	// Name is a required field
16040	Name *string `min:"1" type:"string" required:"true"`
16041
16042	// The status of the CloudFront function.
16043	Status *string `type:"string"`
16044}
16045
16046// String returns the string representation
16047func (s FunctionSummary) String() string {
16048	return awsutil.Prettify(s)
16049}
16050
16051// GoString returns the string representation
16052func (s FunctionSummary) GoString() string {
16053	return s.String()
16054}
16055
16056// SetFunctionConfig sets the FunctionConfig field's value.
16057func (s *FunctionSummary) SetFunctionConfig(v *FunctionConfig) *FunctionSummary {
16058	s.FunctionConfig = v
16059	return s
16060}
16061
16062// SetFunctionMetadata sets the FunctionMetadata field's value.
16063func (s *FunctionSummary) SetFunctionMetadata(v *FunctionMetadata) *FunctionSummary {
16064	s.FunctionMetadata = v
16065	return s
16066}
16067
16068// SetName sets the Name field's value.
16069func (s *FunctionSummary) SetName(v string) *FunctionSummary {
16070	s.Name = &v
16071	return s
16072}
16073
16074// SetStatus sets the Status field's value.
16075func (s *FunctionSummary) SetStatus(v string) *FunctionSummary {
16076	s.Status = &v
16077	return s
16078}
16079
16080// A complex type that controls the countries in which your content is distributed.
16081// CloudFront determines the location of your users using MaxMind GeoIP databases.
16082type GeoRestriction struct {
16083	_ struct{} `type:"structure"`
16084
16085	// A complex type that contains a Location element for each country in which
16086	// you want CloudFront either to distribute your content (whitelist) or not
16087	// distribute your content (blacklist).
16088	//
16089	// The Location element is a two-letter, uppercase country code for a country
16090	// that you want to include in your blacklist or whitelist. Include one Location
16091	// element for each country.
16092	//
16093	// CloudFront and MaxMind both use ISO 3166 country codes. For the current list
16094	// of countries and the corresponding codes, see ISO 3166-1-alpha-2 code on
16095	// the International Organization for Standardization website. You can also
16096	// refer to the country list on the CloudFront console, which includes both
16097	// country names and codes.
16098	Items []*string `locationNameList:"Location" type:"list"`
16099
16100	// When geo restriction is enabled, this is the number of countries in your
16101	// whitelist or blacklist. Otherwise, when it is not enabled, Quantity is 0,
16102	// and you can omit Items.
16103	//
16104	// Quantity is a required field
16105	Quantity *int64 `type:"integer" required:"true"`
16106
16107	// The method that you want to use to restrict distribution of your content
16108	// by country:
16109	//
16110	//    * none: No geo restriction is enabled, meaning access to content is not
16111	//    restricted by client geo location.
16112	//
16113	//    * blacklist: The Location elements specify the countries in which you
16114	//    don't want CloudFront to distribute your content.
16115	//
16116	//    * whitelist: The Location elements specify the countries in which you
16117	//    want CloudFront to distribute your content.
16118	//
16119	// RestrictionType is a required field
16120	RestrictionType *string `type:"string" required:"true" enum:"GeoRestrictionType"`
16121}
16122
16123// String returns the string representation
16124func (s GeoRestriction) String() string {
16125	return awsutil.Prettify(s)
16126}
16127
16128// GoString returns the string representation
16129func (s GeoRestriction) GoString() string {
16130	return s.String()
16131}
16132
16133// Validate inspects the fields of the type to determine if they are valid.
16134func (s *GeoRestriction) Validate() error {
16135	invalidParams := request.ErrInvalidParams{Context: "GeoRestriction"}
16136	if s.Quantity == nil {
16137		invalidParams.Add(request.NewErrParamRequired("Quantity"))
16138	}
16139	if s.RestrictionType == nil {
16140		invalidParams.Add(request.NewErrParamRequired("RestrictionType"))
16141	}
16142
16143	if invalidParams.Len() > 0 {
16144		return invalidParams
16145	}
16146	return nil
16147}
16148
16149// SetItems sets the Items field's value.
16150func (s *GeoRestriction) SetItems(v []*string) *GeoRestriction {
16151	s.Items = v
16152	return s
16153}
16154
16155// SetQuantity sets the Quantity field's value.
16156func (s *GeoRestriction) SetQuantity(v int64) *GeoRestriction {
16157	s.Quantity = &v
16158	return s
16159}
16160
16161// SetRestrictionType sets the RestrictionType field's value.
16162func (s *GeoRestriction) SetRestrictionType(v string) *GeoRestriction {
16163	s.RestrictionType = &v
16164	return s
16165}
16166
16167type GetCachePolicyConfigInput struct {
16168	_ struct{} `locationName:"GetCachePolicyConfigRequest" type:"structure"`
16169
16170	// The unique identifier for the cache policy. If the cache policy is attached
16171	// to a distribution’s cache behavior, you can get the policy’s identifier
16172	// using ListDistributions or GetDistribution. If the cache policy is not attached
16173	// to a cache behavior, you can get the identifier using ListCachePolicies.
16174	//
16175	// Id is a required field
16176	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
16177}
16178
16179// String returns the string representation
16180func (s GetCachePolicyConfigInput) String() string {
16181	return awsutil.Prettify(s)
16182}
16183
16184// GoString returns the string representation
16185func (s GetCachePolicyConfigInput) GoString() string {
16186	return s.String()
16187}
16188
16189// Validate inspects the fields of the type to determine if they are valid.
16190func (s *GetCachePolicyConfigInput) Validate() error {
16191	invalidParams := request.ErrInvalidParams{Context: "GetCachePolicyConfigInput"}
16192	if s.Id == nil {
16193		invalidParams.Add(request.NewErrParamRequired("Id"))
16194	}
16195	if s.Id != nil && len(*s.Id) < 1 {
16196		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
16197	}
16198
16199	if invalidParams.Len() > 0 {
16200		return invalidParams
16201	}
16202	return nil
16203}
16204
16205// SetId sets the Id field's value.
16206func (s *GetCachePolicyConfigInput) SetId(v string) *GetCachePolicyConfigInput {
16207	s.Id = &v
16208	return s
16209}
16210
16211type GetCachePolicyConfigOutput struct {
16212	_ struct{} `type:"structure" payload:"CachePolicyConfig"`
16213
16214	// The cache policy configuration.
16215	CachePolicyConfig *CachePolicyConfig `type:"structure"`
16216
16217	// The current version of the cache policy.
16218	ETag *string `location:"header" locationName:"ETag" type:"string"`
16219}
16220
16221// String returns the string representation
16222func (s GetCachePolicyConfigOutput) String() string {
16223	return awsutil.Prettify(s)
16224}
16225
16226// GoString returns the string representation
16227func (s GetCachePolicyConfigOutput) GoString() string {
16228	return s.String()
16229}
16230
16231// SetCachePolicyConfig sets the CachePolicyConfig field's value.
16232func (s *GetCachePolicyConfigOutput) SetCachePolicyConfig(v *CachePolicyConfig) *GetCachePolicyConfigOutput {
16233	s.CachePolicyConfig = v
16234	return s
16235}
16236
16237// SetETag sets the ETag field's value.
16238func (s *GetCachePolicyConfigOutput) SetETag(v string) *GetCachePolicyConfigOutput {
16239	s.ETag = &v
16240	return s
16241}
16242
16243type GetCachePolicyInput struct {
16244	_ struct{} `locationName:"GetCachePolicyRequest" type:"structure"`
16245
16246	// The unique identifier for the cache policy. If the cache policy is attached
16247	// to a distribution’s cache behavior, you can get the policy’s identifier
16248	// using ListDistributions or GetDistribution. If the cache policy is not attached
16249	// to a cache behavior, you can get the identifier using ListCachePolicies.
16250	//
16251	// Id is a required field
16252	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
16253}
16254
16255// String returns the string representation
16256func (s GetCachePolicyInput) String() string {
16257	return awsutil.Prettify(s)
16258}
16259
16260// GoString returns the string representation
16261func (s GetCachePolicyInput) GoString() string {
16262	return s.String()
16263}
16264
16265// Validate inspects the fields of the type to determine if they are valid.
16266func (s *GetCachePolicyInput) Validate() error {
16267	invalidParams := request.ErrInvalidParams{Context: "GetCachePolicyInput"}
16268	if s.Id == nil {
16269		invalidParams.Add(request.NewErrParamRequired("Id"))
16270	}
16271	if s.Id != nil && len(*s.Id) < 1 {
16272		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
16273	}
16274
16275	if invalidParams.Len() > 0 {
16276		return invalidParams
16277	}
16278	return nil
16279}
16280
16281// SetId sets the Id field's value.
16282func (s *GetCachePolicyInput) SetId(v string) *GetCachePolicyInput {
16283	s.Id = &v
16284	return s
16285}
16286
16287type GetCachePolicyOutput struct {
16288	_ struct{} `type:"structure" payload:"CachePolicy"`
16289
16290	// The cache policy.
16291	CachePolicy *CachePolicy `type:"structure"`
16292
16293	// The current version of the cache policy.
16294	ETag *string `location:"header" locationName:"ETag" type:"string"`
16295}
16296
16297// String returns the string representation
16298func (s GetCachePolicyOutput) String() string {
16299	return awsutil.Prettify(s)
16300}
16301
16302// GoString returns the string representation
16303func (s GetCachePolicyOutput) GoString() string {
16304	return s.String()
16305}
16306
16307// SetCachePolicy sets the CachePolicy field's value.
16308func (s *GetCachePolicyOutput) SetCachePolicy(v *CachePolicy) *GetCachePolicyOutput {
16309	s.CachePolicy = v
16310	return s
16311}
16312
16313// SetETag sets the ETag field's value.
16314func (s *GetCachePolicyOutput) SetETag(v string) *GetCachePolicyOutput {
16315	s.ETag = &v
16316	return s
16317}
16318
16319// The origin access identity's configuration information. For more information,
16320// see CloudFrontOriginAccessIdentityConfig (https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CloudFrontOriginAccessIdentityConfig.html).
16321type GetCloudFrontOriginAccessIdentityConfigInput struct {
16322	_ struct{} `locationName:"GetCloudFrontOriginAccessIdentityConfigRequest" type:"structure"`
16323
16324	// The identity's ID.
16325	//
16326	// Id is a required field
16327	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
16328}
16329
16330// String returns the string representation
16331func (s GetCloudFrontOriginAccessIdentityConfigInput) String() string {
16332	return awsutil.Prettify(s)
16333}
16334
16335// GoString returns the string representation
16336func (s GetCloudFrontOriginAccessIdentityConfigInput) GoString() string {
16337	return s.String()
16338}
16339
16340// Validate inspects the fields of the type to determine if they are valid.
16341func (s *GetCloudFrontOriginAccessIdentityConfigInput) Validate() error {
16342	invalidParams := request.ErrInvalidParams{Context: "GetCloudFrontOriginAccessIdentityConfigInput"}
16343	if s.Id == nil {
16344		invalidParams.Add(request.NewErrParamRequired("Id"))
16345	}
16346	if s.Id != nil && len(*s.Id) < 1 {
16347		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
16348	}
16349
16350	if invalidParams.Len() > 0 {
16351		return invalidParams
16352	}
16353	return nil
16354}
16355
16356// SetId sets the Id field's value.
16357func (s *GetCloudFrontOriginAccessIdentityConfigInput) SetId(v string) *GetCloudFrontOriginAccessIdentityConfigInput {
16358	s.Id = &v
16359	return s
16360}
16361
16362// The returned result of the corresponding request.
16363type GetCloudFrontOriginAccessIdentityConfigOutput struct {
16364	_ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentityConfig"`
16365
16366	// The origin access identity's configuration information.
16367	CloudFrontOriginAccessIdentityConfig *OriginAccessIdentityConfig `type:"structure"`
16368
16369	// The current version of the configuration. For example: E2QWRUHAPOMQZL.
16370	ETag *string `location:"header" locationName:"ETag" type:"string"`
16371}
16372
16373// String returns the string representation
16374func (s GetCloudFrontOriginAccessIdentityConfigOutput) String() string {
16375	return awsutil.Prettify(s)
16376}
16377
16378// GoString returns the string representation
16379func (s GetCloudFrontOriginAccessIdentityConfigOutput) GoString() string {
16380	return s.String()
16381}
16382
16383// SetCloudFrontOriginAccessIdentityConfig sets the CloudFrontOriginAccessIdentityConfig field's value.
16384func (s *GetCloudFrontOriginAccessIdentityConfigOutput) SetCloudFrontOriginAccessIdentityConfig(v *OriginAccessIdentityConfig) *GetCloudFrontOriginAccessIdentityConfigOutput {
16385	s.CloudFrontOriginAccessIdentityConfig = v
16386	return s
16387}
16388
16389// SetETag sets the ETag field's value.
16390func (s *GetCloudFrontOriginAccessIdentityConfigOutput) SetETag(v string) *GetCloudFrontOriginAccessIdentityConfigOutput {
16391	s.ETag = &v
16392	return s
16393}
16394
16395// The request to get an origin access identity's information.
16396type GetCloudFrontOriginAccessIdentityInput struct {
16397	_ struct{} `locationName:"GetCloudFrontOriginAccessIdentityRequest" type:"structure"`
16398
16399	// The identity's ID.
16400	//
16401	// Id is a required field
16402	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
16403}
16404
16405// String returns the string representation
16406func (s GetCloudFrontOriginAccessIdentityInput) String() string {
16407	return awsutil.Prettify(s)
16408}
16409
16410// GoString returns the string representation
16411func (s GetCloudFrontOriginAccessIdentityInput) GoString() string {
16412	return s.String()
16413}
16414
16415// Validate inspects the fields of the type to determine if they are valid.
16416func (s *GetCloudFrontOriginAccessIdentityInput) Validate() error {
16417	invalidParams := request.ErrInvalidParams{Context: "GetCloudFrontOriginAccessIdentityInput"}
16418	if s.Id == nil {
16419		invalidParams.Add(request.NewErrParamRequired("Id"))
16420	}
16421	if s.Id != nil && len(*s.Id) < 1 {
16422		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
16423	}
16424
16425	if invalidParams.Len() > 0 {
16426		return invalidParams
16427	}
16428	return nil
16429}
16430
16431// SetId sets the Id field's value.
16432func (s *GetCloudFrontOriginAccessIdentityInput) SetId(v string) *GetCloudFrontOriginAccessIdentityInput {
16433	s.Id = &v
16434	return s
16435}
16436
16437// The returned result of the corresponding request.
16438type GetCloudFrontOriginAccessIdentityOutput struct {
16439	_ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentity"`
16440
16441	// The origin access identity's information.
16442	CloudFrontOriginAccessIdentity *OriginAccessIdentity `type:"structure"`
16443
16444	// The current version of the origin access identity's information. For example:
16445	// E2QWRUHAPOMQZL.
16446	ETag *string `location:"header" locationName:"ETag" type:"string"`
16447}
16448
16449// String returns the string representation
16450func (s GetCloudFrontOriginAccessIdentityOutput) String() string {
16451	return awsutil.Prettify(s)
16452}
16453
16454// GoString returns the string representation
16455func (s GetCloudFrontOriginAccessIdentityOutput) GoString() string {
16456	return s.String()
16457}
16458
16459// SetCloudFrontOriginAccessIdentity sets the CloudFrontOriginAccessIdentity field's value.
16460func (s *GetCloudFrontOriginAccessIdentityOutput) SetCloudFrontOriginAccessIdentity(v *OriginAccessIdentity) *GetCloudFrontOriginAccessIdentityOutput {
16461	s.CloudFrontOriginAccessIdentity = v
16462	return s
16463}
16464
16465// SetETag sets the ETag field's value.
16466func (s *GetCloudFrontOriginAccessIdentityOutput) SetETag(v string) *GetCloudFrontOriginAccessIdentityOutput {
16467	s.ETag = &v
16468	return s
16469}
16470
16471// The request to get a distribution configuration.
16472type GetDistributionConfigInput struct {
16473	_ struct{} `locationName:"GetDistributionConfigRequest" type:"structure"`
16474
16475	// The distribution's ID. If the ID is empty, an empty distribution configuration
16476	// is returned.
16477	//
16478	// Id is a required field
16479	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
16480}
16481
16482// String returns the string representation
16483func (s GetDistributionConfigInput) String() string {
16484	return awsutil.Prettify(s)
16485}
16486
16487// GoString returns the string representation
16488func (s GetDistributionConfigInput) GoString() string {
16489	return s.String()
16490}
16491
16492// Validate inspects the fields of the type to determine if they are valid.
16493func (s *GetDistributionConfigInput) Validate() error {
16494	invalidParams := request.ErrInvalidParams{Context: "GetDistributionConfigInput"}
16495	if s.Id == nil {
16496		invalidParams.Add(request.NewErrParamRequired("Id"))
16497	}
16498	if s.Id != nil && len(*s.Id) < 1 {
16499		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
16500	}
16501
16502	if invalidParams.Len() > 0 {
16503		return invalidParams
16504	}
16505	return nil
16506}
16507
16508// SetId sets the Id field's value.
16509func (s *GetDistributionConfigInput) SetId(v string) *GetDistributionConfigInput {
16510	s.Id = &v
16511	return s
16512}
16513
16514// The returned result of the corresponding request.
16515type GetDistributionConfigOutput struct {
16516	_ struct{} `type:"structure" payload:"DistributionConfig"`
16517
16518	// The distribution's configuration information.
16519	DistributionConfig *DistributionConfig `type:"structure"`
16520
16521	// The current version of the configuration. For example: E2QWRUHAPOMQZL.
16522	ETag *string `location:"header" locationName:"ETag" type:"string"`
16523}
16524
16525// String returns the string representation
16526func (s GetDistributionConfigOutput) String() string {
16527	return awsutil.Prettify(s)
16528}
16529
16530// GoString returns the string representation
16531func (s GetDistributionConfigOutput) GoString() string {
16532	return s.String()
16533}
16534
16535// SetDistributionConfig sets the DistributionConfig field's value.
16536func (s *GetDistributionConfigOutput) SetDistributionConfig(v *DistributionConfig) *GetDistributionConfigOutput {
16537	s.DistributionConfig = v
16538	return s
16539}
16540
16541// SetETag sets the ETag field's value.
16542func (s *GetDistributionConfigOutput) SetETag(v string) *GetDistributionConfigOutput {
16543	s.ETag = &v
16544	return s
16545}
16546
16547// The request to get a distribution's information.
16548type GetDistributionInput struct {
16549	_ struct{} `locationName:"GetDistributionRequest" type:"structure"`
16550
16551	// The distribution's ID. If the ID is empty, an empty distribution configuration
16552	// is returned.
16553	//
16554	// Id is a required field
16555	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
16556}
16557
16558// String returns the string representation
16559func (s GetDistributionInput) String() string {
16560	return awsutil.Prettify(s)
16561}
16562
16563// GoString returns the string representation
16564func (s GetDistributionInput) GoString() string {
16565	return s.String()
16566}
16567
16568// Validate inspects the fields of the type to determine if they are valid.
16569func (s *GetDistributionInput) Validate() error {
16570	invalidParams := request.ErrInvalidParams{Context: "GetDistributionInput"}
16571	if s.Id == nil {
16572		invalidParams.Add(request.NewErrParamRequired("Id"))
16573	}
16574	if s.Id != nil && len(*s.Id) < 1 {
16575		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
16576	}
16577
16578	if invalidParams.Len() > 0 {
16579		return invalidParams
16580	}
16581	return nil
16582}
16583
16584// SetId sets the Id field's value.
16585func (s *GetDistributionInput) SetId(v string) *GetDistributionInput {
16586	s.Id = &v
16587	return s
16588}
16589
16590// The returned result of the corresponding request.
16591type GetDistributionOutput struct {
16592	_ struct{} `type:"structure" payload:"Distribution"`
16593
16594	// The distribution's information.
16595	Distribution *Distribution `type:"structure"`
16596
16597	// The current version of the distribution's information. For example: E2QWRUHAPOMQZL.
16598	ETag *string `location:"header" locationName:"ETag" type:"string"`
16599}
16600
16601// String returns the string representation
16602func (s GetDistributionOutput) String() string {
16603	return awsutil.Prettify(s)
16604}
16605
16606// GoString returns the string representation
16607func (s GetDistributionOutput) GoString() string {
16608	return s.String()
16609}
16610
16611// SetDistribution sets the Distribution field's value.
16612func (s *GetDistributionOutput) SetDistribution(v *Distribution) *GetDistributionOutput {
16613	s.Distribution = v
16614	return s
16615}
16616
16617// SetETag sets the ETag field's value.
16618func (s *GetDistributionOutput) SetETag(v string) *GetDistributionOutput {
16619	s.ETag = &v
16620	return s
16621}
16622
16623type GetFieldLevelEncryptionConfigInput struct {
16624	_ struct{} `locationName:"GetFieldLevelEncryptionConfigRequest" type:"structure"`
16625
16626	// Request the ID for the field-level encryption configuration information.
16627	//
16628	// Id is a required field
16629	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
16630}
16631
16632// String returns the string representation
16633func (s GetFieldLevelEncryptionConfigInput) String() string {
16634	return awsutil.Prettify(s)
16635}
16636
16637// GoString returns the string representation
16638func (s GetFieldLevelEncryptionConfigInput) GoString() string {
16639	return s.String()
16640}
16641
16642// Validate inspects the fields of the type to determine if they are valid.
16643func (s *GetFieldLevelEncryptionConfigInput) Validate() error {
16644	invalidParams := request.ErrInvalidParams{Context: "GetFieldLevelEncryptionConfigInput"}
16645	if s.Id == nil {
16646		invalidParams.Add(request.NewErrParamRequired("Id"))
16647	}
16648	if s.Id != nil && len(*s.Id) < 1 {
16649		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
16650	}
16651
16652	if invalidParams.Len() > 0 {
16653		return invalidParams
16654	}
16655	return nil
16656}
16657
16658// SetId sets the Id field's value.
16659func (s *GetFieldLevelEncryptionConfigInput) SetId(v string) *GetFieldLevelEncryptionConfigInput {
16660	s.Id = &v
16661	return s
16662}
16663
16664type GetFieldLevelEncryptionConfigOutput struct {
16665	_ struct{} `type:"structure" payload:"FieldLevelEncryptionConfig"`
16666
16667	// The current version of the field level encryption configuration. For example:
16668	// E2QWRUHAPOMQZL.
16669	ETag *string `location:"header" locationName:"ETag" type:"string"`
16670
16671	// Return the field-level encryption configuration information.
16672	FieldLevelEncryptionConfig *FieldLevelEncryptionConfig `type:"structure"`
16673}
16674
16675// String returns the string representation
16676func (s GetFieldLevelEncryptionConfigOutput) String() string {
16677	return awsutil.Prettify(s)
16678}
16679
16680// GoString returns the string representation
16681func (s GetFieldLevelEncryptionConfigOutput) GoString() string {
16682	return s.String()
16683}
16684
16685// SetETag sets the ETag field's value.
16686func (s *GetFieldLevelEncryptionConfigOutput) SetETag(v string) *GetFieldLevelEncryptionConfigOutput {
16687	s.ETag = &v
16688	return s
16689}
16690
16691// SetFieldLevelEncryptionConfig sets the FieldLevelEncryptionConfig field's value.
16692func (s *GetFieldLevelEncryptionConfigOutput) SetFieldLevelEncryptionConfig(v *FieldLevelEncryptionConfig) *GetFieldLevelEncryptionConfigOutput {
16693	s.FieldLevelEncryptionConfig = v
16694	return s
16695}
16696
16697type GetFieldLevelEncryptionInput struct {
16698	_ struct{} `locationName:"GetFieldLevelEncryptionRequest" type:"structure"`
16699
16700	// Request the ID for the field-level encryption configuration information.
16701	//
16702	// Id is a required field
16703	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
16704}
16705
16706// String returns the string representation
16707func (s GetFieldLevelEncryptionInput) String() string {
16708	return awsutil.Prettify(s)
16709}
16710
16711// GoString returns the string representation
16712func (s GetFieldLevelEncryptionInput) GoString() string {
16713	return s.String()
16714}
16715
16716// Validate inspects the fields of the type to determine if they are valid.
16717func (s *GetFieldLevelEncryptionInput) Validate() error {
16718	invalidParams := request.ErrInvalidParams{Context: "GetFieldLevelEncryptionInput"}
16719	if s.Id == nil {
16720		invalidParams.Add(request.NewErrParamRequired("Id"))
16721	}
16722	if s.Id != nil && len(*s.Id) < 1 {
16723		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
16724	}
16725
16726	if invalidParams.Len() > 0 {
16727		return invalidParams
16728	}
16729	return nil
16730}
16731
16732// SetId sets the Id field's value.
16733func (s *GetFieldLevelEncryptionInput) SetId(v string) *GetFieldLevelEncryptionInput {
16734	s.Id = &v
16735	return s
16736}
16737
16738type GetFieldLevelEncryptionOutput struct {
16739	_ struct{} `type:"structure" payload:"FieldLevelEncryption"`
16740
16741	// The current version of the field level encryption configuration. For example:
16742	// E2QWRUHAPOMQZL.
16743	ETag *string `location:"header" locationName:"ETag" type:"string"`
16744
16745	// Return the field-level encryption configuration information.
16746	FieldLevelEncryption *FieldLevelEncryption `type:"structure"`
16747}
16748
16749// String returns the string representation
16750func (s GetFieldLevelEncryptionOutput) String() string {
16751	return awsutil.Prettify(s)
16752}
16753
16754// GoString returns the string representation
16755func (s GetFieldLevelEncryptionOutput) GoString() string {
16756	return s.String()
16757}
16758
16759// SetETag sets the ETag field's value.
16760func (s *GetFieldLevelEncryptionOutput) SetETag(v string) *GetFieldLevelEncryptionOutput {
16761	s.ETag = &v
16762	return s
16763}
16764
16765// SetFieldLevelEncryption sets the FieldLevelEncryption field's value.
16766func (s *GetFieldLevelEncryptionOutput) SetFieldLevelEncryption(v *FieldLevelEncryption) *GetFieldLevelEncryptionOutput {
16767	s.FieldLevelEncryption = v
16768	return s
16769}
16770
16771type GetFieldLevelEncryptionProfileConfigInput struct {
16772	_ struct{} `locationName:"GetFieldLevelEncryptionProfileConfigRequest" type:"structure"`
16773
16774	// Get the ID for the field-level encryption profile configuration information.
16775	//
16776	// Id is a required field
16777	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
16778}
16779
16780// String returns the string representation
16781func (s GetFieldLevelEncryptionProfileConfigInput) String() string {
16782	return awsutil.Prettify(s)
16783}
16784
16785// GoString returns the string representation
16786func (s GetFieldLevelEncryptionProfileConfigInput) GoString() string {
16787	return s.String()
16788}
16789
16790// Validate inspects the fields of the type to determine if they are valid.
16791func (s *GetFieldLevelEncryptionProfileConfigInput) Validate() error {
16792	invalidParams := request.ErrInvalidParams{Context: "GetFieldLevelEncryptionProfileConfigInput"}
16793	if s.Id == nil {
16794		invalidParams.Add(request.NewErrParamRequired("Id"))
16795	}
16796	if s.Id != nil && len(*s.Id) < 1 {
16797		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
16798	}
16799
16800	if invalidParams.Len() > 0 {
16801		return invalidParams
16802	}
16803	return nil
16804}
16805
16806// SetId sets the Id field's value.
16807func (s *GetFieldLevelEncryptionProfileConfigInput) SetId(v string) *GetFieldLevelEncryptionProfileConfigInput {
16808	s.Id = &v
16809	return s
16810}
16811
16812type GetFieldLevelEncryptionProfileConfigOutput struct {
16813	_ struct{} `type:"structure" payload:"FieldLevelEncryptionProfileConfig"`
16814
16815	// The current version of the field-level encryption profile configuration result.
16816	// For example: E2QWRUHAPOMQZL.
16817	ETag *string `location:"header" locationName:"ETag" type:"string"`
16818
16819	// Return the field-level encryption profile configuration information.
16820	FieldLevelEncryptionProfileConfig *FieldLevelEncryptionProfileConfig `type:"structure"`
16821}
16822
16823// String returns the string representation
16824func (s GetFieldLevelEncryptionProfileConfigOutput) String() string {
16825	return awsutil.Prettify(s)
16826}
16827
16828// GoString returns the string representation
16829func (s GetFieldLevelEncryptionProfileConfigOutput) GoString() string {
16830	return s.String()
16831}
16832
16833// SetETag sets the ETag field's value.
16834func (s *GetFieldLevelEncryptionProfileConfigOutput) SetETag(v string) *GetFieldLevelEncryptionProfileConfigOutput {
16835	s.ETag = &v
16836	return s
16837}
16838
16839// SetFieldLevelEncryptionProfileConfig sets the FieldLevelEncryptionProfileConfig field's value.
16840func (s *GetFieldLevelEncryptionProfileConfigOutput) SetFieldLevelEncryptionProfileConfig(v *FieldLevelEncryptionProfileConfig) *GetFieldLevelEncryptionProfileConfigOutput {
16841	s.FieldLevelEncryptionProfileConfig = v
16842	return s
16843}
16844
16845type GetFieldLevelEncryptionProfileInput struct {
16846	_ struct{} `locationName:"GetFieldLevelEncryptionProfileRequest" type:"structure"`
16847
16848	// Get the ID for the field-level encryption profile information.
16849	//
16850	// Id is a required field
16851	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
16852}
16853
16854// String returns the string representation
16855func (s GetFieldLevelEncryptionProfileInput) String() string {
16856	return awsutil.Prettify(s)
16857}
16858
16859// GoString returns the string representation
16860func (s GetFieldLevelEncryptionProfileInput) GoString() string {
16861	return s.String()
16862}
16863
16864// Validate inspects the fields of the type to determine if they are valid.
16865func (s *GetFieldLevelEncryptionProfileInput) Validate() error {
16866	invalidParams := request.ErrInvalidParams{Context: "GetFieldLevelEncryptionProfileInput"}
16867	if s.Id == nil {
16868		invalidParams.Add(request.NewErrParamRequired("Id"))
16869	}
16870	if s.Id != nil && len(*s.Id) < 1 {
16871		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
16872	}
16873
16874	if invalidParams.Len() > 0 {
16875		return invalidParams
16876	}
16877	return nil
16878}
16879
16880// SetId sets the Id field's value.
16881func (s *GetFieldLevelEncryptionProfileInput) SetId(v string) *GetFieldLevelEncryptionProfileInput {
16882	s.Id = &v
16883	return s
16884}
16885
16886type GetFieldLevelEncryptionProfileOutput struct {
16887	_ struct{} `type:"structure" payload:"FieldLevelEncryptionProfile"`
16888
16889	// The current version of the field level encryption profile. For example: E2QWRUHAPOMQZL.
16890	ETag *string `location:"header" locationName:"ETag" type:"string"`
16891
16892	// Return the field-level encryption profile information.
16893	FieldLevelEncryptionProfile *FieldLevelEncryptionProfile `type:"structure"`
16894}
16895
16896// String returns the string representation
16897func (s GetFieldLevelEncryptionProfileOutput) String() string {
16898	return awsutil.Prettify(s)
16899}
16900
16901// GoString returns the string representation
16902func (s GetFieldLevelEncryptionProfileOutput) GoString() string {
16903	return s.String()
16904}
16905
16906// SetETag sets the ETag field's value.
16907func (s *GetFieldLevelEncryptionProfileOutput) SetETag(v string) *GetFieldLevelEncryptionProfileOutput {
16908	s.ETag = &v
16909	return s
16910}
16911
16912// SetFieldLevelEncryptionProfile sets the FieldLevelEncryptionProfile field's value.
16913func (s *GetFieldLevelEncryptionProfileOutput) SetFieldLevelEncryptionProfile(v *FieldLevelEncryptionProfile) *GetFieldLevelEncryptionProfileOutput {
16914	s.FieldLevelEncryptionProfile = v
16915	return s
16916}
16917
16918type GetFunctionInput struct {
16919	_ struct{} `locationName:"GetFunctionRequest" type:"structure"`
16920
16921	// The name of the function whose code you are getting.
16922	//
16923	// Name is a required field
16924	Name *string `location:"uri" locationName:"Name" type:"string" required:"true"`
16925
16926	// The function’s stage, either DEVELOPMENT or LIVE.
16927	Stage *string `location:"querystring" locationName:"Stage" type:"string" enum:"FunctionStage"`
16928}
16929
16930// String returns the string representation
16931func (s GetFunctionInput) String() string {
16932	return awsutil.Prettify(s)
16933}
16934
16935// GoString returns the string representation
16936func (s GetFunctionInput) GoString() string {
16937	return s.String()
16938}
16939
16940// Validate inspects the fields of the type to determine if they are valid.
16941func (s *GetFunctionInput) Validate() error {
16942	invalidParams := request.ErrInvalidParams{Context: "GetFunctionInput"}
16943	if s.Name == nil {
16944		invalidParams.Add(request.NewErrParamRequired("Name"))
16945	}
16946	if s.Name != nil && len(*s.Name) < 1 {
16947		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
16948	}
16949
16950	if invalidParams.Len() > 0 {
16951		return invalidParams
16952	}
16953	return nil
16954}
16955
16956// SetName sets the Name field's value.
16957func (s *GetFunctionInput) SetName(v string) *GetFunctionInput {
16958	s.Name = &v
16959	return s
16960}
16961
16962// SetStage sets the Stage field's value.
16963func (s *GetFunctionInput) SetStage(v string) *GetFunctionInput {
16964	s.Stage = &v
16965	return s
16966}
16967
16968type GetFunctionOutput struct {
16969	_ struct{} `type:"structure" payload:"FunctionCode"`
16970
16971	// The content type (media type) of the response.
16972	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
16973
16974	// The version identifier for the current version of the CloudFront function.
16975	ETag *string `location:"header" locationName:"ETag" type:"string"`
16976
16977	// The function code of a CloudFront function.
16978	FunctionCode []byte `min:"1" type:"blob" sensitive:"true"`
16979}
16980
16981// String returns the string representation
16982func (s GetFunctionOutput) String() string {
16983	return awsutil.Prettify(s)
16984}
16985
16986// GoString returns the string representation
16987func (s GetFunctionOutput) GoString() string {
16988	return s.String()
16989}
16990
16991// SetContentType sets the ContentType field's value.
16992func (s *GetFunctionOutput) SetContentType(v string) *GetFunctionOutput {
16993	s.ContentType = &v
16994	return s
16995}
16996
16997// SetETag sets the ETag field's value.
16998func (s *GetFunctionOutput) SetETag(v string) *GetFunctionOutput {
16999	s.ETag = &v
17000	return s
17001}
17002
17003// SetFunctionCode sets the FunctionCode field's value.
17004func (s *GetFunctionOutput) SetFunctionCode(v []byte) *GetFunctionOutput {
17005	s.FunctionCode = v
17006	return s
17007}
17008
17009// The request to get an invalidation's information.
17010type GetInvalidationInput struct {
17011	_ struct{} `locationName:"GetInvalidationRequest" type:"structure"`
17012
17013	// The distribution's ID.
17014	//
17015	// DistributionId is a required field
17016	DistributionId *string `location:"uri" locationName:"DistributionId" type:"string" required:"true"`
17017
17018	// The identifier for the invalidation request, for example, IDFDVBD632BHDS5.
17019	//
17020	// Id is a required field
17021	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
17022}
17023
17024// String returns the string representation
17025func (s GetInvalidationInput) String() string {
17026	return awsutil.Prettify(s)
17027}
17028
17029// GoString returns the string representation
17030func (s GetInvalidationInput) GoString() string {
17031	return s.String()
17032}
17033
17034// Validate inspects the fields of the type to determine if they are valid.
17035func (s *GetInvalidationInput) Validate() error {
17036	invalidParams := request.ErrInvalidParams{Context: "GetInvalidationInput"}
17037	if s.DistributionId == nil {
17038		invalidParams.Add(request.NewErrParamRequired("DistributionId"))
17039	}
17040	if s.DistributionId != nil && len(*s.DistributionId) < 1 {
17041		invalidParams.Add(request.NewErrParamMinLen("DistributionId", 1))
17042	}
17043	if s.Id == nil {
17044		invalidParams.Add(request.NewErrParamRequired("Id"))
17045	}
17046	if s.Id != nil && len(*s.Id) < 1 {
17047		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
17048	}
17049
17050	if invalidParams.Len() > 0 {
17051		return invalidParams
17052	}
17053	return nil
17054}
17055
17056// SetDistributionId sets the DistributionId field's value.
17057func (s *GetInvalidationInput) SetDistributionId(v string) *GetInvalidationInput {
17058	s.DistributionId = &v
17059	return s
17060}
17061
17062// SetId sets the Id field's value.
17063func (s *GetInvalidationInput) SetId(v string) *GetInvalidationInput {
17064	s.Id = &v
17065	return s
17066}
17067
17068// The returned result of the corresponding request.
17069type GetInvalidationOutput struct {
17070	_ struct{} `type:"structure" payload:"Invalidation"`
17071
17072	// The invalidation's information. For more information, see Invalidation Complex
17073	// Type (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/InvalidationDatatype.html).
17074	Invalidation *Invalidation `type:"structure"`
17075}
17076
17077// String returns the string representation
17078func (s GetInvalidationOutput) String() string {
17079	return awsutil.Prettify(s)
17080}
17081
17082// GoString returns the string representation
17083func (s GetInvalidationOutput) GoString() string {
17084	return s.String()
17085}
17086
17087// SetInvalidation sets the Invalidation field's value.
17088func (s *GetInvalidationOutput) SetInvalidation(v *Invalidation) *GetInvalidationOutput {
17089	s.Invalidation = v
17090	return s
17091}
17092
17093type GetKeyGroupConfigInput struct {
17094	_ struct{} `locationName:"GetKeyGroupConfigRequest" type:"structure"`
17095
17096	// The identifier of the key group whose configuration you are getting. To get
17097	// the identifier, use ListKeyGroups.
17098	//
17099	// Id is a required field
17100	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
17101}
17102
17103// String returns the string representation
17104func (s GetKeyGroupConfigInput) String() string {
17105	return awsutil.Prettify(s)
17106}
17107
17108// GoString returns the string representation
17109func (s GetKeyGroupConfigInput) GoString() string {
17110	return s.String()
17111}
17112
17113// Validate inspects the fields of the type to determine if they are valid.
17114func (s *GetKeyGroupConfigInput) Validate() error {
17115	invalidParams := request.ErrInvalidParams{Context: "GetKeyGroupConfigInput"}
17116	if s.Id == nil {
17117		invalidParams.Add(request.NewErrParamRequired("Id"))
17118	}
17119	if s.Id != nil && len(*s.Id) < 1 {
17120		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
17121	}
17122
17123	if invalidParams.Len() > 0 {
17124		return invalidParams
17125	}
17126	return nil
17127}
17128
17129// SetId sets the Id field's value.
17130func (s *GetKeyGroupConfigInput) SetId(v string) *GetKeyGroupConfigInput {
17131	s.Id = &v
17132	return s
17133}
17134
17135type GetKeyGroupConfigOutput struct {
17136	_ struct{} `type:"structure" payload:"KeyGroupConfig"`
17137
17138	// The identifier for this version of the key group.
17139	ETag *string `location:"header" locationName:"ETag" type:"string"`
17140
17141	// The key group configuration.
17142	KeyGroupConfig *KeyGroupConfig `type:"structure"`
17143}
17144
17145// String returns the string representation
17146func (s GetKeyGroupConfigOutput) String() string {
17147	return awsutil.Prettify(s)
17148}
17149
17150// GoString returns the string representation
17151func (s GetKeyGroupConfigOutput) GoString() string {
17152	return s.String()
17153}
17154
17155// SetETag sets the ETag field's value.
17156func (s *GetKeyGroupConfigOutput) SetETag(v string) *GetKeyGroupConfigOutput {
17157	s.ETag = &v
17158	return s
17159}
17160
17161// SetKeyGroupConfig sets the KeyGroupConfig field's value.
17162func (s *GetKeyGroupConfigOutput) SetKeyGroupConfig(v *KeyGroupConfig) *GetKeyGroupConfigOutput {
17163	s.KeyGroupConfig = v
17164	return s
17165}
17166
17167type GetKeyGroupInput struct {
17168	_ struct{} `locationName:"GetKeyGroupRequest" type:"structure"`
17169
17170	// The identifier of the key group that you are getting. To get the identifier,
17171	// use ListKeyGroups.
17172	//
17173	// Id is a required field
17174	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
17175}
17176
17177// String returns the string representation
17178func (s GetKeyGroupInput) String() string {
17179	return awsutil.Prettify(s)
17180}
17181
17182// GoString returns the string representation
17183func (s GetKeyGroupInput) GoString() string {
17184	return s.String()
17185}
17186
17187// Validate inspects the fields of the type to determine if they are valid.
17188func (s *GetKeyGroupInput) Validate() error {
17189	invalidParams := request.ErrInvalidParams{Context: "GetKeyGroupInput"}
17190	if s.Id == nil {
17191		invalidParams.Add(request.NewErrParamRequired("Id"))
17192	}
17193	if s.Id != nil && len(*s.Id) < 1 {
17194		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
17195	}
17196
17197	if invalidParams.Len() > 0 {
17198		return invalidParams
17199	}
17200	return nil
17201}
17202
17203// SetId sets the Id field's value.
17204func (s *GetKeyGroupInput) SetId(v string) *GetKeyGroupInput {
17205	s.Id = &v
17206	return s
17207}
17208
17209type GetKeyGroupOutput struct {
17210	_ struct{} `type:"structure" payload:"KeyGroup"`
17211
17212	// The identifier for this version of the key group.
17213	ETag *string `location:"header" locationName:"ETag" type:"string"`
17214
17215	// The key group.
17216	KeyGroup *KeyGroup `type:"structure"`
17217}
17218
17219// String returns the string representation
17220func (s GetKeyGroupOutput) String() string {
17221	return awsutil.Prettify(s)
17222}
17223
17224// GoString returns the string representation
17225func (s GetKeyGroupOutput) GoString() string {
17226	return s.String()
17227}
17228
17229// SetETag sets the ETag field's value.
17230func (s *GetKeyGroupOutput) SetETag(v string) *GetKeyGroupOutput {
17231	s.ETag = &v
17232	return s
17233}
17234
17235// SetKeyGroup sets the KeyGroup field's value.
17236func (s *GetKeyGroupOutput) SetKeyGroup(v *KeyGroup) *GetKeyGroupOutput {
17237	s.KeyGroup = v
17238	return s
17239}
17240
17241type GetMonitoringSubscriptionInput struct {
17242	_ struct{} `locationName:"GetMonitoringSubscriptionRequest" type:"structure"`
17243
17244	// The ID of the distribution that you are getting metrics information for.
17245	//
17246	// DistributionId is a required field
17247	DistributionId *string `location:"uri" locationName:"DistributionId" type:"string" required:"true"`
17248}
17249
17250// String returns the string representation
17251func (s GetMonitoringSubscriptionInput) String() string {
17252	return awsutil.Prettify(s)
17253}
17254
17255// GoString returns the string representation
17256func (s GetMonitoringSubscriptionInput) GoString() string {
17257	return s.String()
17258}
17259
17260// Validate inspects the fields of the type to determine if they are valid.
17261func (s *GetMonitoringSubscriptionInput) Validate() error {
17262	invalidParams := request.ErrInvalidParams{Context: "GetMonitoringSubscriptionInput"}
17263	if s.DistributionId == nil {
17264		invalidParams.Add(request.NewErrParamRequired("DistributionId"))
17265	}
17266	if s.DistributionId != nil && len(*s.DistributionId) < 1 {
17267		invalidParams.Add(request.NewErrParamMinLen("DistributionId", 1))
17268	}
17269
17270	if invalidParams.Len() > 0 {
17271		return invalidParams
17272	}
17273	return nil
17274}
17275
17276// SetDistributionId sets the DistributionId field's value.
17277func (s *GetMonitoringSubscriptionInput) SetDistributionId(v string) *GetMonitoringSubscriptionInput {
17278	s.DistributionId = &v
17279	return s
17280}
17281
17282type GetMonitoringSubscriptionOutput struct {
17283	_ struct{} `type:"structure" payload:"MonitoringSubscription"`
17284
17285	// A monitoring subscription. This structure contains information about whether
17286	// additional CloudWatch metrics are enabled for a given CloudFront distribution.
17287	MonitoringSubscription *MonitoringSubscription `type:"structure"`
17288}
17289
17290// String returns the string representation
17291func (s GetMonitoringSubscriptionOutput) String() string {
17292	return awsutil.Prettify(s)
17293}
17294
17295// GoString returns the string representation
17296func (s GetMonitoringSubscriptionOutput) GoString() string {
17297	return s.String()
17298}
17299
17300// SetMonitoringSubscription sets the MonitoringSubscription field's value.
17301func (s *GetMonitoringSubscriptionOutput) SetMonitoringSubscription(v *MonitoringSubscription) *GetMonitoringSubscriptionOutput {
17302	s.MonitoringSubscription = v
17303	return s
17304}
17305
17306type GetOriginRequestPolicyConfigInput struct {
17307	_ struct{} `locationName:"GetOriginRequestPolicyConfigRequest" type:"structure"`
17308
17309	// The unique identifier for the origin request policy. If the origin request
17310	// policy is attached to a distribution’s cache behavior, you can get the
17311	// policy’s identifier using ListDistributions or GetDistribution. If the
17312	// origin request policy is not attached to a cache behavior, you can get the
17313	// identifier using ListOriginRequestPolicies.
17314	//
17315	// Id is a required field
17316	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
17317}
17318
17319// String returns the string representation
17320func (s GetOriginRequestPolicyConfigInput) String() string {
17321	return awsutil.Prettify(s)
17322}
17323
17324// GoString returns the string representation
17325func (s GetOriginRequestPolicyConfigInput) GoString() string {
17326	return s.String()
17327}
17328
17329// Validate inspects the fields of the type to determine if they are valid.
17330func (s *GetOriginRequestPolicyConfigInput) Validate() error {
17331	invalidParams := request.ErrInvalidParams{Context: "GetOriginRequestPolicyConfigInput"}
17332	if s.Id == nil {
17333		invalidParams.Add(request.NewErrParamRequired("Id"))
17334	}
17335	if s.Id != nil && len(*s.Id) < 1 {
17336		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
17337	}
17338
17339	if invalidParams.Len() > 0 {
17340		return invalidParams
17341	}
17342	return nil
17343}
17344
17345// SetId sets the Id field's value.
17346func (s *GetOriginRequestPolicyConfigInput) SetId(v string) *GetOriginRequestPolicyConfigInput {
17347	s.Id = &v
17348	return s
17349}
17350
17351type GetOriginRequestPolicyConfigOutput struct {
17352	_ struct{} `type:"structure" payload:"OriginRequestPolicyConfig"`
17353
17354	// The current version of the origin request policy.
17355	ETag *string `location:"header" locationName:"ETag" type:"string"`
17356
17357	// The origin request policy configuration.
17358	OriginRequestPolicyConfig *OriginRequestPolicyConfig `type:"structure"`
17359}
17360
17361// String returns the string representation
17362func (s GetOriginRequestPolicyConfigOutput) String() string {
17363	return awsutil.Prettify(s)
17364}
17365
17366// GoString returns the string representation
17367func (s GetOriginRequestPolicyConfigOutput) GoString() string {
17368	return s.String()
17369}
17370
17371// SetETag sets the ETag field's value.
17372func (s *GetOriginRequestPolicyConfigOutput) SetETag(v string) *GetOriginRequestPolicyConfigOutput {
17373	s.ETag = &v
17374	return s
17375}
17376
17377// SetOriginRequestPolicyConfig sets the OriginRequestPolicyConfig field's value.
17378func (s *GetOriginRequestPolicyConfigOutput) SetOriginRequestPolicyConfig(v *OriginRequestPolicyConfig) *GetOriginRequestPolicyConfigOutput {
17379	s.OriginRequestPolicyConfig = v
17380	return s
17381}
17382
17383type GetOriginRequestPolicyInput struct {
17384	_ struct{} `locationName:"GetOriginRequestPolicyRequest" type:"structure"`
17385
17386	// The unique identifier for the origin request policy. If the origin request
17387	// policy is attached to a distribution’s cache behavior, you can get the
17388	// policy’s identifier using ListDistributions or GetDistribution. If the
17389	// origin request policy is not attached to a cache behavior, you can get the
17390	// identifier using ListOriginRequestPolicies.
17391	//
17392	// Id is a required field
17393	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
17394}
17395
17396// String returns the string representation
17397func (s GetOriginRequestPolicyInput) String() string {
17398	return awsutil.Prettify(s)
17399}
17400
17401// GoString returns the string representation
17402func (s GetOriginRequestPolicyInput) GoString() string {
17403	return s.String()
17404}
17405
17406// Validate inspects the fields of the type to determine if they are valid.
17407func (s *GetOriginRequestPolicyInput) Validate() error {
17408	invalidParams := request.ErrInvalidParams{Context: "GetOriginRequestPolicyInput"}
17409	if s.Id == nil {
17410		invalidParams.Add(request.NewErrParamRequired("Id"))
17411	}
17412	if s.Id != nil && len(*s.Id) < 1 {
17413		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
17414	}
17415
17416	if invalidParams.Len() > 0 {
17417		return invalidParams
17418	}
17419	return nil
17420}
17421
17422// SetId sets the Id field's value.
17423func (s *GetOriginRequestPolicyInput) SetId(v string) *GetOriginRequestPolicyInput {
17424	s.Id = &v
17425	return s
17426}
17427
17428type GetOriginRequestPolicyOutput struct {
17429	_ struct{} `type:"structure" payload:"OriginRequestPolicy"`
17430
17431	// The current version of the origin request policy.
17432	ETag *string `location:"header" locationName:"ETag" type:"string"`
17433
17434	// The origin request policy.
17435	OriginRequestPolicy *OriginRequestPolicy `type:"structure"`
17436}
17437
17438// String returns the string representation
17439func (s GetOriginRequestPolicyOutput) String() string {
17440	return awsutil.Prettify(s)
17441}
17442
17443// GoString returns the string representation
17444func (s GetOriginRequestPolicyOutput) GoString() string {
17445	return s.String()
17446}
17447
17448// SetETag sets the ETag field's value.
17449func (s *GetOriginRequestPolicyOutput) SetETag(v string) *GetOriginRequestPolicyOutput {
17450	s.ETag = &v
17451	return s
17452}
17453
17454// SetOriginRequestPolicy sets the OriginRequestPolicy field's value.
17455func (s *GetOriginRequestPolicyOutput) SetOriginRequestPolicy(v *OriginRequestPolicy) *GetOriginRequestPolicyOutput {
17456	s.OriginRequestPolicy = v
17457	return s
17458}
17459
17460type GetPublicKeyConfigInput struct {
17461	_ struct{} `locationName:"GetPublicKeyConfigRequest" type:"structure"`
17462
17463	// The identifier of the public key whose configuration you are getting.
17464	//
17465	// Id is a required field
17466	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
17467}
17468
17469// String returns the string representation
17470func (s GetPublicKeyConfigInput) String() string {
17471	return awsutil.Prettify(s)
17472}
17473
17474// GoString returns the string representation
17475func (s GetPublicKeyConfigInput) GoString() string {
17476	return s.String()
17477}
17478
17479// Validate inspects the fields of the type to determine if they are valid.
17480func (s *GetPublicKeyConfigInput) Validate() error {
17481	invalidParams := request.ErrInvalidParams{Context: "GetPublicKeyConfigInput"}
17482	if s.Id == nil {
17483		invalidParams.Add(request.NewErrParamRequired("Id"))
17484	}
17485	if s.Id != nil && len(*s.Id) < 1 {
17486		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
17487	}
17488
17489	if invalidParams.Len() > 0 {
17490		return invalidParams
17491	}
17492	return nil
17493}
17494
17495// SetId sets the Id field's value.
17496func (s *GetPublicKeyConfigInput) SetId(v string) *GetPublicKeyConfigInput {
17497	s.Id = &v
17498	return s
17499}
17500
17501type GetPublicKeyConfigOutput struct {
17502	_ struct{} `type:"structure" payload:"PublicKeyConfig"`
17503
17504	// The identifier for this version of the public key configuration.
17505	ETag *string `location:"header" locationName:"ETag" type:"string"`
17506
17507	// A public key configuration.
17508	PublicKeyConfig *PublicKeyConfig `type:"structure"`
17509}
17510
17511// String returns the string representation
17512func (s GetPublicKeyConfigOutput) String() string {
17513	return awsutil.Prettify(s)
17514}
17515
17516// GoString returns the string representation
17517func (s GetPublicKeyConfigOutput) GoString() string {
17518	return s.String()
17519}
17520
17521// SetETag sets the ETag field's value.
17522func (s *GetPublicKeyConfigOutput) SetETag(v string) *GetPublicKeyConfigOutput {
17523	s.ETag = &v
17524	return s
17525}
17526
17527// SetPublicKeyConfig sets the PublicKeyConfig field's value.
17528func (s *GetPublicKeyConfigOutput) SetPublicKeyConfig(v *PublicKeyConfig) *GetPublicKeyConfigOutput {
17529	s.PublicKeyConfig = v
17530	return s
17531}
17532
17533type GetPublicKeyInput struct {
17534	_ struct{} `locationName:"GetPublicKeyRequest" type:"structure"`
17535
17536	// The identifier of the public key you are getting.
17537	//
17538	// Id is a required field
17539	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
17540}
17541
17542// String returns the string representation
17543func (s GetPublicKeyInput) String() string {
17544	return awsutil.Prettify(s)
17545}
17546
17547// GoString returns the string representation
17548func (s GetPublicKeyInput) GoString() string {
17549	return s.String()
17550}
17551
17552// Validate inspects the fields of the type to determine if they are valid.
17553func (s *GetPublicKeyInput) Validate() error {
17554	invalidParams := request.ErrInvalidParams{Context: "GetPublicKeyInput"}
17555	if s.Id == nil {
17556		invalidParams.Add(request.NewErrParamRequired("Id"))
17557	}
17558	if s.Id != nil && len(*s.Id) < 1 {
17559		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
17560	}
17561
17562	if invalidParams.Len() > 0 {
17563		return invalidParams
17564	}
17565	return nil
17566}
17567
17568// SetId sets the Id field's value.
17569func (s *GetPublicKeyInput) SetId(v string) *GetPublicKeyInput {
17570	s.Id = &v
17571	return s
17572}
17573
17574type GetPublicKeyOutput struct {
17575	_ struct{} `type:"structure" payload:"PublicKey"`
17576
17577	// The identifier for this version of the public key.
17578	ETag *string `location:"header" locationName:"ETag" type:"string"`
17579
17580	// The public key.
17581	PublicKey *PublicKey `type:"structure"`
17582}
17583
17584// String returns the string representation
17585func (s GetPublicKeyOutput) String() string {
17586	return awsutil.Prettify(s)
17587}
17588
17589// GoString returns the string representation
17590func (s GetPublicKeyOutput) GoString() string {
17591	return s.String()
17592}
17593
17594// SetETag sets the ETag field's value.
17595func (s *GetPublicKeyOutput) SetETag(v string) *GetPublicKeyOutput {
17596	s.ETag = &v
17597	return s
17598}
17599
17600// SetPublicKey sets the PublicKey field's value.
17601func (s *GetPublicKeyOutput) SetPublicKey(v *PublicKey) *GetPublicKeyOutput {
17602	s.PublicKey = v
17603	return s
17604}
17605
17606type GetRealtimeLogConfigInput struct {
17607	_ struct{} `locationName:"GetRealtimeLogConfigRequest" type:"structure" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
17608
17609	// The Amazon Resource Name (ARN) of the real-time log configuration to get.
17610	ARN *string `type:"string"`
17611
17612	// The name of the real-time log configuration to get.
17613	Name *string `type:"string"`
17614}
17615
17616// String returns the string representation
17617func (s GetRealtimeLogConfigInput) String() string {
17618	return awsutil.Prettify(s)
17619}
17620
17621// GoString returns the string representation
17622func (s GetRealtimeLogConfigInput) GoString() string {
17623	return s.String()
17624}
17625
17626// SetARN sets the ARN field's value.
17627func (s *GetRealtimeLogConfigInput) SetARN(v string) *GetRealtimeLogConfigInput {
17628	s.ARN = &v
17629	return s
17630}
17631
17632// SetName sets the Name field's value.
17633func (s *GetRealtimeLogConfigInput) SetName(v string) *GetRealtimeLogConfigInput {
17634	s.Name = &v
17635	return s
17636}
17637
17638type GetRealtimeLogConfigOutput struct {
17639	_ struct{} `type:"structure"`
17640
17641	// A real-time log configuration.
17642	RealtimeLogConfig *RealtimeLogConfig `type:"structure"`
17643}
17644
17645// String returns the string representation
17646func (s GetRealtimeLogConfigOutput) String() string {
17647	return awsutil.Prettify(s)
17648}
17649
17650// GoString returns the string representation
17651func (s GetRealtimeLogConfigOutput) GoString() string {
17652	return s.String()
17653}
17654
17655// SetRealtimeLogConfig sets the RealtimeLogConfig field's value.
17656func (s *GetRealtimeLogConfigOutput) SetRealtimeLogConfig(v *RealtimeLogConfig) *GetRealtimeLogConfigOutput {
17657	s.RealtimeLogConfig = v
17658	return s
17659}
17660
17661// To request to get a streaming distribution configuration.
17662type GetStreamingDistributionConfigInput struct {
17663	_ struct{} `locationName:"GetStreamingDistributionConfigRequest" type:"structure"`
17664
17665	// The streaming distribution's ID.
17666	//
17667	// Id is a required field
17668	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
17669}
17670
17671// String returns the string representation
17672func (s GetStreamingDistributionConfigInput) String() string {
17673	return awsutil.Prettify(s)
17674}
17675
17676// GoString returns the string representation
17677func (s GetStreamingDistributionConfigInput) GoString() string {
17678	return s.String()
17679}
17680
17681// Validate inspects the fields of the type to determine if they are valid.
17682func (s *GetStreamingDistributionConfigInput) Validate() error {
17683	invalidParams := request.ErrInvalidParams{Context: "GetStreamingDistributionConfigInput"}
17684	if s.Id == nil {
17685		invalidParams.Add(request.NewErrParamRequired("Id"))
17686	}
17687	if s.Id != nil && len(*s.Id) < 1 {
17688		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
17689	}
17690
17691	if invalidParams.Len() > 0 {
17692		return invalidParams
17693	}
17694	return nil
17695}
17696
17697// SetId sets the Id field's value.
17698func (s *GetStreamingDistributionConfigInput) SetId(v string) *GetStreamingDistributionConfigInput {
17699	s.Id = &v
17700	return s
17701}
17702
17703// The returned result of the corresponding request.
17704type GetStreamingDistributionConfigOutput struct {
17705	_ struct{} `type:"structure" payload:"StreamingDistributionConfig"`
17706
17707	// The current version of the configuration. For example: E2QWRUHAPOMQZL.
17708	ETag *string `location:"header" locationName:"ETag" type:"string"`
17709
17710	// The streaming distribution's configuration information.
17711	StreamingDistributionConfig *StreamingDistributionConfig `type:"structure"`
17712}
17713
17714// String returns the string representation
17715func (s GetStreamingDistributionConfigOutput) String() string {
17716	return awsutil.Prettify(s)
17717}
17718
17719// GoString returns the string representation
17720func (s GetStreamingDistributionConfigOutput) GoString() string {
17721	return s.String()
17722}
17723
17724// SetETag sets the ETag field's value.
17725func (s *GetStreamingDistributionConfigOutput) SetETag(v string) *GetStreamingDistributionConfigOutput {
17726	s.ETag = &v
17727	return s
17728}
17729
17730// SetStreamingDistributionConfig sets the StreamingDistributionConfig field's value.
17731func (s *GetStreamingDistributionConfigOutput) SetStreamingDistributionConfig(v *StreamingDistributionConfig) *GetStreamingDistributionConfigOutput {
17732	s.StreamingDistributionConfig = v
17733	return s
17734}
17735
17736// The request to get a streaming distribution's information.
17737type GetStreamingDistributionInput struct {
17738	_ struct{} `locationName:"GetStreamingDistributionRequest" type:"structure"`
17739
17740	// The streaming distribution's ID.
17741	//
17742	// Id is a required field
17743	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
17744}
17745
17746// String returns the string representation
17747func (s GetStreamingDistributionInput) String() string {
17748	return awsutil.Prettify(s)
17749}
17750
17751// GoString returns the string representation
17752func (s GetStreamingDistributionInput) GoString() string {
17753	return s.String()
17754}
17755
17756// Validate inspects the fields of the type to determine if they are valid.
17757func (s *GetStreamingDistributionInput) Validate() error {
17758	invalidParams := request.ErrInvalidParams{Context: "GetStreamingDistributionInput"}
17759	if s.Id == nil {
17760		invalidParams.Add(request.NewErrParamRequired("Id"))
17761	}
17762	if s.Id != nil && len(*s.Id) < 1 {
17763		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
17764	}
17765
17766	if invalidParams.Len() > 0 {
17767		return invalidParams
17768	}
17769	return nil
17770}
17771
17772// SetId sets the Id field's value.
17773func (s *GetStreamingDistributionInput) SetId(v string) *GetStreamingDistributionInput {
17774	s.Id = &v
17775	return s
17776}
17777
17778// The returned result of the corresponding request.
17779type GetStreamingDistributionOutput struct {
17780	_ struct{} `type:"structure" payload:"StreamingDistribution"`
17781
17782	// The current version of the streaming distribution's information. For example:
17783	// E2QWRUHAPOMQZL.
17784	ETag *string `location:"header" locationName:"ETag" type:"string"`
17785
17786	// The streaming distribution's information.
17787	StreamingDistribution *StreamingDistribution `type:"structure"`
17788}
17789
17790// String returns the string representation
17791func (s GetStreamingDistributionOutput) String() string {
17792	return awsutil.Prettify(s)
17793}
17794
17795// GoString returns the string representation
17796func (s GetStreamingDistributionOutput) GoString() string {
17797	return s.String()
17798}
17799
17800// SetETag sets the ETag field's value.
17801func (s *GetStreamingDistributionOutput) SetETag(v string) *GetStreamingDistributionOutput {
17802	s.ETag = &v
17803	return s
17804}
17805
17806// SetStreamingDistribution sets the StreamingDistribution field's value.
17807func (s *GetStreamingDistributionOutput) SetStreamingDistribution(v *StreamingDistribution) *GetStreamingDistributionOutput {
17808	s.StreamingDistribution = v
17809	return s
17810}
17811
17812// Contains a list of HTTP header names.
17813type Headers struct {
17814	_ struct{} `type:"structure"`
17815
17816	// A list of HTTP header names.
17817	Items []*string `locationNameList:"Name" type:"list"`
17818
17819	// The number of header names in the Items list.
17820	//
17821	// Quantity is a required field
17822	Quantity *int64 `type:"integer" required:"true"`
17823}
17824
17825// String returns the string representation
17826func (s Headers) String() string {
17827	return awsutil.Prettify(s)
17828}
17829
17830// GoString returns the string representation
17831func (s Headers) GoString() string {
17832	return s.String()
17833}
17834
17835// Validate inspects the fields of the type to determine if they are valid.
17836func (s *Headers) Validate() error {
17837	invalidParams := request.ErrInvalidParams{Context: "Headers"}
17838	if s.Quantity == nil {
17839		invalidParams.Add(request.NewErrParamRequired("Quantity"))
17840	}
17841
17842	if invalidParams.Len() > 0 {
17843		return invalidParams
17844	}
17845	return nil
17846}
17847
17848// SetItems sets the Items field's value.
17849func (s *Headers) SetItems(v []*string) *Headers {
17850	s.Items = v
17851	return s
17852}
17853
17854// SetQuantity sets the Quantity field's value.
17855func (s *Headers) SetQuantity(v int64) *Headers {
17856	s.Quantity = &v
17857	return s
17858}
17859
17860// An invalidation.
17861type Invalidation struct {
17862	_ struct{} `type:"structure"`
17863
17864	// The date and time the invalidation request was first made.
17865	//
17866	// CreateTime is a required field
17867	CreateTime *time.Time `type:"timestamp" required:"true"`
17868
17869	// The identifier for the invalidation request. For example: IDFDVBD632BHDS5.
17870	//
17871	// Id is a required field
17872	Id *string `type:"string" required:"true"`
17873
17874	// The current invalidation information for the batch request.
17875	//
17876	// InvalidationBatch is a required field
17877	InvalidationBatch *InvalidationBatch `type:"structure" required:"true"`
17878
17879	// The status of the invalidation request. When the invalidation batch is finished,
17880	// the status is Completed.
17881	//
17882	// Status is a required field
17883	Status *string `type:"string" required:"true"`
17884}
17885
17886// String returns the string representation
17887func (s Invalidation) String() string {
17888	return awsutil.Prettify(s)
17889}
17890
17891// GoString returns the string representation
17892func (s Invalidation) GoString() string {
17893	return s.String()
17894}
17895
17896// SetCreateTime sets the CreateTime field's value.
17897func (s *Invalidation) SetCreateTime(v time.Time) *Invalidation {
17898	s.CreateTime = &v
17899	return s
17900}
17901
17902// SetId sets the Id field's value.
17903func (s *Invalidation) SetId(v string) *Invalidation {
17904	s.Id = &v
17905	return s
17906}
17907
17908// SetInvalidationBatch sets the InvalidationBatch field's value.
17909func (s *Invalidation) SetInvalidationBatch(v *InvalidationBatch) *Invalidation {
17910	s.InvalidationBatch = v
17911	return s
17912}
17913
17914// SetStatus sets the Status field's value.
17915func (s *Invalidation) SetStatus(v string) *Invalidation {
17916	s.Status = &v
17917	return s
17918}
17919
17920// An invalidation batch.
17921type InvalidationBatch struct {
17922	_ struct{} `type:"structure"`
17923
17924	// A value that you specify to uniquely identify an invalidation request. CloudFront
17925	// uses the value to prevent you from accidentally resubmitting an identical
17926	// request. Whenever you create a new invalidation request, you must specify
17927	// a new value for CallerReference and change other values in the request as
17928	// applicable. One way to ensure that the value of CallerReference is unique
17929	// is to use a timestamp, for example, 20120301090000.
17930	//
17931	// If you make a second invalidation request with the same value for CallerReference,
17932	// and if the rest of the request is the same, CloudFront doesn't create a new
17933	// invalidation request. Instead, CloudFront returns information about the invalidation
17934	// request that you previously created with the same CallerReference.
17935	//
17936	// If CallerReference is a value you already sent in a previous invalidation
17937	// batch request but the content of any Path is different from the original
17938	// request, CloudFront returns an InvalidationBatchAlreadyExists error.
17939	//
17940	// CallerReference is a required field
17941	CallerReference *string `type:"string" required:"true"`
17942
17943	// A complex type that contains information about the objects that you want
17944	// to invalidate. For more information, see Specifying the Objects to Invalidate
17945	// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects)
17946	// in the Amazon CloudFront Developer Guide.
17947	//
17948	// Paths is a required field
17949	Paths *Paths `type:"structure" required:"true"`
17950}
17951
17952// String returns the string representation
17953func (s InvalidationBatch) String() string {
17954	return awsutil.Prettify(s)
17955}
17956
17957// GoString returns the string representation
17958func (s InvalidationBatch) GoString() string {
17959	return s.String()
17960}
17961
17962// Validate inspects the fields of the type to determine if they are valid.
17963func (s *InvalidationBatch) Validate() error {
17964	invalidParams := request.ErrInvalidParams{Context: "InvalidationBatch"}
17965	if s.CallerReference == nil {
17966		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
17967	}
17968	if s.Paths == nil {
17969		invalidParams.Add(request.NewErrParamRequired("Paths"))
17970	}
17971	if s.Paths != nil {
17972		if err := s.Paths.Validate(); err != nil {
17973			invalidParams.AddNested("Paths", err.(request.ErrInvalidParams))
17974		}
17975	}
17976
17977	if invalidParams.Len() > 0 {
17978		return invalidParams
17979	}
17980	return nil
17981}
17982
17983// SetCallerReference sets the CallerReference field's value.
17984func (s *InvalidationBatch) SetCallerReference(v string) *InvalidationBatch {
17985	s.CallerReference = &v
17986	return s
17987}
17988
17989// SetPaths sets the Paths field's value.
17990func (s *InvalidationBatch) SetPaths(v *Paths) *InvalidationBatch {
17991	s.Paths = v
17992	return s
17993}
17994
17995// The InvalidationList complex type describes the list of invalidation objects.
17996// For more information about invalidation, see Invalidating Objects (Web Distributions
17997// Only) (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html)
17998// in the Amazon CloudFront Developer Guide.
17999type InvalidationList struct {
18000	_ struct{} `type:"structure"`
18001
18002	// A flag that indicates whether more invalidation batch requests remain to
18003	// be listed. If your results were truncated, you can make a follow-up pagination
18004	// request using the Marker request parameter to retrieve more invalidation
18005	// batches in the list.
18006	//
18007	// IsTruncated is a required field
18008	IsTruncated *bool `type:"boolean" required:"true"`
18009
18010	// A complex type that contains one InvalidationSummary element for each invalidation
18011	// batch created by the current account.
18012	Items []*InvalidationSummary `locationNameList:"InvalidationSummary" type:"list"`
18013
18014	// The value that you provided for the Marker request parameter.
18015	//
18016	// Marker is a required field
18017	Marker *string `type:"string" required:"true"`
18018
18019	// The value that you provided for the MaxItems request parameter.
18020	//
18021	// MaxItems is a required field
18022	MaxItems *int64 `type:"integer" required:"true"`
18023
18024	// If IsTruncated is true, this element is present and contains the value that
18025	// you can use for the Marker request parameter to continue listing your invalidation
18026	// batches where they left off.
18027	NextMarker *string `type:"string"`
18028
18029	// The number of invalidation batches that were created by the current account.
18030	//
18031	// Quantity is a required field
18032	Quantity *int64 `type:"integer" required:"true"`
18033}
18034
18035// String returns the string representation
18036func (s InvalidationList) String() string {
18037	return awsutil.Prettify(s)
18038}
18039
18040// GoString returns the string representation
18041func (s InvalidationList) GoString() string {
18042	return s.String()
18043}
18044
18045// SetIsTruncated sets the IsTruncated field's value.
18046func (s *InvalidationList) SetIsTruncated(v bool) *InvalidationList {
18047	s.IsTruncated = &v
18048	return s
18049}
18050
18051// SetItems sets the Items field's value.
18052func (s *InvalidationList) SetItems(v []*InvalidationSummary) *InvalidationList {
18053	s.Items = v
18054	return s
18055}
18056
18057// SetMarker sets the Marker field's value.
18058func (s *InvalidationList) SetMarker(v string) *InvalidationList {
18059	s.Marker = &v
18060	return s
18061}
18062
18063// SetMaxItems sets the MaxItems field's value.
18064func (s *InvalidationList) SetMaxItems(v int64) *InvalidationList {
18065	s.MaxItems = &v
18066	return s
18067}
18068
18069// SetNextMarker sets the NextMarker field's value.
18070func (s *InvalidationList) SetNextMarker(v string) *InvalidationList {
18071	s.NextMarker = &v
18072	return s
18073}
18074
18075// SetQuantity sets the Quantity field's value.
18076func (s *InvalidationList) SetQuantity(v int64) *InvalidationList {
18077	s.Quantity = &v
18078	return s
18079}
18080
18081// A summary of an invalidation request.
18082type InvalidationSummary struct {
18083	_ struct{} `type:"structure"`
18084
18085	// The time that an invalidation request was created.
18086	//
18087	// CreateTime is a required field
18088	CreateTime *time.Time `type:"timestamp" required:"true"`
18089
18090	// The unique ID for an invalidation request.
18091	//
18092	// Id is a required field
18093	Id *string `type:"string" required:"true"`
18094
18095	// The status of an invalidation request.
18096	//
18097	// Status is a required field
18098	Status *string `type:"string" required:"true"`
18099}
18100
18101// String returns the string representation
18102func (s InvalidationSummary) String() string {
18103	return awsutil.Prettify(s)
18104}
18105
18106// GoString returns the string representation
18107func (s InvalidationSummary) GoString() string {
18108	return s.String()
18109}
18110
18111// SetCreateTime sets the CreateTime field's value.
18112func (s *InvalidationSummary) SetCreateTime(v time.Time) *InvalidationSummary {
18113	s.CreateTime = &v
18114	return s
18115}
18116
18117// SetId sets the Id field's value.
18118func (s *InvalidationSummary) SetId(v string) *InvalidationSummary {
18119	s.Id = &v
18120	return s
18121}
18122
18123// SetStatus sets the Status field's value.
18124func (s *InvalidationSummary) SetStatus(v string) *InvalidationSummary {
18125	s.Status = &v
18126	return s
18127}
18128
18129// A list of identifiers for the public keys that CloudFront can use to verify
18130// the signatures of signed URLs and signed cookies.
18131type KGKeyPairIds struct {
18132	_ struct{} `type:"structure"`
18133
18134	// The identifier of the key group that contains the public keys.
18135	KeyGroupId *string `type:"string"`
18136
18137	// A list of CloudFront key pair identifiers.
18138	KeyPairIds *KeyPairIds `type:"structure"`
18139}
18140
18141// String returns the string representation
18142func (s KGKeyPairIds) String() string {
18143	return awsutil.Prettify(s)
18144}
18145
18146// GoString returns the string representation
18147func (s KGKeyPairIds) GoString() string {
18148	return s.String()
18149}
18150
18151// SetKeyGroupId sets the KeyGroupId field's value.
18152func (s *KGKeyPairIds) SetKeyGroupId(v string) *KGKeyPairIds {
18153	s.KeyGroupId = &v
18154	return s
18155}
18156
18157// SetKeyPairIds sets the KeyPairIds field's value.
18158func (s *KGKeyPairIds) SetKeyPairIds(v *KeyPairIds) *KGKeyPairIds {
18159	s.KeyPairIds = v
18160	return s
18161}
18162
18163// A key group.
18164//
18165// A key group contains a list of public keys that you can use with CloudFront
18166// signed URLs and signed cookies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html).
18167type KeyGroup struct {
18168	_ struct{} `type:"structure"`
18169
18170	// The identifier for the key group.
18171	//
18172	// Id is a required field
18173	Id *string `type:"string" required:"true"`
18174
18175	// The key group configuration.
18176	//
18177	// KeyGroupConfig is a required field
18178	KeyGroupConfig *KeyGroupConfig `type:"structure" required:"true"`
18179
18180	// The date and time when the key group was last modified.
18181	//
18182	// LastModifiedTime is a required field
18183	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
18184}
18185
18186// String returns the string representation
18187func (s KeyGroup) String() string {
18188	return awsutil.Prettify(s)
18189}
18190
18191// GoString returns the string representation
18192func (s KeyGroup) GoString() string {
18193	return s.String()
18194}
18195
18196// SetId sets the Id field's value.
18197func (s *KeyGroup) SetId(v string) *KeyGroup {
18198	s.Id = &v
18199	return s
18200}
18201
18202// SetKeyGroupConfig sets the KeyGroupConfig field's value.
18203func (s *KeyGroup) SetKeyGroupConfig(v *KeyGroupConfig) *KeyGroup {
18204	s.KeyGroupConfig = v
18205	return s
18206}
18207
18208// SetLastModifiedTime sets the LastModifiedTime field's value.
18209func (s *KeyGroup) SetLastModifiedTime(v time.Time) *KeyGroup {
18210	s.LastModifiedTime = &v
18211	return s
18212}
18213
18214// A key group configuration.
18215//
18216// A key group contains a list of public keys that you can use with CloudFront
18217// signed URLs and signed cookies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html).
18218type KeyGroupConfig struct {
18219	_ struct{} `type:"structure"`
18220
18221	// A comment to describe the key group. The comment cannot be longer than 128
18222	// characters.
18223	Comment *string `type:"string"`
18224
18225	// A list of the identifiers of the public keys in the key group.
18226	//
18227	// Items is a required field
18228	Items []*string `locationNameList:"PublicKey" type:"list" required:"true"`
18229
18230	// A name to identify the key group.
18231	//
18232	// Name is a required field
18233	Name *string `type:"string" required:"true"`
18234}
18235
18236// String returns the string representation
18237func (s KeyGroupConfig) String() string {
18238	return awsutil.Prettify(s)
18239}
18240
18241// GoString returns the string representation
18242func (s KeyGroupConfig) GoString() string {
18243	return s.String()
18244}
18245
18246// Validate inspects the fields of the type to determine if they are valid.
18247func (s *KeyGroupConfig) Validate() error {
18248	invalidParams := request.ErrInvalidParams{Context: "KeyGroupConfig"}
18249	if s.Items == nil {
18250		invalidParams.Add(request.NewErrParamRequired("Items"))
18251	}
18252	if s.Name == nil {
18253		invalidParams.Add(request.NewErrParamRequired("Name"))
18254	}
18255
18256	if invalidParams.Len() > 0 {
18257		return invalidParams
18258	}
18259	return nil
18260}
18261
18262// SetComment sets the Comment field's value.
18263func (s *KeyGroupConfig) SetComment(v string) *KeyGroupConfig {
18264	s.Comment = &v
18265	return s
18266}
18267
18268// SetItems sets the Items field's value.
18269func (s *KeyGroupConfig) SetItems(v []*string) *KeyGroupConfig {
18270	s.Items = v
18271	return s
18272}
18273
18274// SetName sets the Name field's value.
18275func (s *KeyGroupConfig) SetName(v string) *KeyGroupConfig {
18276	s.Name = &v
18277	return s
18278}
18279
18280// A list of key groups.
18281type KeyGroupList struct {
18282	_ struct{} `type:"structure"`
18283
18284	// A list of key groups.
18285	Items []*KeyGroupSummary `locationNameList:"KeyGroupSummary" type:"list"`
18286
18287	// The maximum number of key groups requested.
18288	//
18289	// MaxItems is a required field
18290	MaxItems *int64 `type:"integer" required:"true"`
18291
18292	// If there are more items in the list than are in this response, this element
18293	// is present. It contains the value that you should use in the Marker field
18294	// of a subsequent request to continue listing key groups.
18295	NextMarker *string `type:"string"`
18296
18297	// The number of key groups returned in the response.
18298	//
18299	// Quantity is a required field
18300	Quantity *int64 `type:"integer" required:"true"`
18301}
18302
18303// String returns the string representation
18304func (s KeyGroupList) String() string {
18305	return awsutil.Prettify(s)
18306}
18307
18308// GoString returns the string representation
18309func (s KeyGroupList) GoString() string {
18310	return s.String()
18311}
18312
18313// SetItems sets the Items field's value.
18314func (s *KeyGroupList) SetItems(v []*KeyGroupSummary) *KeyGroupList {
18315	s.Items = v
18316	return s
18317}
18318
18319// SetMaxItems sets the MaxItems field's value.
18320func (s *KeyGroupList) SetMaxItems(v int64) *KeyGroupList {
18321	s.MaxItems = &v
18322	return s
18323}
18324
18325// SetNextMarker sets the NextMarker field's value.
18326func (s *KeyGroupList) SetNextMarker(v string) *KeyGroupList {
18327	s.NextMarker = &v
18328	return s
18329}
18330
18331// SetQuantity sets the Quantity field's value.
18332func (s *KeyGroupList) SetQuantity(v int64) *KeyGroupList {
18333	s.Quantity = &v
18334	return s
18335}
18336
18337// Contains information about a key group.
18338type KeyGroupSummary struct {
18339	_ struct{} `type:"structure"`
18340
18341	// A key group.
18342	//
18343	// KeyGroup is a required field
18344	KeyGroup *KeyGroup `type:"structure" required:"true"`
18345}
18346
18347// String returns the string representation
18348func (s KeyGroupSummary) String() string {
18349	return awsutil.Prettify(s)
18350}
18351
18352// GoString returns the string representation
18353func (s KeyGroupSummary) GoString() string {
18354	return s.String()
18355}
18356
18357// SetKeyGroup sets the KeyGroup field's value.
18358func (s *KeyGroupSummary) SetKeyGroup(v *KeyGroup) *KeyGroupSummary {
18359	s.KeyGroup = v
18360	return s
18361}
18362
18363// A list of CloudFront key pair identifiers.
18364type KeyPairIds struct {
18365	_ struct{} `type:"structure"`
18366
18367	// A list of CloudFront key pair identifiers.
18368	Items []*string `locationNameList:"KeyPairId" type:"list"`
18369
18370	// The number of key pair identifiers in the list.
18371	//
18372	// Quantity is a required field
18373	Quantity *int64 `type:"integer" required:"true"`
18374}
18375
18376// String returns the string representation
18377func (s KeyPairIds) String() string {
18378	return awsutil.Prettify(s)
18379}
18380
18381// GoString returns the string representation
18382func (s KeyPairIds) GoString() string {
18383	return s.String()
18384}
18385
18386// SetItems sets the Items field's value.
18387func (s *KeyPairIds) SetItems(v []*string) *KeyPairIds {
18388	s.Items = v
18389	return s
18390}
18391
18392// SetQuantity sets the Quantity field's value.
18393func (s *KeyPairIds) SetQuantity(v int64) *KeyPairIds {
18394	s.Quantity = &v
18395	return s
18396}
18397
18398// Contains information about the Amazon Kinesis data stream where you are sending
18399// real-time log data.
18400type KinesisStreamConfig struct {
18401	_ struct{} `type:"structure"`
18402
18403	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
18404	// role that CloudFront can use to send real-time log data to your Kinesis data
18405	// stream.
18406	//
18407	// For more information the IAM role, see Real-time log configuration IAM role
18408	// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-iam-role)
18409	// in the Amazon CloudFront Developer Guide.
18410	//
18411	// RoleARN is a required field
18412	RoleARN *string `type:"string" required:"true"`
18413
18414	// The Amazon Resource Name (ARN) of the Kinesis data stream where you are sending
18415	// real-time log data.
18416	//
18417	// StreamARN is a required field
18418	StreamARN *string `type:"string" required:"true"`
18419}
18420
18421// String returns the string representation
18422func (s KinesisStreamConfig) String() string {
18423	return awsutil.Prettify(s)
18424}
18425
18426// GoString returns the string representation
18427func (s KinesisStreamConfig) GoString() string {
18428	return s.String()
18429}
18430
18431// Validate inspects the fields of the type to determine if they are valid.
18432func (s *KinesisStreamConfig) Validate() error {
18433	invalidParams := request.ErrInvalidParams{Context: "KinesisStreamConfig"}
18434	if s.RoleARN == nil {
18435		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
18436	}
18437	if s.StreamARN == nil {
18438		invalidParams.Add(request.NewErrParamRequired("StreamARN"))
18439	}
18440
18441	if invalidParams.Len() > 0 {
18442		return invalidParams
18443	}
18444	return nil
18445}
18446
18447// SetRoleARN sets the RoleARN field's value.
18448func (s *KinesisStreamConfig) SetRoleARN(v string) *KinesisStreamConfig {
18449	s.RoleARN = &v
18450	return s
18451}
18452
18453// SetStreamARN sets the StreamARN field's value.
18454func (s *KinesisStreamConfig) SetStreamARN(v string) *KinesisStreamConfig {
18455	s.StreamARN = &v
18456	return s
18457}
18458
18459// A complex type that contains a Lambda@Edge function association.
18460type LambdaFunctionAssociation struct {
18461	_ struct{} `type:"structure"`
18462
18463	// Specifies the event type that triggers a Lambda@Edge function invocation.
18464	// You can specify the following values:
18465	//
18466	//    * viewer-request: The function executes when CloudFront receives a request
18467	//    from a viewer and before it checks to see whether the requested object
18468	//    is in the edge cache.
18469	//
18470	//    * origin-request: The function executes only when CloudFront sends a request
18471	//    to your origin. When the requested object is in the edge cache, the function
18472	//    doesn't execute.
18473	//
18474	//    * origin-response: The function executes after CloudFront receives a response
18475	//    from the origin and before it caches the object in the response. When
18476	//    the requested object is in the edge cache, the function doesn't execute.
18477	//
18478	//    * viewer-response: The function executes before CloudFront returns the
18479	//    requested object to the viewer. The function executes regardless of whether
18480	//    the object was already in the edge cache. If the origin returns an HTTP
18481	//    status code other than HTTP 200 (OK), the function doesn't execute.
18482	//
18483	// EventType is a required field
18484	EventType *string `type:"string" required:"true" enum:"EventType"`
18485
18486	// A flag that allows a Lambda@Edge function to have read access to the body
18487	// content. For more information, see Accessing the Request Body by Choosing
18488	// the Include Body Option (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-include-body-access.html)
18489	// in the Amazon CloudFront Developer Guide.
18490	IncludeBody *bool `type:"boolean"`
18491
18492	// The ARN of the Lambda@Edge function. You must specify the ARN of a function
18493	// version; you can't specify an alias or $LATEST.
18494	//
18495	// LambdaFunctionARN is a required field
18496	LambdaFunctionARN *string `type:"string" required:"true"`
18497}
18498
18499// String returns the string representation
18500func (s LambdaFunctionAssociation) String() string {
18501	return awsutil.Prettify(s)
18502}
18503
18504// GoString returns the string representation
18505func (s LambdaFunctionAssociation) GoString() string {
18506	return s.String()
18507}
18508
18509// Validate inspects the fields of the type to determine if they are valid.
18510func (s *LambdaFunctionAssociation) Validate() error {
18511	invalidParams := request.ErrInvalidParams{Context: "LambdaFunctionAssociation"}
18512	if s.EventType == nil {
18513		invalidParams.Add(request.NewErrParamRequired("EventType"))
18514	}
18515	if s.LambdaFunctionARN == nil {
18516		invalidParams.Add(request.NewErrParamRequired("LambdaFunctionARN"))
18517	}
18518
18519	if invalidParams.Len() > 0 {
18520		return invalidParams
18521	}
18522	return nil
18523}
18524
18525// SetEventType sets the EventType field's value.
18526func (s *LambdaFunctionAssociation) SetEventType(v string) *LambdaFunctionAssociation {
18527	s.EventType = &v
18528	return s
18529}
18530
18531// SetIncludeBody sets the IncludeBody field's value.
18532func (s *LambdaFunctionAssociation) SetIncludeBody(v bool) *LambdaFunctionAssociation {
18533	s.IncludeBody = &v
18534	return s
18535}
18536
18537// SetLambdaFunctionARN sets the LambdaFunctionARN field's value.
18538func (s *LambdaFunctionAssociation) SetLambdaFunctionARN(v string) *LambdaFunctionAssociation {
18539	s.LambdaFunctionARN = &v
18540	return s
18541}
18542
18543// A complex type that specifies a list of Lambda@Edge functions associations
18544// for a cache behavior.
18545//
18546// If you want to invoke one or more Lambda@Edge functions triggered by requests
18547// that match the PathPattern of the cache behavior, specify the applicable
18548// values for Quantity and Items. Note that there can be up to 4 LambdaFunctionAssociation
18549// items in this list (one for each possible value of EventType) and each EventType
18550// can be associated with only one function.
18551//
18552// If you don't want to invoke any Lambda@Edge functions for the requests that
18553// match PathPattern, specify 0 for Quantity and omit Items.
18554type LambdaFunctionAssociations struct {
18555	_ struct{} `type:"structure"`
18556
18557	// Optional: A complex type that contains LambdaFunctionAssociation items for
18558	// this cache behavior. If Quantity is 0, you can omit Items.
18559	Items []*LambdaFunctionAssociation `locationNameList:"LambdaFunctionAssociation" type:"list"`
18560
18561	// The number of Lambda@Edge function associations for this cache behavior.
18562	//
18563	// Quantity is a required field
18564	Quantity *int64 `type:"integer" required:"true"`
18565}
18566
18567// String returns the string representation
18568func (s LambdaFunctionAssociations) String() string {
18569	return awsutil.Prettify(s)
18570}
18571
18572// GoString returns the string representation
18573func (s LambdaFunctionAssociations) GoString() string {
18574	return s.String()
18575}
18576
18577// Validate inspects the fields of the type to determine if they are valid.
18578func (s *LambdaFunctionAssociations) Validate() error {
18579	invalidParams := request.ErrInvalidParams{Context: "LambdaFunctionAssociations"}
18580	if s.Quantity == nil {
18581		invalidParams.Add(request.NewErrParamRequired("Quantity"))
18582	}
18583	if s.Items != nil {
18584		for i, v := range s.Items {
18585			if v == nil {
18586				continue
18587			}
18588			if err := v.Validate(); err != nil {
18589				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
18590			}
18591		}
18592	}
18593
18594	if invalidParams.Len() > 0 {
18595		return invalidParams
18596	}
18597	return nil
18598}
18599
18600// SetItems sets the Items field's value.
18601func (s *LambdaFunctionAssociations) SetItems(v []*LambdaFunctionAssociation) *LambdaFunctionAssociations {
18602	s.Items = v
18603	return s
18604}
18605
18606// SetQuantity sets the Quantity field's value.
18607func (s *LambdaFunctionAssociations) SetQuantity(v int64) *LambdaFunctionAssociations {
18608	s.Quantity = &v
18609	return s
18610}
18611
18612type ListCachePoliciesInput struct {
18613	_ struct{} `locationName:"ListCachePoliciesRequest" type:"structure"`
18614
18615	// Use this field when paginating results to indicate where to begin in your
18616	// list of cache policies. The response includes cache policies in the list
18617	// that occur after the marker. To get the next page of the list, set this field’s
18618	// value to the value of NextMarker from the current page’s response.
18619	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
18620
18621	// The maximum number of cache policies that you want in the response.
18622	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
18623
18624	// A filter to return only the specified kinds of cache policies. Valid values
18625	// are:
18626	//
18627	//    * managed – Returns only the managed policies created by Amazon Web
18628	//    Services.
18629	//
18630	//    * custom – Returns only the custom policies created in your account.
18631	Type *string `location:"querystring" locationName:"Type" type:"string" enum:"CachePolicyType"`
18632}
18633
18634// String returns the string representation
18635func (s ListCachePoliciesInput) String() string {
18636	return awsutil.Prettify(s)
18637}
18638
18639// GoString returns the string representation
18640func (s ListCachePoliciesInput) GoString() string {
18641	return s.String()
18642}
18643
18644// SetMarker sets the Marker field's value.
18645func (s *ListCachePoliciesInput) SetMarker(v string) *ListCachePoliciesInput {
18646	s.Marker = &v
18647	return s
18648}
18649
18650// SetMaxItems sets the MaxItems field's value.
18651func (s *ListCachePoliciesInput) SetMaxItems(v int64) *ListCachePoliciesInput {
18652	s.MaxItems = &v
18653	return s
18654}
18655
18656// SetType sets the Type field's value.
18657func (s *ListCachePoliciesInput) SetType(v string) *ListCachePoliciesInput {
18658	s.Type = &v
18659	return s
18660}
18661
18662type ListCachePoliciesOutput struct {
18663	_ struct{} `type:"structure" payload:"CachePolicyList"`
18664
18665	// A list of cache policies.
18666	CachePolicyList *CachePolicyList `type:"structure"`
18667}
18668
18669// String returns the string representation
18670func (s ListCachePoliciesOutput) String() string {
18671	return awsutil.Prettify(s)
18672}
18673
18674// GoString returns the string representation
18675func (s ListCachePoliciesOutput) GoString() string {
18676	return s.String()
18677}
18678
18679// SetCachePolicyList sets the CachePolicyList field's value.
18680func (s *ListCachePoliciesOutput) SetCachePolicyList(v *CachePolicyList) *ListCachePoliciesOutput {
18681	s.CachePolicyList = v
18682	return s
18683}
18684
18685// The request to list origin access identities.
18686type ListCloudFrontOriginAccessIdentitiesInput struct {
18687	_ struct{} `locationName:"ListCloudFrontOriginAccessIdentitiesRequest" type:"structure"`
18688
18689	// Use this when paginating results to indicate where to begin in your list
18690	// of origin access identities. The results include identities in the list that
18691	// occur after the marker. To get the next page of results, set the Marker to
18692	// the value of the NextMarker from the current page's response (which is also
18693	// the ID of the last identity on that page).
18694	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
18695
18696	// The maximum number of origin access identities you want in the response body.
18697	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
18698}
18699
18700// String returns the string representation
18701func (s ListCloudFrontOriginAccessIdentitiesInput) String() string {
18702	return awsutil.Prettify(s)
18703}
18704
18705// GoString returns the string representation
18706func (s ListCloudFrontOriginAccessIdentitiesInput) GoString() string {
18707	return s.String()
18708}
18709
18710// SetMarker sets the Marker field's value.
18711func (s *ListCloudFrontOriginAccessIdentitiesInput) SetMarker(v string) *ListCloudFrontOriginAccessIdentitiesInput {
18712	s.Marker = &v
18713	return s
18714}
18715
18716// SetMaxItems sets the MaxItems field's value.
18717func (s *ListCloudFrontOriginAccessIdentitiesInput) SetMaxItems(v int64) *ListCloudFrontOriginAccessIdentitiesInput {
18718	s.MaxItems = &v
18719	return s
18720}
18721
18722// The returned result of the corresponding request.
18723type ListCloudFrontOriginAccessIdentitiesOutput struct {
18724	_ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentityList"`
18725
18726	// The CloudFrontOriginAccessIdentityList type.
18727	CloudFrontOriginAccessIdentityList *OriginAccessIdentityList `type:"structure"`
18728}
18729
18730// String returns the string representation
18731func (s ListCloudFrontOriginAccessIdentitiesOutput) String() string {
18732	return awsutil.Prettify(s)
18733}
18734
18735// GoString returns the string representation
18736func (s ListCloudFrontOriginAccessIdentitiesOutput) GoString() string {
18737	return s.String()
18738}
18739
18740// SetCloudFrontOriginAccessIdentityList sets the CloudFrontOriginAccessIdentityList field's value.
18741func (s *ListCloudFrontOriginAccessIdentitiesOutput) SetCloudFrontOriginAccessIdentityList(v *OriginAccessIdentityList) *ListCloudFrontOriginAccessIdentitiesOutput {
18742	s.CloudFrontOriginAccessIdentityList = v
18743	return s
18744}
18745
18746type ListConflictingAliasesInput struct {
18747	_ struct{} `locationName:"ListConflictingAliasesRequest" type:"structure"`
18748
18749	// The alias (also called a CNAME) to search for conflicting aliases.
18750	//
18751	// Alias is a required field
18752	Alias *string `location:"querystring" locationName:"Alias" type:"string" required:"true"`
18753
18754	// The ID of a distribution in your account that has an attached SSL/TLS certificate
18755	// that includes the provided alias.
18756	//
18757	// DistributionId is a required field
18758	DistributionId *string `location:"querystring" locationName:"DistributionId" type:"string" required:"true"`
18759
18760	// Use this field when paginating results to indicate where to begin in the
18761	// list of conflicting aliases. The response includes conflicting aliases in
18762	// the list that occur after the marker. To get the next page of the list, set
18763	// this field’s value to the value of NextMarker from the current page’s
18764	// response.
18765	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
18766
18767	// The maximum number of conflicting aliases that you want in the response.
18768	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
18769}
18770
18771// String returns the string representation
18772func (s ListConflictingAliasesInput) String() string {
18773	return awsutil.Prettify(s)
18774}
18775
18776// GoString returns the string representation
18777func (s ListConflictingAliasesInput) GoString() string {
18778	return s.String()
18779}
18780
18781// Validate inspects the fields of the type to determine if they are valid.
18782func (s *ListConflictingAliasesInput) Validate() error {
18783	invalidParams := request.ErrInvalidParams{Context: "ListConflictingAliasesInput"}
18784	if s.Alias == nil {
18785		invalidParams.Add(request.NewErrParamRequired("Alias"))
18786	}
18787	if s.DistributionId == nil {
18788		invalidParams.Add(request.NewErrParamRequired("DistributionId"))
18789	}
18790
18791	if invalidParams.Len() > 0 {
18792		return invalidParams
18793	}
18794	return nil
18795}
18796
18797// SetAlias sets the Alias field's value.
18798func (s *ListConflictingAliasesInput) SetAlias(v string) *ListConflictingAliasesInput {
18799	s.Alias = &v
18800	return s
18801}
18802
18803// SetDistributionId sets the DistributionId field's value.
18804func (s *ListConflictingAliasesInput) SetDistributionId(v string) *ListConflictingAliasesInput {
18805	s.DistributionId = &v
18806	return s
18807}
18808
18809// SetMarker sets the Marker field's value.
18810func (s *ListConflictingAliasesInput) SetMarker(v string) *ListConflictingAliasesInput {
18811	s.Marker = &v
18812	return s
18813}
18814
18815// SetMaxItems sets the MaxItems field's value.
18816func (s *ListConflictingAliasesInput) SetMaxItems(v int64) *ListConflictingAliasesInput {
18817	s.MaxItems = &v
18818	return s
18819}
18820
18821type ListConflictingAliasesOutput struct {
18822	_ struct{} `type:"structure" payload:"ConflictingAliasesList"`
18823
18824	// A list of conflicting aliases.
18825	ConflictingAliasesList *ConflictingAliasesList `type:"structure"`
18826}
18827
18828// String returns the string representation
18829func (s ListConflictingAliasesOutput) String() string {
18830	return awsutil.Prettify(s)
18831}
18832
18833// GoString returns the string representation
18834func (s ListConflictingAliasesOutput) GoString() string {
18835	return s.String()
18836}
18837
18838// SetConflictingAliasesList sets the ConflictingAliasesList field's value.
18839func (s *ListConflictingAliasesOutput) SetConflictingAliasesList(v *ConflictingAliasesList) *ListConflictingAliasesOutput {
18840	s.ConflictingAliasesList = v
18841	return s
18842}
18843
18844type ListDistributionsByCachePolicyIdInput struct {
18845	_ struct{} `locationName:"ListDistributionsByCachePolicyIdRequest" type:"structure"`
18846
18847	// The ID of the cache policy whose associated distribution IDs you want to
18848	// list.
18849	//
18850	// CachePolicyId is a required field
18851	CachePolicyId *string `location:"uri" locationName:"CachePolicyId" type:"string" required:"true"`
18852
18853	// Use this field when paginating results to indicate where to begin in your
18854	// list of distribution IDs. The response includes distribution IDs in the list
18855	// that occur after the marker. To get the next page of the list, set this field’s
18856	// value to the value of NextMarker from the current page’s response.
18857	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
18858
18859	// The maximum number of distribution IDs that you want in the response.
18860	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
18861}
18862
18863// String returns the string representation
18864func (s ListDistributionsByCachePolicyIdInput) String() string {
18865	return awsutil.Prettify(s)
18866}
18867
18868// GoString returns the string representation
18869func (s ListDistributionsByCachePolicyIdInput) GoString() string {
18870	return s.String()
18871}
18872
18873// Validate inspects the fields of the type to determine if they are valid.
18874func (s *ListDistributionsByCachePolicyIdInput) Validate() error {
18875	invalidParams := request.ErrInvalidParams{Context: "ListDistributionsByCachePolicyIdInput"}
18876	if s.CachePolicyId == nil {
18877		invalidParams.Add(request.NewErrParamRequired("CachePolicyId"))
18878	}
18879	if s.CachePolicyId != nil && len(*s.CachePolicyId) < 1 {
18880		invalidParams.Add(request.NewErrParamMinLen("CachePolicyId", 1))
18881	}
18882
18883	if invalidParams.Len() > 0 {
18884		return invalidParams
18885	}
18886	return nil
18887}
18888
18889// SetCachePolicyId sets the CachePolicyId field's value.
18890func (s *ListDistributionsByCachePolicyIdInput) SetCachePolicyId(v string) *ListDistributionsByCachePolicyIdInput {
18891	s.CachePolicyId = &v
18892	return s
18893}
18894
18895// SetMarker sets the Marker field's value.
18896func (s *ListDistributionsByCachePolicyIdInput) SetMarker(v string) *ListDistributionsByCachePolicyIdInput {
18897	s.Marker = &v
18898	return s
18899}
18900
18901// SetMaxItems sets the MaxItems field's value.
18902func (s *ListDistributionsByCachePolicyIdInput) SetMaxItems(v int64) *ListDistributionsByCachePolicyIdInput {
18903	s.MaxItems = &v
18904	return s
18905}
18906
18907type ListDistributionsByCachePolicyIdOutput struct {
18908	_ struct{} `type:"structure" payload:"DistributionIdList"`
18909
18910	// A list of distribution IDs.
18911	DistributionIdList *DistributionIdList `type:"structure"`
18912}
18913
18914// String returns the string representation
18915func (s ListDistributionsByCachePolicyIdOutput) String() string {
18916	return awsutil.Prettify(s)
18917}
18918
18919// GoString returns the string representation
18920func (s ListDistributionsByCachePolicyIdOutput) GoString() string {
18921	return s.String()
18922}
18923
18924// SetDistributionIdList sets the DistributionIdList field's value.
18925func (s *ListDistributionsByCachePolicyIdOutput) SetDistributionIdList(v *DistributionIdList) *ListDistributionsByCachePolicyIdOutput {
18926	s.DistributionIdList = v
18927	return s
18928}
18929
18930type ListDistributionsByKeyGroupInput struct {
18931	_ struct{} `locationName:"ListDistributionsByKeyGroupRequest" type:"structure"`
18932
18933	// The ID of the key group whose associated distribution IDs you are listing.
18934	//
18935	// KeyGroupId is a required field
18936	KeyGroupId *string `location:"uri" locationName:"KeyGroupId" type:"string" required:"true"`
18937
18938	// Use this field when paginating results to indicate where to begin in your
18939	// list of distribution IDs. The response includes distribution IDs in the list
18940	// that occur after the marker. To get the next page of the list, set this field’s
18941	// value to the value of NextMarker from the current page’s response.
18942	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
18943
18944	// The maximum number of distribution IDs that you want in the response.
18945	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
18946}
18947
18948// String returns the string representation
18949func (s ListDistributionsByKeyGroupInput) String() string {
18950	return awsutil.Prettify(s)
18951}
18952
18953// GoString returns the string representation
18954func (s ListDistributionsByKeyGroupInput) GoString() string {
18955	return s.String()
18956}
18957
18958// Validate inspects the fields of the type to determine if they are valid.
18959func (s *ListDistributionsByKeyGroupInput) Validate() error {
18960	invalidParams := request.ErrInvalidParams{Context: "ListDistributionsByKeyGroupInput"}
18961	if s.KeyGroupId == nil {
18962		invalidParams.Add(request.NewErrParamRequired("KeyGroupId"))
18963	}
18964	if s.KeyGroupId != nil && len(*s.KeyGroupId) < 1 {
18965		invalidParams.Add(request.NewErrParamMinLen("KeyGroupId", 1))
18966	}
18967
18968	if invalidParams.Len() > 0 {
18969		return invalidParams
18970	}
18971	return nil
18972}
18973
18974// SetKeyGroupId sets the KeyGroupId field's value.
18975func (s *ListDistributionsByKeyGroupInput) SetKeyGroupId(v string) *ListDistributionsByKeyGroupInput {
18976	s.KeyGroupId = &v
18977	return s
18978}
18979
18980// SetMarker sets the Marker field's value.
18981func (s *ListDistributionsByKeyGroupInput) SetMarker(v string) *ListDistributionsByKeyGroupInput {
18982	s.Marker = &v
18983	return s
18984}
18985
18986// SetMaxItems sets the MaxItems field's value.
18987func (s *ListDistributionsByKeyGroupInput) SetMaxItems(v int64) *ListDistributionsByKeyGroupInput {
18988	s.MaxItems = &v
18989	return s
18990}
18991
18992type ListDistributionsByKeyGroupOutput struct {
18993	_ struct{} `type:"structure" payload:"DistributionIdList"`
18994
18995	// A list of distribution IDs.
18996	DistributionIdList *DistributionIdList `type:"structure"`
18997}
18998
18999// String returns the string representation
19000func (s ListDistributionsByKeyGroupOutput) String() string {
19001	return awsutil.Prettify(s)
19002}
19003
19004// GoString returns the string representation
19005func (s ListDistributionsByKeyGroupOutput) GoString() string {
19006	return s.String()
19007}
19008
19009// SetDistributionIdList sets the DistributionIdList field's value.
19010func (s *ListDistributionsByKeyGroupOutput) SetDistributionIdList(v *DistributionIdList) *ListDistributionsByKeyGroupOutput {
19011	s.DistributionIdList = v
19012	return s
19013}
19014
19015type ListDistributionsByOriginRequestPolicyIdInput struct {
19016	_ struct{} `locationName:"ListDistributionsByOriginRequestPolicyIdRequest" type:"structure"`
19017
19018	// Use this field when paginating results to indicate where to begin in your
19019	// list of distribution IDs. The response includes distribution IDs in the list
19020	// that occur after the marker. To get the next page of the list, set this field’s
19021	// value to the value of NextMarker from the current page’s response.
19022	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19023
19024	// The maximum number of distribution IDs that you want in the response.
19025	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19026
19027	// The ID of the origin request policy whose associated distribution IDs you
19028	// want to list.
19029	//
19030	// OriginRequestPolicyId is a required field
19031	OriginRequestPolicyId *string `location:"uri" locationName:"OriginRequestPolicyId" type:"string" required:"true"`
19032}
19033
19034// String returns the string representation
19035func (s ListDistributionsByOriginRequestPolicyIdInput) String() string {
19036	return awsutil.Prettify(s)
19037}
19038
19039// GoString returns the string representation
19040func (s ListDistributionsByOriginRequestPolicyIdInput) GoString() string {
19041	return s.String()
19042}
19043
19044// Validate inspects the fields of the type to determine if they are valid.
19045func (s *ListDistributionsByOriginRequestPolicyIdInput) Validate() error {
19046	invalidParams := request.ErrInvalidParams{Context: "ListDistributionsByOriginRequestPolicyIdInput"}
19047	if s.OriginRequestPolicyId == nil {
19048		invalidParams.Add(request.NewErrParamRequired("OriginRequestPolicyId"))
19049	}
19050	if s.OriginRequestPolicyId != nil && len(*s.OriginRequestPolicyId) < 1 {
19051		invalidParams.Add(request.NewErrParamMinLen("OriginRequestPolicyId", 1))
19052	}
19053
19054	if invalidParams.Len() > 0 {
19055		return invalidParams
19056	}
19057	return nil
19058}
19059
19060// SetMarker sets the Marker field's value.
19061func (s *ListDistributionsByOriginRequestPolicyIdInput) SetMarker(v string) *ListDistributionsByOriginRequestPolicyIdInput {
19062	s.Marker = &v
19063	return s
19064}
19065
19066// SetMaxItems sets the MaxItems field's value.
19067func (s *ListDistributionsByOriginRequestPolicyIdInput) SetMaxItems(v int64) *ListDistributionsByOriginRequestPolicyIdInput {
19068	s.MaxItems = &v
19069	return s
19070}
19071
19072// SetOriginRequestPolicyId sets the OriginRequestPolicyId field's value.
19073func (s *ListDistributionsByOriginRequestPolicyIdInput) SetOriginRequestPolicyId(v string) *ListDistributionsByOriginRequestPolicyIdInput {
19074	s.OriginRequestPolicyId = &v
19075	return s
19076}
19077
19078type ListDistributionsByOriginRequestPolicyIdOutput struct {
19079	_ struct{} `type:"structure" payload:"DistributionIdList"`
19080
19081	// A list of distribution IDs.
19082	DistributionIdList *DistributionIdList `type:"structure"`
19083}
19084
19085// String returns the string representation
19086func (s ListDistributionsByOriginRequestPolicyIdOutput) String() string {
19087	return awsutil.Prettify(s)
19088}
19089
19090// GoString returns the string representation
19091func (s ListDistributionsByOriginRequestPolicyIdOutput) GoString() string {
19092	return s.String()
19093}
19094
19095// SetDistributionIdList sets the DistributionIdList field's value.
19096func (s *ListDistributionsByOriginRequestPolicyIdOutput) SetDistributionIdList(v *DistributionIdList) *ListDistributionsByOriginRequestPolicyIdOutput {
19097	s.DistributionIdList = v
19098	return s
19099}
19100
19101type ListDistributionsByRealtimeLogConfigInput struct {
19102	_ struct{} `locationName:"ListDistributionsByRealtimeLogConfigRequest" type:"structure" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
19103
19104	// Use this field when paginating results to indicate where to begin in your
19105	// list of distributions. The response includes distributions in the list that
19106	// occur after the marker. To get the next page of the list, set this field’s
19107	// value to the value of NextMarker from the current page’s response.
19108	Marker *string `type:"string"`
19109
19110	// The maximum number of distributions that you want in the response.
19111	MaxItems *int64 `type:"integer"`
19112
19113	// The Amazon Resource Name (ARN) of the real-time log configuration whose associated
19114	// distributions you want to list.
19115	RealtimeLogConfigArn *string `type:"string"`
19116
19117	// The name of the real-time log configuration whose associated distributions
19118	// you want to list.
19119	RealtimeLogConfigName *string `type:"string"`
19120}
19121
19122// String returns the string representation
19123func (s ListDistributionsByRealtimeLogConfigInput) String() string {
19124	return awsutil.Prettify(s)
19125}
19126
19127// GoString returns the string representation
19128func (s ListDistributionsByRealtimeLogConfigInput) GoString() string {
19129	return s.String()
19130}
19131
19132// SetMarker sets the Marker field's value.
19133func (s *ListDistributionsByRealtimeLogConfigInput) SetMarker(v string) *ListDistributionsByRealtimeLogConfigInput {
19134	s.Marker = &v
19135	return s
19136}
19137
19138// SetMaxItems sets the MaxItems field's value.
19139func (s *ListDistributionsByRealtimeLogConfigInput) SetMaxItems(v int64) *ListDistributionsByRealtimeLogConfigInput {
19140	s.MaxItems = &v
19141	return s
19142}
19143
19144// SetRealtimeLogConfigArn sets the RealtimeLogConfigArn field's value.
19145func (s *ListDistributionsByRealtimeLogConfigInput) SetRealtimeLogConfigArn(v string) *ListDistributionsByRealtimeLogConfigInput {
19146	s.RealtimeLogConfigArn = &v
19147	return s
19148}
19149
19150// SetRealtimeLogConfigName sets the RealtimeLogConfigName field's value.
19151func (s *ListDistributionsByRealtimeLogConfigInput) SetRealtimeLogConfigName(v string) *ListDistributionsByRealtimeLogConfigInput {
19152	s.RealtimeLogConfigName = &v
19153	return s
19154}
19155
19156type ListDistributionsByRealtimeLogConfigOutput struct {
19157	_ struct{} `type:"structure" payload:"DistributionList"`
19158
19159	// A distribution list.
19160	DistributionList *DistributionList `type:"structure"`
19161}
19162
19163// String returns the string representation
19164func (s ListDistributionsByRealtimeLogConfigOutput) String() string {
19165	return awsutil.Prettify(s)
19166}
19167
19168// GoString returns the string representation
19169func (s ListDistributionsByRealtimeLogConfigOutput) GoString() string {
19170	return s.String()
19171}
19172
19173// SetDistributionList sets the DistributionList field's value.
19174func (s *ListDistributionsByRealtimeLogConfigOutput) SetDistributionList(v *DistributionList) *ListDistributionsByRealtimeLogConfigOutput {
19175	s.DistributionList = v
19176	return s
19177}
19178
19179// The request to list distributions that are associated with a specified WAF
19180// web ACL.
19181type ListDistributionsByWebACLIdInput struct {
19182	_ struct{} `locationName:"ListDistributionsByWebACLIdRequest" type:"structure"`
19183
19184	// Use Marker and MaxItems to control pagination of results. If you have more
19185	// than MaxItems distributions that satisfy the request, the response includes
19186	// a NextMarker element. To get the next page of results, submit another request.
19187	// For the value of Marker, specify the value of NextMarker from the last response.
19188	// (For the first request, omit Marker.)
19189	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19190
19191	// The maximum number of distributions that you want CloudFront to return in
19192	// the response body. The maximum and default values are both 100.
19193	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19194
19195	// The ID of the WAF web ACL that you want to list the associated distributions.
19196	// If you specify "null" for the ID, the request returns a list of the distributions
19197	// that aren't associated with a web ACL.
19198	//
19199	// WebACLId is a required field
19200	WebACLId *string `location:"uri" locationName:"WebACLId" type:"string" required:"true"`
19201}
19202
19203// String returns the string representation
19204func (s ListDistributionsByWebACLIdInput) String() string {
19205	return awsutil.Prettify(s)
19206}
19207
19208// GoString returns the string representation
19209func (s ListDistributionsByWebACLIdInput) GoString() string {
19210	return s.String()
19211}
19212
19213// Validate inspects the fields of the type to determine if they are valid.
19214func (s *ListDistributionsByWebACLIdInput) Validate() error {
19215	invalidParams := request.ErrInvalidParams{Context: "ListDistributionsByWebACLIdInput"}
19216	if s.WebACLId == nil {
19217		invalidParams.Add(request.NewErrParamRequired("WebACLId"))
19218	}
19219	if s.WebACLId != nil && len(*s.WebACLId) < 1 {
19220		invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1))
19221	}
19222
19223	if invalidParams.Len() > 0 {
19224		return invalidParams
19225	}
19226	return nil
19227}
19228
19229// SetMarker sets the Marker field's value.
19230func (s *ListDistributionsByWebACLIdInput) SetMarker(v string) *ListDistributionsByWebACLIdInput {
19231	s.Marker = &v
19232	return s
19233}
19234
19235// SetMaxItems sets the MaxItems field's value.
19236func (s *ListDistributionsByWebACLIdInput) SetMaxItems(v int64) *ListDistributionsByWebACLIdInput {
19237	s.MaxItems = &v
19238	return s
19239}
19240
19241// SetWebACLId sets the WebACLId field's value.
19242func (s *ListDistributionsByWebACLIdInput) SetWebACLId(v string) *ListDistributionsByWebACLIdInput {
19243	s.WebACLId = &v
19244	return s
19245}
19246
19247// The response to a request to list the distributions that are associated with
19248// a specified WAF web ACL.
19249type ListDistributionsByWebACLIdOutput struct {
19250	_ struct{} `type:"structure" payload:"DistributionList"`
19251
19252	// The DistributionList type.
19253	DistributionList *DistributionList `type:"structure"`
19254}
19255
19256// String returns the string representation
19257func (s ListDistributionsByWebACLIdOutput) String() string {
19258	return awsutil.Prettify(s)
19259}
19260
19261// GoString returns the string representation
19262func (s ListDistributionsByWebACLIdOutput) GoString() string {
19263	return s.String()
19264}
19265
19266// SetDistributionList sets the DistributionList field's value.
19267func (s *ListDistributionsByWebACLIdOutput) SetDistributionList(v *DistributionList) *ListDistributionsByWebACLIdOutput {
19268	s.DistributionList = v
19269	return s
19270}
19271
19272// The request to list your distributions.
19273type ListDistributionsInput struct {
19274	_ struct{} `locationName:"ListDistributionsRequest" type:"structure"`
19275
19276	// Use this when paginating results to indicate where to begin in your list
19277	// of distributions. The results include distributions in the list that occur
19278	// after the marker. To get the next page of results, set the Marker to the
19279	// value of the NextMarker from the current page's response (which is also the
19280	// ID of the last distribution on that page).
19281	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19282
19283	// The maximum number of distributions you want in the response body.
19284	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19285}
19286
19287// String returns the string representation
19288func (s ListDistributionsInput) String() string {
19289	return awsutil.Prettify(s)
19290}
19291
19292// GoString returns the string representation
19293func (s ListDistributionsInput) GoString() string {
19294	return s.String()
19295}
19296
19297// SetMarker sets the Marker field's value.
19298func (s *ListDistributionsInput) SetMarker(v string) *ListDistributionsInput {
19299	s.Marker = &v
19300	return s
19301}
19302
19303// SetMaxItems sets the MaxItems field's value.
19304func (s *ListDistributionsInput) SetMaxItems(v int64) *ListDistributionsInput {
19305	s.MaxItems = &v
19306	return s
19307}
19308
19309// The returned result of the corresponding request.
19310type ListDistributionsOutput struct {
19311	_ struct{} `type:"structure" payload:"DistributionList"`
19312
19313	// The DistributionList type.
19314	DistributionList *DistributionList `type:"structure"`
19315}
19316
19317// String returns the string representation
19318func (s ListDistributionsOutput) String() string {
19319	return awsutil.Prettify(s)
19320}
19321
19322// GoString returns the string representation
19323func (s ListDistributionsOutput) GoString() string {
19324	return s.String()
19325}
19326
19327// SetDistributionList sets the DistributionList field's value.
19328func (s *ListDistributionsOutput) SetDistributionList(v *DistributionList) *ListDistributionsOutput {
19329	s.DistributionList = v
19330	return s
19331}
19332
19333type ListFieldLevelEncryptionConfigsInput struct {
19334	_ struct{} `locationName:"ListFieldLevelEncryptionConfigsRequest" type:"structure"`
19335
19336	// Use this when paginating results to indicate where to begin in your list
19337	// of configurations. The results include configurations in the list that occur
19338	// after the marker. To get the next page of results, set the Marker to the
19339	// value of the NextMarker from the current page's response (which is also the
19340	// ID of the last configuration on that page).
19341	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19342
19343	// The maximum number of field-level encryption configurations you want in the
19344	// response body.
19345	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19346}
19347
19348// String returns the string representation
19349func (s ListFieldLevelEncryptionConfigsInput) String() string {
19350	return awsutil.Prettify(s)
19351}
19352
19353// GoString returns the string representation
19354func (s ListFieldLevelEncryptionConfigsInput) GoString() string {
19355	return s.String()
19356}
19357
19358// SetMarker sets the Marker field's value.
19359func (s *ListFieldLevelEncryptionConfigsInput) SetMarker(v string) *ListFieldLevelEncryptionConfigsInput {
19360	s.Marker = &v
19361	return s
19362}
19363
19364// SetMaxItems sets the MaxItems field's value.
19365func (s *ListFieldLevelEncryptionConfigsInput) SetMaxItems(v int64) *ListFieldLevelEncryptionConfigsInput {
19366	s.MaxItems = &v
19367	return s
19368}
19369
19370type ListFieldLevelEncryptionConfigsOutput struct {
19371	_ struct{} `type:"structure" payload:"FieldLevelEncryptionList"`
19372
19373	// Returns a list of all field-level encryption configurations that have been
19374	// created in CloudFront for this account.
19375	FieldLevelEncryptionList *FieldLevelEncryptionList `type:"structure"`
19376}
19377
19378// String returns the string representation
19379func (s ListFieldLevelEncryptionConfigsOutput) String() string {
19380	return awsutil.Prettify(s)
19381}
19382
19383// GoString returns the string representation
19384func (s ListFieldLevelEncryptionConfigsOutput) GoString() string {
19385	return s.String()
19386}
19387
19388// SetFieldLevelEncryptionList sets the FieldLevelEncryptionList field's value.
19389func (s *ListFieldLevelEncryptionConfigsOutput) SetFieldLevelEncryptionList(v *FieldLevelEncryptionList) *ListFieldLevelEncryptionConfigsOutput {
19390	s.FieldLevelEncryptionList = v
19391	return s
19392}
19393
19394type ListFieldLevelEncryptionProfilesInput struct {
19395	_ struct{} `locationName:"ListFieldLevelEncryptionProfilesRequest" type:"structure"`
19396
19397	// Use this when paginating results to indicate where to begin in your list
19398	// of profiles. The results include profiles in the list that occur after the
19399	// marker. To get the next page of results, set the Marker to the value of the
19400	// NextMarker from the current page's response (which is also the ID of the
19401	// last profile on that page).
19402	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19403
19404	// The maximum number of field-level encryption profiles you want in the response
19405	// body.
19406	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19407}
19408
19409// String returns the string representation
19410func (s ListFieldLevelEncryptionProfilesInput) String() string {
19411	return awsutil.Prettify(s)
19412}
19413
19414// GoString returns the string representation
19415func (s ListFieldLevelEncryptionProfilesInput) GoString() string {
19416	return s.String()
19417}
19418
19419// SetMarker sets the Marker field's value.
19420func (s *ListFieldLevelEncryptionProfilesInput) SetMarker(v string) *ListFieldLevelEncryptionProfilesInput {
19421	s.Marker = &v
19422	return s
19423}
19424
19425// SetMaxItems sets the MaxItems field's value.
19426func (s *ListFieldLevelEncryptionProfilesInput) SetMaxItems(v int64) *ListFieldLevelEncryptionProfilesInput {
19427	s.MaxItems = &v
19428	return s
19429}
19430
19431type ListFieldLevelEncryptionProfilesOutput struct {
19432	_ struct{} `type:"structure" payload:"FieldLevelEncryptionProfileList"`
19433
19434	// Returns a list of the field-level encryption profiles that have been created
19435	// in CloudFront for this account.
19436	FieldLevelEncryptionProfileList *FieldLevelEncryptionProfileList `type:"structure"`
19437}
19438
19439// String returns the string representation
19440func (s ListFieldLevelEncryptionProfilesOutput) String() string {
19441	return awsutil.Prettify(s)
19442}
19443
19444// GoString returns the string representation
19445func (s ListFieldLevelEncryptionProfilesOutput) GoString() string {
19446	return s.String()
19447}
19448
19449// SetFieldLevelEncryptionProfileList sets the FieldLevelEncryptionProfileList field's value.
19450func (s *ListFieldLevelEncryptionProfilesOutput) SetFieldLevelEncryptionProfileList(v *FieldLevelEncryptionProfileList) *ListFieldLevelEncryptionProfilesOutput {
19451	s.FieldLevelEncryptionProfileList = v
19452	return s
19453}
19454
19455type ListFunctionsInput struct {
19456	_ struct{} `locationName:"ListFunctionsRequest" type:"structure"`
19457
19458	// Use this field when paginating results to indicate where to begin in your
19459	// list of functions. The response includes functions in the list that occur
19460	// after the marker. To get the next page of the list, set this field’s value
19461	// to the value of NextMarker from the current page’s response.
19462	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19463
19464	// The maximum number of functions that you want in the response.
19465	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19466
19467	// An optional filter to return only the functions that are in the specified
19468	// stage, either DEVELOPMENT or LIVE.
19469	Stage *string `location:"querystring" locationName:"Stage" type:"string" enum:"FunctionStage"`
19470}
19471
19472// String returns the string representation
19473func (s ListFunctionsInput) String() string {
19474	return awsutil.Prettify(s)
19475}
19476
19477// GoString returns the string representation
19478func (s ListFunctionsInput) GoString() string {
19479	return s.String()
19480}
19481
19482// SetMarker sets the Marker field's value.
19483func (s *ListFunctionsInput) SetMarker(v string) *ListFunctionsInput {
19484	s.Marker = &v
19485	return s
19486}
19487
19488// SetMaxItems sets the MaxItems field's value.
19489func (s *ListFunctionsInput) SetMaxItems(v int64) *ListFunctionsInput {
19490	s.MaxItems = &v
19491	return s
19492}
19493
19494// SetStage sets the Stage field's value.
19495func (s *ListFunctionsInput) SetStage(v string) *ListFunctionsInput {
19496	s.Stage = &v
19497	return s
19498}
19499
19500type ListFunctionsOutput struct {
19501	_ struct{} `type:"structure" payload:"FunctionList"`
19502
19503	// A list of CloudFront functions.
19504	FunctionList *FunctionList `type:"structure"`
19505}
19506
19507// String returns the string representation
19508func (s ListFunctionsOutput) String() string {
19509	return awsutil.Prettify(s)
19510}
19511
19512// GoString returns the string representation
19513func (s ListFunctionsOutput) GoString() string {
19514	return s.String()
19515}
19516
19517// SetFunctionList sets the FunctionList field's value.
19518func (s *ListFunctionsOutput) SetFunctionList(v *FunctionList) *ListFunctionsOutput {
19519	s.FunctionList = v
19520	return s
19521}
19522
19523// The request to list invalidations.
19524type ListInvalidationsInput struct {
19525	_ struct{} `locationName:"ListInvalidationsRequest" type:"structure"`
19526
19527	// The distribution's ID.
19528	//
19529	// DistributionId is a required field
19530	DistributionId *string `location:"uri" locationName:"DistributionId" type:"string" required:"true"`
19531
19532	// Use this parameter when paginating results to indicate where to begin in
19533	// your list of invalidation batches. Because the results are returned in decreasing
19534	// order from most recent to oldest, the most recent results are on the first
19535	// page, the second page will contain earlier results, and so on. To get the
19536	// next page of results, set Marker to the value of the NextMarker from the
19537	// current page's response. This value is the same as the ID of the last invalidation
19538	// batch on that page.
19539	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19540
19541	// The maximum number of invalidation batches that you want in the response
19542	// body.
19543	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19544}
19545
19546// String returns the string representation
19547func (s ListInvalidationsInput) String() string {
19548	return awsutil.Prettify(s)
19549}
19550
19551// GoString returns the string representation
19552func (s ListInvalidationsInput) GoString() string {
19553	return s.String()
19554}
19555
19556// Validate inspects the fields of the type to determine if they are valid.
19557func (s *ListInvalidationsInput) Validate() error {
19558	invalidParams := request.ErrInvalidParams{Context: "ListInvalidationsInput"}
19559	if s.DistributionId == nil {
19560		invalidParams.Add(request.NewErrParamRequired("DistributionId"))
19561	}
19562	if s.DistributionId != nil && len(*s.DistributionId) < 1 {
19563		invalidParams.Add(request.NewErrParamMinLen("DistributionId", 1))
19564	}
19565
19566	if invalidParams.Len() > 0 {
19567		return invalidParams
19568	}
19569	return nil
19570}
19571
19572// SetDistributionId sets the DistributionId field's value.
19573func (s *ListInvalidationsInput) SetDistributionId(v string) *ListInvalidationsInput {
19574	s.DistributionId = &v
19575	return s
19576}
19577
19578// SetMarker sets the Marker field's value.
19579func (s *ListInvalidationsInput) SetMarker(v string) *ListInvalidationsInput {
19580	s.Marker = &v
19581	return s
19582}
19583
19584// SetMaxItems sets the MaxItems field's value.
19585func (s *ListInvalidationsInput) SetMaxItems(v int64) *ListInvalidationsInput {
19586	s.MaxItems = &v
19587	return s
19588}
19589
19590// The returned result of the corresponding request.
19591type ListInvalidationsOutput struct {
19592	_ struct{} `type:"structure" payload:"InvalidationList"`
19593
19594	// Information about invalidation batches.
19595	InvalidationList *InvalidationList `type:"structure"`
19596}
19597
19598// String returns the string representation
19599func (s ListInvalidationsOutput) String() string {
19600	return awsutil.Prettify(s)
19601}
19602
19603// GoString returns the string representation
19604func (s ListInvalidationsOutput) GoString() string {
19605	return s.String()
19606}
19607
19608// SetInvalidationList sets the InvalidationList field's value.
19609func (s *ListInvalidationsOutput) SetInvalidationList(v *InvalidationList) *ListInvalidationsOutput {
19610	s.InvalidationList = v
19611	return s
19612}
19613
19614type ListKeyGroupsInput struct {
19615	_ struct{} `locationName:"ListKeyGroupsRequest" type:"structure"`
19616
19617	// Use this field when paginating results to indicate where to begin in your
19618	// list of key groups. The response includes key groups in the list that occur
19619	// after the marker. To get the next page of the list, set this field’s value
19620	// to the value of NextMarker from the current page’s response.
19621	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19622
19623	// The maximum number of key groups that you want in the response.
19624	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19625}
19626
19627// String returns the string representation
19628func (s ListKeyGroupsInput) String() string {
19629	return awsutil.Prettify(s)
19630}
19631
19632// GoString returns the string representation
19633func (s ListKeyGroupsInput) GoString() string {
19634	return s.String()
19635}
19636
19637// SetMarker sets the Marker field's value.
19638func (s *ListKeyGroupsInput) SetMarker(v string) *ListKeyGroupsInput {
19639	s.Marker = &v
19640	return s
19641}
19642
19643// SetMaxItems sets the MaxItems field's value.
19644func (s *ListKeyGroupsInput) SetMaxItems(v int64) *ListKeyGroupsInput {
19645	s.MaxItems = &v
19646	return s
19647}
19648
19649type ListKeyGroupsOutput struct {
19650	_ struct{} `type:"structure" payload:"KeyGroupList"`
19651
19652	// A list of key groups.
19653	KeyGroupList *KeyGroupList `type:"structure"`
19654}
19655
19656// String returns the string representation
19657func (s ListKeyGroupsOutput) String() string {
19658	return awsutil.Prettify(s)
19659}
19660
19661// GoString returns the string representation
19662func (s ListKeyGroupsOutput) GoString() string {
19663	return s.String()
19664}
19665
19666// SetKeyGroupList sets the KeyGroupList field's value.
19667func (s *ListKeyGroupsOutput) SetKeyGroupList(v *KeyGroupList) *ListKeyGroupsOutput {
19668	s.KeyGroupList = v
19669	return s
19670}
19671
19672type ListOriginRequestPoliciesInput struct {
19673	_ struct{} `locationName:"ListOriginRequestPoliciesRequest" type:"structure"`
19674
19675	// Use this field when paginating results to indicate where to begin in your
19676	// list of origin request policies. The response includes origin request policies
19677	// in the list that occur after the marker. To get the next page of the list,
19678	// set this field’s value to the value of NextMarker from the current page’s
19679	// response.
19680	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19681
19682	// The maximum number of origin request policies that you want in the response.
19683	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19684
19685	// A filter to return only the specified kinds of origin request policies. Valid
19686	// values are:
19687	//
19688	//    * managed – Returns only the managed policies created by Amazon Web
19689	//    Services.
19690	//
19691	//    * custom – Returns only the custom policies created in your account.
19692	Type *string `location:"querystring" locationName:"Type" type:"string" enum:"OriginRequestPolicyType"`
19693}
19694
19695// String returns the string representation
19696func (s ListOriginRequestPoliciesInput) String() string {
19697	return awsutil.Prettify(s)
19698}
19699
19700// GoString returns the string representation
19701func (s ListOriginRequestPoliciesInput) GoString() string {
19702	return s.String()
19703}
19704
19705// SetMarker sets the Marker field's value.
19706func (s *ListOriginRequestPoliciesInput) SetMarker(v string) *ListOriginRequestPoliciesInput {
19707	s.Marker = &v
19708	return s
19709}
19710
19711// SetMaxItems sets the MaxItems field's value.
19712func (s *ListOriginRequestPoliciesInput) SetMaxItems(v int64) *ListOriginRequestPoliciesInput {
19713	s.MaxItems = &v
19714	return s
19715}
19716
19717// SetType sets the Type field's value.
19718func (s *ListOriginRequestPoliciesInput) SetType(v string) *ListOriginRequestPoliciesInput {
19719	s.Type = &v
19720	return s
19721}
19722
19723type ListOriginRequestPoliciesOutput struct {
19724	_ struct{} `type:"structure" payload:"OriginRequestPolicyList"`
19725
19726	// A list of origin request policies.
19727	OriginRequestPolicyList *OriginRequestPolicyList `type:"structure"`
19728}
19729
19730// String returns the string representation
19731func (s ListOriginRequestPoliciesOutput) String() string {
19732	return awsutil.Prettify(s)
19733}
19734
19735// GoString returns the string representation
19736func (s ListOriginRequestPoliciesOutput) GoString() string {
19737	return s.String()
19738}
19739
19740// SetOriginRequestPolicyList sets the OriginRequestPolicyList field's value.
19741func (s *ListOriginRequestPoliciesOutput) SetOriginRequestPolicyList(v *OriginRequestPolicyList) *ListOriginRequestPoliciesOutput {
19742	s.OriginRequestPolicyList = v
19743	return s
19744}
19745
19746type ListPublicKeysInput struct {
19747	_ struct{} `locationName:"ListPublicKeysRequest" type:"structure"`
19748
19749	// Use this when paginating results to indicate where to begin in your list
19750	// of public keys. The results include public keys in the list that occur after
19751	// the marker. To get the next page of results, set the Marker to the value
19752	// of the NextMarker from the current page's response (which is also the ID
19753	// of the last public key on that page).
19754	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19755
19756	// The maximum number of public keys you want in the response body.
19757	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19758}
19759
19760// String returns the string representation
19761func (s ListPublicKeysInput) String() string {
19762	return awsutil.Prettify(s)
19763}
19764
19765// GoString returns the string representation
19766func (s ListPublicKeysInput) GoString() string {
19767	return s.String()
19768}
19769
19770// SetMarker sets the Marker field's value.
19771func (s *ListPublicKeysInput) SetMarker(v string) *ListPublicKeysInput {
19772	s.Marker = &v
19773	return s
19774}
19775
19776// SetMaxItems sets the MaxItems field's value.
19777func (s *ListPublicKeysInput) SetMaxItems(v int64) *ListPublicKeysInput {
19778	s.MaxItems = &v
19779	return s
19780}
19781
19782type ListPublicKeysOutput struct {
19783	_ struct{} `type:"structure" payload:"PublicKeyList"`
19784
19785	// Returns a list of all public keys that have been added to CloudFront for
19786	// this account.
19787	PublicKeyList *PublicKeyList `type:"structure"`
19788}
19789
19790// String returns the string representation
19791func (s ListPublicKeysOutput) String() string {
19792	return awsutil.Prettify(s)
19793}
19794
19795// GoString returns the string representation
19796func (s ListPublicKeysOutput) GoString() string {
19797	return s.String()
19798}
19799
19800// SetPublicKeyList sets the PublicKeyList field's value.
19801func (s *ListPublicKeysOutput) SetPublicKeyList(v *PublicKeyList) *ListPublicKeysOutput {
19802	s.PublicKeyList = v
19803	return s
19804}
19805
19806type ListRealtimeLogConfigsInput struct {
19807	_ struct{} `locationName:"ListRealtimeLogConfigsRequest" type:"structure"`
19808
19809	// Use this field when paginating results to indicate where to begin in your
19810	// list of real-time log configurations. The response includes real-time log
19811	// configurations in the list that occur after the marker. To get the next page
19812	// of the list, set this field’s value to the value of NextMarker from the
19813	// current page’s response.
19814	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19815
19816	// The maximum number of real-time log configurations that you want in the response.
19817	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19818}
19819
19820// String returns the string representation
19821func (s ListRealtimeLogConfigsInput) String() string {
19822	return awsutil.Prettify(s)
19823}
19824
19825// GoString returns the string representation
19826func (s ListRealtimeLogConfigsInput) GoString() string {
19827	return s.String()
19828}
19829
19830// SetMarker sets the Marker field's value.
19831func (s *ListRealtimeLogConfigsInput) SetMarker(v string) *ListRealtimeLogConfigsInput {
19832	s.Marker = &v
19833	return s
19834}
19835
19836// SetMaxItems sets the MaxItems field's value.
19837func (s *ListRealtimeLogConfigsInput) SetMaxItems(v int64) *ListRealtimeLogConfigsInput {
19838	s.MaxItems = &v
19839	return s
19840}
19841
19842type ListRealtimeLogConfigsOutput struct {
19843	_ struct{} `type:"structure" payload:"RealtimeLogConfigs"`
19844
19845	// A list of real-time log configurations.
19846	RealtimeLogConfigs *RealtimeLogConfigs `type:"structure"`
19847}
19848
19849// String returns the string representation
19850func (s ListRealtimeLogConfigsOutput) String() string {
19851	return awsutil.Prettify(s)
19852}
19853
19854// GoString returns the string representation
19855func (s ListRealtimeLogConfigsOutput) GoString() string {
19856	return s.String()
19857}
19858
19859// SetRealtimeLogConfigs sets the RealtimeLogConfigs field's value.
19860func (s *ListRealtimeLogConfigsOutput) SetRealtimeLogConfigs(v *RealtimeLogConfigs) *ListRealtimeLogConfigsOutput {
19861	s.RealtimeLogConfigs = v
19862	return s
19863}
19864
19865// The request to list your streaming distributions.
19866type ListStreamingDistributionsInput struct {
19867	_ struct{} `locationName:"ListStreamingDistributionsRequest" type:"structure"`
19868
19869	// The value that you provided for the Marker request parameter.
19870	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
19871
19872	// The value that you provided for the MaxItems request parameter.
19873	MaxItems *int64 `location:"querystring" locationName:"MaxItems" type:"integer"`
19874}
19875
19876// String returns the string representation
19877func (s ListStreamingDistributionsInput) String() string {
19878	return awsutil.Prettify(s)
19879}
19880
19881// GoString returns the string representation
19882func (s ListStreamingDistributionsInput) GoString() string {
19883	return s.String()
19884}
19885
19886// SetMarker sets the Marker field's value.
19887func (s *ListStreamingDistributionsInput) SetMarker(v string) *ListStreamingDistributionsInput {
19888	s.Marker = &v
19889	return s
19890}
19891
19892// SetMaxItems sets the MaxItems field's value.
19893func (s *ListStreamingDistributionsInput) SetMaxItems(v int64) *ListStreamingDistributionsInput {
19894	s.MaxItems = &v
19895	return s
19896}
19897
19898// The returned result of the corresponding request.
19899type ListStreamingDistributionsOutput struct {
19900	_ struct{} `type:"structure" payload:"StreamingDistributionList"`
19901
19902	// The StreamingDistributionList type.
19903	StreamingDistributionList *StreamingDistributionList `type:"structure"`
19904}
19905
19906// String returns the string representation
19907func (s ListStreamingDistributionsOutput) String() string {
19908	return awsutil.Prettify(s)
19909}
19910
19911// GoString returns the string representation
19912func (s ListStreamingDistributionsOutput) GoString() string {
19913	return s.String()
19914}
19915
19916// SetStreamingDistributionList sets the StreamingDistributionList field's value.
19917func (s *ListStreamingDistributionsOutput) SetStreamingDistributionList(v *StreamingDistributionList) *ListStreamingDistributionsOutput {
19918	s.StreamingDistributionList = v
19919	return s
19920}
19921
19922// The request to list tags for a CloudFront resource.
19923type ListTagsForResourceInput struct {
19924	_ struct{} `locationName:"ListTagsForResourceRequest" type:"structure"`
19925
19926	// An ARN of a CloudFront resource.
19927	//
19928	// Resource is a required field
19929	Resource *string `location:"querystring" locationName:"Resource" type:"string" required:"true"`
19930}
19931
19932// String returns the string representation
19933func (s ListTagsForResourceInput) String() string {
19934	return awsutil.Prettify(s)
19935}
19936
19937// GoString returns the string representation
19938func (s ListTagsForResourceInput) GoString() string {
19939	return s.String()
19940}
19941
19942// Validate inspects the fields of the type to determine if they are valid.
19943func (s *ListTagsForResourceInput) Validate() error {
19944	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
19945	if s.Resource == nil {
19946		invalidParams.Add(request.NewErrParamRequired("Resource"))
19947	}
19948
19949	if invalidParams.Len() > 0 {
19950		return invalidParams
19951	}
19952	return nil
19953}
19954
19955// SetResource sets the Resource field's value.
19956func (s *ListTagsForResourceInput) SetResource(v string) *ListTagsForResourceInput {
19957	s.Resource = &v
19958	return s
19959}
19960
19961// The returned result of the corresponding request.
19962type ListTagsForResourceOutput struct {
19963	_ struct{} `type:"structure" payload:"Tags"`
19964
19965	// A complex type that contains zero or more Tag elements.
19966	//
19967	// Tags is a required field
19968	Tags *Tags `type:"structure" required:"true"`
19969}
19970
19971// String returns the string representation
19972func (s ListTagsForResourceOutput) String() string {
19973	return awsutil.Prettify(s)
19974}
19975
19976// GoString returns the string representation
19977func (s ListTagsForResourceOutput) GoString() string {
19978	return s.String()
19979}
19980
19981// SetTags sets the Tags field's value.
19982func (s *ListTagsForResourceOutput) SetTags(v *Tags) *ListTagsForResourceOutput {
19983	s.Tags = v
19984	return s
19985}
19986
19987// A complex type that controls whether access logs are written for the distribution.
19988type LoggingConfig struct {
19989	_ struct{} `type:"structure"`
19990
19991	// The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.
19992	//
19993	// Bucket is a required field
19994	Bucket *string `type:"string" required:"true"`
19995
19996	// Specifies whether you want CloudFront to save access logs to an Amazon S3
19997	// bucket. If you don't want to enable logging when you create a distribution
19998	// or if you want to disable logging for an existing distribution, specify false
19999	// for Enabled, and specify empty Bucket and Prefix elements. If you specify
20000	// false for Enabled but you specify values for Bucket, prefix, and IncludeCookies,
20001	// the values are automatically deleted.
20002	//
20003	// Enabled is a required field
20004	Enabled *bool `type:"boolean" required:"true"`
20005
20006	// Specifies whether you want CloudFront to include cookies in access logs,
20007	// specify true for IncludeCookies. If you choose to include cookies in logs,
20008	// CloudFront logs all cookies regardless of how you configure the cache behaviors
20009	// for this distribution. If you don't want to include cookies when you create
20010	// a distribution or if you want to disable include cookies for an existing
20011	// distribution, specify false for IncludeCookies.
20012	//
20013	// IncludeCookies is a required field
20014	IncludeCookies *bool `type:"boolean" required:"true"`
20015
20016	// An optional string that you want CloudFront to prefix to the access log filenames
20017	// for this distribution, for example, myprefix/. If you want to enable logging,
20018	// but you don't want to specify a prefix, you still must include an empty Prefix
20019	// element in the Logging element.
20020	//
20021	// Prefix is a required field
20022	Prefix *string `type:"string" required:"true"`
20023}
20024
20025// String returns the string representation
20026func (s LoggingConfig) String() string {
20027	return awsutil.Prettify(s)
20028}
20029
20030// GoString returns the string representation
20031func (s LoggingConfig) GoString() string {
20032	return s.String()
20033}
20034
20035// Validate inspects the fields of the type to determine if they are valid.
20036func (s *LoggingConfig) Validate() error {
20037	invalidParams := request.ErrInvalidParams{Context: "LoggingConfig"}
20038	if s.Bucket == nil {
20039		invalidParams.Add(request.NewErrParamRequired("Bucket"))
20040	}
20041	if s.Enabled == nil {
20042		invalidParams.Add(request.NewErrParamRequired("Enabled"))
20043	}
20044	if s.IncludeCookies == nil {
20045		invalidParams.Add(request.NewErrParamRequired("IncludeCookies"))
20046	}
20047	if s.Prefix == nil {
20048		invalidParams.Add(request.NewErrParamRequired("Prefix"))
20049	}
20050
20051	if invalidParams.Len() > 0 {
20052		return invalidParams
20053	}
20054	return nil
20055}
20056
20057// SetBucket sets the Bucket field's value.
20058func (s *LoggingConfig) SetBucket(v string) *LoggingConfig {
20059	s.Bucket = &v
20060	return s
20061}
20062
20063// SetEnabled sets the Enabled field's value.
20064func (s *LoggingConfig) SetEnabled(v bool) *LoggingConfig {
20065	s.Enabled = &v
20066	return s
20067}
20068
20069// SetIncludeCookies sets the IncludeCookies field's value.
20070func (s *LoggingConfig) SetIncludeCookies(v bool) *LoggingConfig {
20071	s.IncludeCookies = &v
20072	return s
20073}
20074
20075// SetPrefix sets the Prefix field's value.
20076func (s *LoggingConfig) SetPrefix(v string) *LoggingConfig {
20077	s.Prefix = &v
20078	return s
20079}
20080
20081// A monitoring subscription. This structure contains information about whether
20082// additional CloudWatch metrics are enabled for a given CloudFront distribution.
20083type MonitoringSubscription struct {
20084	_ struct{} `type:"structure"`
20085
20086	// A subscription configuration for additional CloudWatch metrics.
20087	RealtimeMetricsSubscriptionConfig *RealtimeMetricsSubscriptionConfig `type:"structure"`
20088}
20089
20090// String returns the string representation
20091func (s MonitoringSubscription) String() string {
20092	return awsutil.Prettify(s)
20093}
20094
20095// GoString returns the string representation
20096func (s MonitoringSubscription) GoString() string {
20097	return s.String()
20098}
20099
20100// Validate inspects the fields of the type to determine if they are valid.
20101func (s *MonitoringSubscription) Validate() error {
20102	invalidParams := request.ErrInvalidParams{Context: "MonitoringSubscription"}
20103	if s.RealtimeMetricsSubscriptionConfig != nil {
20104		if err := s.RealtimeMetricsSubscriptionConfig.Validate(); err != nil {
20105			invalidParams.AddNested("RealtimeMetricsSubscriptionConfig", err.(request.ErrInvalidParams))
20106		}
20107	}
20108
20109	if invalidParams.Len() > 0 {
20110		return invalidParams
20111	}
20112	return nil
20113}
20114
20115// SetRealtimeMetricsSubscriptionConfig sets the RealtimeMetricsSubscriptionConfig field's value.
20116func (s *MonitoringSubscription) SetRealtimeMetricsSubscriptionConfig(v *RealtimeMetricsSubscriptionConfig) *MonitoringSubscription {
20117	s.RealtimeMetricsSubscriptionConfig = v
20118	return s
20119}
20120
20121// An origin.
20122//
20123// An origin is the location where content is stored, and from which CloudFront
20124// gets content to serve to viewers. To specify an origin:
20125//
20126//    * Use S3OriginConfig to specify an Amazon S3 bucket that is not configured
20127//    with static website hosting.
20128//
20129//    * Use CustomOriginConfig to specify all other kinds of origins, including:
20130//    An Amazon S3 bucket that is configured with static website hosting An
20131//    Elastic Load Balancing load balancer An AWS Elemental MediaPackage endpoint
20132//    An AWS Elemental MediaStore container Any other HTTP server, running on
20133//    an Amazon EC2 instance or any other kind of host
20134//
20135// For the current maximum number of origins that you can specify per distribution,
20136// see General Quotas on Web Distributions (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html#limits-web-distributions)
20137// in the Amazon CloudFront Developer Guide (quotas were formerly referred to
20138// as limits).
20139type Origin struct {
20140	_ struct{} `type:"structure"`
20141
20142	// The number of times that CloudFront attempts to connect to the origin. The
20143	// minimum number is 1, the maximum is 3, and the default (if you don’t specify
20144	// otherwise) is 3.
20145	//
20146	// For a custom origin (including an Amazon S3 bucket that’s configured with
20147	// static website hosting), this value also specifies the number of times that
20148	// CloudFront attempts to get a response from the origin, in the case of an
20149	// Origin Response Timeout (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout).
20150	//
20151	// For more information, see Origin Connection Attempts (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-attempts)
20152	// in the Amazon CloudFront Developer Guide.
20153	ConnectionAttempts *int64 `type:"integer"`
20154
20155	// The number of seconds that CloudFront waits when trying to establish a connection
20156	// to the origin. The minimum timeout is 1 second, the maximum is 10 seconds,
20157	// and the default (if you don’t specify otherwise) is 10 seconds.
20158	//
20159	// For more information, see Origin Connection Timeout (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-timeout)
20160	// in the Amazon CloudFront Developer Guide.
20161	ConnectionTimeout *int64 `type:"integer"`
20162
20163	// A list of HTTP header names and values that CloudFront adds to the requests
20164	// that it sends to the origin.
20165	//
20166	// For more information, see Adding Custom Headers to Origin Requests (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html)
20167	// in the Amazon CloudFront Developer Guide.
20168	CustomHeaders *CustomHeaders `type:"structure"`
20169
20170	// Use this type to specify an origin that is not an Amazon S3 bucket, with
20171	// one exception. If the Amazon S3 bucket is configured with static website
20172	// hosting, use this type. If the Amazon S3 bucket is not configured with static
20173	// website hosting, use the S3OriginConfig type instead.
20174	CustomOriginConfig *CustomOriginConfig `type:"structure"`
20175
20176	// The domain name for the origin.
20177	//
20178	// For more information, see Origin Domain Name (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesDomainName)
20179	// in the Amazon CloudFront Developer Guide.
20180	//
20181	// DomainName is a required field
20182	DomainName *string `type:"string" required:"true"`
20183
20184	// A unique identifier for the origin. This value must be unique within the
20185	// distribution.
20186	//
20187	// Use this value to specify the TargetOriginId in a CacheBehavior or DefaultCacheBehavior.
20188	//
20189	// Id is a required field
20190	Id *string `type:"string" required:"true"`
20191
20192	// An optional path that CloudFront appends to the origin domain name when CloudFront
20193	// requests content from the origin.
20194	//
20195	// For more information, see Origin Path (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginPath)
20196	// in the Amazon CloudFront Developer Guide.
20197	OriginPath *string `type:"string"`
20198
20199	// CloudFront Origin Shield. Using Origin Shield can help reduce the load on
20200	// your origin.
20201	//
20202	// For more information, see Using Origin Shield (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html)
20203	// in the Amazon CloudFront Developer Guide.
20204	OriginShield *OriginShield `type:"structure"`
20205
20206	// Use this type to specify an origin that is an Amazon S3 bucket that is not
20207	// configured with static website hosting. To specify any other type of origin,
20208	// including an Amazon S3 bucket that is configured with static website hosting,
20209	// use the CustomOriginConfig type instead.
20210	S3OriginConfig *S3OriginConfig `type:"structure"`
20211}
20212
20213// String returns the string representation
20214func (s Origin) String() string {
20215	return awsutil.Prettify(s)
20216}
20217
20218// GoString returns the string representation
20219func (s Origin) GoString() string {
20220	return s.String()
20221}
20222
20223// Validate inspects the fields of the type to determine if they are valid.
20224func (s *Origin) Validate() error {
20225	invalidParams := request.ErrInvalidParams{Context: "Origin"}
20226	if s.DomainName == nil {
20227		invalidParams.Add(request.NewErrParamRequired("DomainName"))
20228	}
20229	if s.Id == nil {
20230		invalidParams.Add(request.NewErrParamRequired("Id"))
20231	}
20232	if s.CustomHeaders != nil {
20233		if err := s.CustomHeaders.Validate(); err != nil {
20234			invalidParams.AddNested("CustomHeaders", err.(request.ErrInvalidParams))
20235		}
20236	}
20237	if s.CustomOriginConfig != nil {
20238		if err := s.CustomOriginConfig.Validate(); err != nil {
20239			invalidParams.AddNested("CustomOriginConfig", err.(request.ErrInvalidParams))
20240		}
20241	}
20242	if s.OriginShield != nil {
20243		if err := s.OriginShield.Validate(); err != nil {
20244			invalidParams.AddNested("OriginShield", err.(request.ErrInvalidParams))
20245		}
20246	}
20247	if s.S3OriginConfig != nil {
20248		if err := s.S3OriginConfig.Validate(); err != nil {
20249			invalidParams.AddNested("S3OriginConfig", err.(request.ErrInvalidParams))
20250		}
20251	}
20252
20253	if invalidParams.Len() > 0 {
20254		return invalidParams
20255	}
20256	return nil
20257}
20258
20259// SetConnectionAttempts sets the ConnectionAttempts field's value.
20260func (s *Origin) SetConnectionAttempts(v int64) *Origin {
20261	s.ConnectionAttempts = &v
20262	return s
20263}
20264
20265// SetConnectionTimeout sets the ConnectionTimeout field's value.
20266func (s *Origin) SetConnectionTimeout(v int64) *Origin {
20267	s.ConnectionTimeout = &v
20268	return s
20269}
20270
20271// SetCustomHeaders sets the CustomHeaders field's value.
20272func (s *Origin) SetCustomHeaders(v *CustomHeaders) *Origin {
20273	s.CustomHeaders = v
20274	return s
20275}
20276
20277// SetCustomOriginConfig sets the CustomOriginConfig field's value.
20278func (s *Origin) SetCustomOriginConfig(v *CustomOriginConfig) *Origin {
20279	s.CustomOriginConfig = v
20280	return s
20281}
20282
20283// SetDomainName sets the DomainName field's value.
20284func (s *Origin) SetDomainName(v string) *Origin {
20285	s.DomainName = &v
20286	return s
20287}
20288
20289// SetId sets the Id field's value.
20290func (s *Origin) SetId(v string) *Origin {
20291	s.Id = &v
20292	return s
20293}
20294
20295// SetOriginPath sets the OriginPath field's value.
20296func (s *Origin) SetOriginPath(v string) *Origin {
20297	s.OriginPath = &v
20298	return s
20299}
20300
20301// SetOriginShield sets the OriginShield field's value.
20302func (s *Origin) SetOriginShield(v *OriginShield) *Origin {
20303	s.OriginShield = v
20304	return s
20305}
20306
20307// SetS3OriginConfig sets the S3OriginConfig field's value.
20308func (s *Origin) SetS3OriginConfig(v *S3OriginConfig) *Origin {
20309	s.S3OriginConfig = v
20310	return s
20311}
20312
20313// CloudFront origin access identity.
20314type OriginAccessIdentity struct {
20315	_ struct{} `type:"structure"`
20316
20317	// The current configuration information for the identity.
20318	CloudFrontOriginAccessIdentityConfig *OriginAccessIdentityConfig `type:"structure"`
20319
20320	// The ID for the origin access identity, for example, E74FTE3AJFJ256A.
20321	//
20322	// Id is a required field
20323	Id *string `type:"string" required:"true"`
20324
20325	// The Amazon S3 canonical user ID for the origin access identity, used when
20326	// giving the origin access identity read permission to an object in Amazon
20327	// S3.
20328	//
20329	// S3CanonicalUserId is a required field
20330	S3CanonicalUserId *string `type:"string" required:"true"`
20331}
20332
20333// String returns the string representation
20334func (s OriginAccessIdentity) String() string {
20335	return awsutil.Prettify(s)
20336}
20337
20338// GoString returns the string representation
20339func (s OriginAccessIdentity) GoString() string {
20340	return s.String()
20341}
20342
20343// SetCloudFrontOriginAccessIdentityConfig sets the CloudFrontOriginAccessIdentityConfig field's value.
20344func (s *OriginAccessIdentity) SetCloudFrontOriginAccessIdentityConfig(v *OriginAccessIdentityConfig) *OriginAccessIdentity {
20345	s.CloudFrontOriginAccessIdentityConfig = v
20346	return s
20347}
20348
20349// SetId sets the Id field's value.
20350func (s *OriginAccessIdentity) SetId(v string) *OriginAccessIdentity {
20351	s.Id = &v
20352	return s
20353}
20354
20355// SetS3CanonicalUserId sets the S3CanonicalUserId field's value.
20356func (s *OriginAccessIdentity) SetS3CanonicalUserId(v string) *OriginAccessIdentity {
20357	s.S3CanonicalUserId = &v
20358	return s
20359}
20360
20361// Origin access identity configuration. Send a GET request to the /CloudFront
20362// API version/CloudFront/identity ID/config resource.
20363type OriginAccessIdentityConfig struct {
20364	_ struct{} `type:"structure"`
20365
20366	// A unique value (for example, a date-time stamp) that ensures that the request
20367	// can't be replayed.
20368	//
20369	// If the value of CallerReference is new (regardless of the content of the
20370	// CloudFrontOriginAccessIdentityConfig object), a new origin access identity
20371	// is created.
20372	//
20373	// If the CallerReference is a value already sent in a previous identity request,
20374	// and the content of the CloudFrontOriginAccessIdentityConfig is identical
20375	// to the original request (ignoring white space), the response includes the
20376	// same information returned to the original request.
20377	//
20378	// If the CallerReference is a value you already sent in a previous request
20379	// to create an identity, but the content of the CloudFrontOriginAccessIdentityConfig
20380	// is different from the original request, CloudFront returns a CloudFrontOriginAccessIdentityAlreadyExists
20381	// error.
20382	//
20383	// CallerReference is a required field
20384	CallerReference *string `type:"string" required:"true"`
20385
20386	// A comment to describe the origin access identity. The comment cannot be longer
20387	// than 128 characters.
20388	//
20389	// Comment is a required field
20390	Comment *string `type:"string" required:"true"`
20391}
20392
20393// String returns the string representation
20394func (s OriginAccessIdentityConfig) String() string {
20395	return awsutil.Prettify(s)
20396}
20397
20398// GoString returns the string representation
20399func (s OriginAccessIdentityConfig) GoString() string {
20400	return s.String()
20401}
20402
20403// Validate inspects the fields of the type to determine if they are valid.
20404func (s *OriginAccessIdentityConfig) Validate() error {
20405	invalidParams := request.ErrInvalidParams{Context: "OriginAccessIdentityConfig"}
20406	if s.CallerReference == nil {
20407		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
20408	}
20409	if s.Comment == nil {
20410		invalidParams.Add(request.NewErrParamRequired("Comment"))
20411	}
20412
20413	if invalidParams.Len() > 0 {
20414		return invalidParams
20415	}
20416	return nil
20417}
20418
20419// SetCallerReference sets the CallerReference field's value.
20420func (s *OriginAccessIdentityConfig) SetCallerReference(v string) *OriginAccessIdentityConfig {
20421	s.CallerReference = &v
20422	return s
20423}
20424
20425// SetComment sets the Comment field's value.
20426func (s *OriginAccessIdentityConfig) SetComment(v string) *OriginAccessIdentityConfig {
20427	s.Comment = &v
20428	return s
20429}
20430
20431// Lists the origin access identities for CloudFront.Send a GET request to the
20432// /CloudFront API version/origin-access-identity/cloudfront resource. The response
20433// includes a CloudFrontOriginAccessIdentityList element with zero or more CloudFrontOriginAccessIdentitySummary
20434// child elements. By default, your entire list of origin access identities
20435// is returned in one single page. If the list is long, you can paginate it
20436// using the MaxItems and Marker parameters.
20437type OriginAccessIdentityList struct {
20438	_ struct{} `type:"structure"`
20439
20440	// A flag that indicates whether more origin access identities remain to be
20441	// listed. If your results were truncated, you can make a follow-up pagination
20442	// request using the Marker request parameter to retrieve more items in the
20443	// list.
20444	//
20445	// IsTruncated is a required field
20446	IsTruncated *bool `type:"boolean" required:"true"`
20447
20448	// A complex type that contains one CloudFrontOriginAccessIdentitySummary element
20449	// for each origin access identity that was created by the current account.
20450	Items []*OriginAccessIdentitySummary `locationNameList:"CloudFrontOriginAccessIdentitySummary" type:"list"`
20451
20452	// Use this when paginating results to indicate where to begin in your list
20453	// of origin access identities. The results include identities in the list that
20454	// occur after the marker. To get the next page of results, set the Marker to
20455	// the value of the NextMarker from the current page's response (which is also
20456	// the ID of the last identity on that page).
20457	//
20458	// Marker is a required field
20459	Marker *string `type:"string" required:"true"`
20460
20461	// The maximum number of origin access identities you want in the response body.
20462	//
20463	// MaxItems is a required field
20464	MaxItems *int64 `type:"integer" required:"true"`
20465
20466	// If IsTruncated is true, this element is present and contains the value you
20467	// can use for the Marker request parameter to continue listing your origin
20468	// access identities where they left off.
20469	NextMarker *string `type:"string"`
20470
20471	// The number of CloudFront origin access identities that were created by the
20472	// current account.
20473	//
20474	// Quantity is a required field
20475	Quantity *int64 `type:"integer" required:"true"`
20476}
20477
20478// String returns the string representation
20479func (s OriginAccessIdentityList) String() string {
20480	return awsutil.Prettify(s)
20481}
20482
20483// GoString returns the string representation
20484func (s OriginAccessIdentityList) GoString() string {
20485	return s.String()
20486}
20487
20488// SetIsTruncated sets the IsTruncated field's value.
20489func (s *OriginAccessIdentityList) SetIsTruncated(v bool) *OriginAccessIdentityList {
20490	s.IsTruncated = &v
20491	return s
20492}
20493
20494// SetItems sets the Items field's value.
20495func (s *OriginAccessIdentityList) SetItems(v []*OriginAccessIdentitySummary) *OriginAccessIdentityList {
20496	s.Items = v
20497	return s
20498}
20499
20500// SetMarker sets the Marker field's value.
20501func (s *OriginAccessIdentityList) SetMarker(v string) *OriginAccessIdentityList {
20502	s.Marker = &v
20503	return s
20504}
20505
20506// SetMaxItems sets the MaxItems field's value.
20507func (s *OriginAccessIdentityList) SetMaxItems(v int64) *OriginAccessIdentityList {
20508	s.MaxItems = &v
20509	return s
20510}
20511
20512// SetNextMarker sets the NextMarker field's value.
20513func (s *OriginAccessIdentityList) SetNextMarker(v string) *OriginAccessIdentityList {
20514	s.NextMarker = &v
20515	return s
20516}
20517
20518// SetQuantity sets the Quantity field's value.
20519func (s *OriginAccessIdentityList) SetQuantity(v int64) *OriginAccessIdentityList {
20520	s.Quantity = &v
20521	return s
20522}
20523
20524// Summary of the information about a CloudFront origin access identity.
20525type OriginAccessIdentitySummary struct {
20526	_ struct{} `type:"structure"`
20527
20528	// The comment for this origin access identity, as originally specified when
20529	// created.
20530	//
20531	// Comment is a required field
20532	Comment *string `type:"string" required:"true"`
20533
20534	// The ID for the origin access identity. For example: E74FTE3AJFJ256A.
20535	//
20536	// Id is a required field
20537	Id *string `type:"string" required:"true"`
20538
20539	// The Amazon S3 canonical user ID for the origin access identity, which you
20540	// use when giving the origin access identity read permission to an object in
20541	// Amazon S3.
20542	//
20543	// S3CanonicalUserId is a required field
20544	S3CanonicalUserId *string `type:"string" required:"true"`
20545}
20546
20547// String returns the string representation
20548func (s OriginAccessIdentitySummary) String() string {
20549	return awsutil.Prettify(s)
20550}
20551
20552// GoString returns the string representation
20553func (s OriginAccessIdentitySummary) GoString() string {
20554	return s.String()
20555}
20556
20557// SetComment sets the Comment field's value.
20558func (s *OriginAccessIdentitySummary) SetComment(v string) *OriginAccessIdentitySummary {
20559	s.Comment = &v
20560	return s
20561}
20562
20563// SetId sets the Id field's value.
20564func (s *OriginAccessIdentitySummary) SetId(v string) *OriginAccessIdentitySummary {
20565	s.Id = &v
20566	return s
20567}
20568
20569// SetS3CanonicalUserId sets the S3CanonicalUserId field's value.
20570func (s *OriginAccessIdentitySummary) SetS3CanonicalUserId(v string) *OriginAccessIdentitySummary {
20571	s.S3CanonicalUserId = &v
20572	return s
20573}
20574
20575// A complex type that contains HeaderName and HeaderValue elements, if any,
20576// for this distribution.
20577type OriginCustomHeader struct {
20578	_ struct{} `type:"structure"`
20579
20580	// The name of a header that you want CloudFront to send to your origin. For
20581	// more information, see Adding Custom Headers to Origin Requests (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/forward-custom-headers.html)
20582	// in the Amazon CloudFront Developer Guide.
20583	//
20584	// HeaderName is a required field
20585	HeaderName *string `type:"string" required:"true"`
20586
20587	// The value for the header that you specified in the HeaderName field.
20588	//
20589	// HeaderValue is a required field
20590	HeaderValue *string `type:"string" required:"true"`
20591}
20592
20593// String returns the string representation
20594func (s OriginCustomHeader) String() string {
20595	return awsutil.Prettify(s)
20596}
20597
20598// GoString returns the string representation
20599func (s OriginCustomHeader) GoString() string {
20600	return s.String()
20601}
20602
20603// Validate inspects the fields of the type to determine if they are valid.
20604func (s *OriginCustomHeader) Validate() error {
20605	invalidParams := request.ErrInvalidParams{Context: "OriginCustomHeader"}
20606	if s.HeaderName == nil {
20607		invalidParams.Add(request.NewErrParamRequired("HeaderName"))
20608	}
20609	if s.HeaderValue == nil {
20610		invalidParams.Add(request.NewErrParamRequired("HeaderValue"))
20611	}
20612
20613	if invalidParams.Len() > 0 {
20614		return invalidParams
20615	}
20616	return nil
20617}
20618
20619// SetHeaderName sets the HeaderName field's value.
20620func (s *OriginCustomHeader) SetHeaderName(v string) *OriginCustomHeader {
20621	s.HeaderName = &v
20622	return s
20623}
20624
20625// SetHeaderValue sets the HeaderValue field's value.
20626func (s *OriginCustomHeader) SetHeaderValue(v string) *OriginCustomHeader {
20627	s.HeaderValue = &v
20628	return s
20629}
20630
20631// An origin group includes two origins (a primary origin and a second origin
20632// to failover to) and a failover criteria that you specify. You create an origin
20633// group to support origin failover in CloudFront. When you create or update
20634// a distribution, you can specifiy the origin group instead of a single origin,
20635// and CloudFront will failover from the primary origin to the second origin
20636// under the failover conditions that you've chosen.
20637type OriginGroup struct {
20638	_ struct{} `type:"structure"`
20639
20640	// A complex type that contains information about the failover criteria for
20641	// an origin group.
20642	//
20643	// FailoverCriteria is a required field
20644	FailoverCriteria *OriginGroupFailoverCriteria `type:"structure" required:"true"`
20645
20646	// The origin group's ID.
20647	//
20648	// Id is a required field
20649	Id *string `type:"string" required:"true"`
20650
20651	// A complex type that contains information about the origins in an origin group.
20652	//
20653	// Members is a required field
20654	Members *OriginGroupMembers `type:"structure" required:"true"`
20655}
20656
20657// String returns the string representation
20658func (s OriginGroup) String() string {
20659	return awsutil.Prettify(s)
20660}
20661
20662// GoString returns the string representation
20663func (s OriginGroup) GoString() string {
20664	return s.String()
20665}
20666
20667// Validate inspects the fields of the type to determine if they are valid.
20668func (s *OriginGroup) Validate() error {
20669	invalidParams := request.ErrInvalidParams{Context: "OriginGroup"}
20670	if s.FailoverCriteria == nil {
20671		invalidParams.Add(request.NewErrParamRequired("FailoverCriteria"))
20672	}
20673	if s.Id == nil {
20674		invalidParams.Add(request.NewErrParamRequired("Id"))
20675	}
20676	if s.Members == nil {
20677		invalidParams.Add(request.NewErrParamRequired("Members"))
20678	}
20679	if s.FailoverCriteria != nil {
20680		if err := s.FailoverCriteria.Validate(); err != nil {
20681			invalidParams.AddNested("FailoverCriteria", err.(request.ErrInvalidParams))
20682		}
20683	}
20684	if s.Members != nil {
20685		if err := s.Members.Validate(); err != nil {
20686			invalidParams.AddNested("Members", err.(request.ErrInvalidParams))
20687		}
20688	}
20689
20690	if invalidParams.Len() > 0 {
20691		return invalidParams
20692	}
20693	return nil
20694}
20695
20696// SetFailoverCriteria sets the FailoverCriteria field's value.
20697func (s *OriginGroup) SetFailoverCriteria(v *OriginGroupFailoverCriteria) *OriginGroup {
20698	s.FailoverCriteria = v
20699	return s
20700}
20701
20702// SetId sets the Id field's value.
20703func (s *OriginGroup) SetId(v string) *OriginGroup {
20704	s.Id = &v
20705	return s
20706}
20707
20708// SetMembers sets the Members field's value.
20709func (s *OriginGroup) SetMembers(v *OriginGroupMembers) *OriginGroup {
20710	s.Members = v
20711	return s
20712}
20713
20714// A complex data type that includes information about the failover criteria
20715// for an origin group, including the status codes for which CloudFront will
20716// failover from the primary origin to the second origin.
20717type OriginGroupFailoverCriteria struct {
20718	_ struct{} `type:"structure"`
20719
20720	// The status codes that, when returned from the primary origin, will trigger
20721	// CloudFront to failover to the second origin.
20722	//
20723	// StatusCodes is a required field
20724	StatusCodes *StatusCodes `type:"structure" required:"true"`
20725}
20726
20727// String returns the string representation
20728func (s OriginGroupFailoverCriteria) String() string {
20729	return awsutil.Prettify(s)
20730}
20731
20732// GoString returns the string representation
20733func (s OriginGroupFailoverCriteria) GoString() string {
20734	return s.String()
20735}
20736
20737// Validate inspects the fields of the type to determine if they are valid.
20738func (s *OriginGroupFailoverCriteria) Validate() error {
20739	invalidParams := request.ErrInvalidParams{Context: "OriginGroupFailoverCriteria"}
20740	if s.StatusCodes == nil {
20741		invalidParams.Add(request.NewErrParamRequired("StatusCodes"))
20742	}
20743	if s.StatusCodes != nil {
20744		if err := s.StatusCodes.Validate(); err != nil {
20745			invalidParams.AddNested("StatusCodes", err.(request.ErrInvalidParams))
20746		}
20747	}
20748
20749	if invalidParams.Len() > 0 {
20750		return invalidParams
20751	}
20752	return nil
20753}
20754
20755// SetStatusCodes sets the StatusCodes field's value.
20756func (s *OriginGroupFailoverCriteria) SetStatusCodes(v *StatusCodes) *OriginGroupFailoverCriteria {
20757	s.StatusCodes = v
20758	return s
20759}
20760
20761// An origin in an origin group.
20762type OriginGroupMember struct {
20763	_ struct{} `type:"structure"`
20764
20765	// The ID for an origin in an origin group.
20766	//
20767	// OriginId is a required field
20768	OriginId *string `type:"string" required:"true"`
20769}
20770
20771// String returns the string representation
20772func (s OriginGroupMember) String() string {
20773	return awsutil.Prettify(s)
20774}
20775
20776// GoString returns the string representation
20777func (s OriginGroupMember) GoString() string {
20778	return s.String()
20779}
20780
20781// Validate inspects the fields of the type to determine if they are valid.
20782func (s *OriginGroupMember) Validate() error {
20783	invalidParams := request.ErrInvalidParams{Context: "OriginGroupMember"}
20784	if s.OriginId == nil {
20785		invalidParams.Add(request.NewErrParamRequired("OriginId"))
20786	}
20787
20788	if invalidParams.Len() > 0 {
20789		return invalidParams
20790	}
20791	return nil
20792}
20793
20794// SetOriginId sets the OriginId field's value.
20795func (s *OriginGroupMember) SetOriginId(v string) *OriginGroupMember {
20796	s.OriginId = &v
20797	return s
20798}
20799
20800// A complex data type for the origins included in an origin group.
20801type OriginGroupMembers struct {
20802	_ struct{} `type:"structure"`
20803
20804	// Items (origins) in an origin group.
20805	//
20806	// Items is a required field
20807	Items []*OriginGroupMember `locationNameList:"OriginGroupMember" min:"2" type:"list" required:"true"`
20808
20809	// The number of origins in an origin group.
20810	//
20811	// Quantity is a required field
20812	Quantity *int64 `type:"integer" required:"true"`
20813}
20814
20815// String returns the string representation
20816func (s OriginGroupMembers) String() string {
20817	return awsutil.Prettify(s)
20818}
20819
20820// GoString returns the string representation
20821func (s OriginGroupMembers) GoString() string {
20822	return s.String()
20823}
20824
20825// Validate inspects the fields of the type to determine if they are valid.
20826func (s *OriginGroupMembers) Validate() error {
20827	invalidParams := request.ErrInvalidParams{Context: "OriginGroupMembers"}
20828	if s.Items == nil {
20829		invalidParams.Add(request.NewErrParamRequired("Items"))
20830	}
20831	if s.Items != nil && len(s.Items) < 2 {
20832		invalidParams.Add(request.NewErrParamMinLen("Items", 2))
20833	}
20834	if s.Quantity == nil {
20835		invalidParams.Add(request.NewErrParamRequired("Quantity"))
20836	}
20837	if s.Items != nil {
20838		for i, v := range s.Items {
20839			if v == nil {
20840				continue
20841			}
20842			if err := v.Validate(); err != nil {
20843				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
20844			}
20845		}
20846	}
20847
20848	if invalidParams.Len() > 0 {
20849		return invalidParams
20850	}
20851	return nil
20852}
20853
20854// SetItems sets the Items field's value.
20855func (s *OriginGroupMembers) SetItems(v []*OriginGroupMember) *OriginGroupMembers {
20856	s.Items = v
20857	return s
20858}
20859
20860// SetQuantity sets the Quantity field's value.
20861func (s *OriginGroupMembers) SetQuantity(v int64) *OriginGroupMembers {
20862	s.Quantity = &v
20863	return s
20864}
20865
20866// A complex data type for the origin groups specified for a distribution.
20867type OriginGroups struct {
20868	_ struct{} `type:"structure"`
20869
20870	// The items (origin groups) in a distribution.
20871	Items []*OriginGroup `locationNameList:"OriginGroup" type:"list"`
20872
20873	// The number of origin groups.
20874	//
20875	// Quantity is a required field
20876	Quantity *int64 `type:"integer" required:"true"`
20877}
20878
20879// String returns the string representation
20880func (s OriginGroups) String() string {
20881	return awsutil.Prettify(s)
20882}
20883
20884// GoString returns the string representation
20885func (s OriginGroups) GoString() string {
20886	return s.String()
20887}
20888
20889// Validate inspects the fields of the type to determine if they are valid.
20890func (s *OriginGroups) Validate() error {
20891	invalidParams := request.ErrInvalidParams{Context: "OriginGroups"}
20892	if s.Quantity == nil {
20893		invalidParams.Add(request.NewErrParamRequired("Quantity"))
20894	}
20895	if s.Items != nil {
20896		for i, v := range s.Items {
20897			if v == nil {
20898				continue
20899			}
20900			if err := v.Validate(); err != nil {
20901				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
20902			}
20903		}
20904	}
20905
20906	if invalidParams.Len() > 0 {
20907		return invalidParams
20908	}
20909	return nil
20910}
20911
20912// SetItems sets the Items field's value.
20913func (s *OriginGroups) SetItems(v []*OriginGroup) *OriginGroups {
20914	s.Items = v
20915	return s
20916}
20917
20918// SetQuantity sets the Quantity field's value.
20919func (s *OriginGroups) SetQuantity(v int64) *OriginGroups {
20920	s.Quantity = &v
20921	return s
20922}
20923
20924// An origin request policy.
20925//
20926// When it’s attached to a cache behavior, the origin request policy determines
20927// the values that CloudFront includes in requests that it sends to the origin.
20928// Each request that CloudFront sends to the origin includes the following:
20929//
20930//    * The request body and the URL path (without the domain name) from the
20931//    viewer request.
20932//
20933//    * The headers that CloudFront automatically includes in every origin request,
20934//    including Host, User-Agent, and X-Amz-Cf-Id.
20935//
20936//    * All HTTP headers, cookies, and URL query strings that are specified
20937//    in the cache policy or the origin request policy. These can include items
20938//    from the viewer request and, in the case of headers, additional ones that
20939//    are added by CloudFront.
20940//
20941// CloudFront sends a request when it can’t find an object in its cache that
20942// matches the request. If you want to send values to the origin and also include
20943// them in the cache key, use CachePolicy.
20944type OriginRequestPolicy struct {
20945	_ struct{} `type:"structure"`
20946
20947	// The unique identifier for the origin request policy.
20948	//
20949	// Id is a required field
20950	Id *string `type:"string" required:"true"`
20951
20952	// The date and time when the origin request policy was last modified.
20953	//
20954	// LastModifiedTime is a required field
20955	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
20956
20957	// The origin request policy configuration.
20958	//
20959	// OriginRequestPolicyConfig is a required field
20960	OriginRequestPolicyConfig *OriginRequestPolicyConfig `type:"structure" required:"true"`
20961}
20962
20963// String returns the string representation
20964func (s OriginRequestPolicy) String() string {
20965	return awsutil.Prettify(s)
20966}
20967
20968// GoString returns the string representation
20969func (s OriginRequestPolicy) GoString() string {
20970	return s.String()
20971}
20972
20973// SetId sets the Id field's value.
20974func (s *OriginRequestPolicy) SetId(v string) *OriginRequestPolicy {
20975	s.Id = &v
20976	return s
20977}
20978
20979// SetLastModifiedTime sets the LastModifiedTime field's value.
20980func (s *OriginRequestPolicy) SetLastModifiedTime(v time.Time) *OriginRequestPolicy {
20981	s.LastModifiedTime = &v
20982	return s
20983}
20984
20985// SetOriginRequestPolicyConfig sets the OriginRequestPolicyConfig field's value.
20986func (s *OriginRequestPolicy) SetOriginRequestPolicyConfig(v *OriginRequestPolicyConfig) *OriginRequestPolicy {
20987	s.OriginRequestPolicyConfig = v
20988	return s
20989}
20990
20991// An origin request policy configuration.
20992//
20993// This configuration determines the values that CloudFront includes in requests
20994// that it sends to the origin. Each request that CloudFront sends to the origin
20995// includes the following:
20996//
20997//    * The request body and the URL path (without the domain name) from the
20998//    viewer request.
20999//
21000//    * The headers that CloudFront automatically includes in every origin request,
21001//    including Host, User-Agent, and X-Amz-Cf-Id.
21002//
21003//    * All HTTP headers, cookies, and URL query strings that are specified
21004//    in the cache policy or the origin request policy. These can include items
21005//    from the viewer request and, in the case of headers, additional ones that
21006//    are added by CloudFront.
21007//
21008// CloudFront sends a request when it can’t find an object in its cache that
21009// matches the request. If you want to send values to the origin and also include
21010// them in the cache key, use CachePolicy.
21011type OriginRequestPolicyConfig struct {
21012	_ struct{} `type:"structure"`
21013
21014	// A comment to describe the origin request policy. The comment cannot be longer
21015	// than 128 characters.
21016	Comment *string `type:"string"`
21017
21018	// The cookies from viewer requests to include in origin requests.
21019	//
21020	// CookiesConfig is a required field
21021	CookiesConfig *OriginRequestPolicyCookiesConfig `type:"structure" required:"true"`
21022
21023	// The HTTP headers to include in origin requests. These can include headers
21024	// from viewer requests and additional headers added by CloudFront.
21025	//
21026	// HeadersConfig is a required field
21027	HeadersConfig *OriginRequestPolicyHeadersConfig `type:"structure" required:"true"`
21028
21029	// A unique name to identify the origin request policy.
21030	//
21031	// Name is a required field
21032	Name *string `type:"string" required:"true"`
21033
21034	// The URL query strings from viewer requests to include in origin requests.
21035	//
21036	// QueryStringsConfig is a required field
21037	QueryStringsConfig *OriginRequestPolicyQueryStringsConfig `type:"structure" required:"true"`
21038}
21039
21040// String returns the string representation
21041func (s OriginRequestPolicyConfig) String() string {
21042	return awsutil.Prettify(s)
21043}
21044
21045// GoString returns the string representation
21046func (s OriginRequestPolicyConfig) GoString() string {
21047	return s.String()
21048}
21049
21050// Validate inspects the fields of the type to determine if they are valid.
21051func (s *OriginRequestPolicyConfig) Validate() error {
21052	invalidParams := request.ErrInvalidParams{Context: "OriginRequestPolicyConfig"}
21053	if s.CookiesConfig == nil {
21054		invalidParams.Add(request.NewErrParamRequired("CookiesConfig"))
21055	}
21056	if s.HeadersConfig == nil {
21057		invalidParams.Add(request.NewErrParamRequired("HeadersConfig"))
21058	}
21059	if s.Name == nil {
21060		invalidParams.Add(request.NewErrParamRequired("Name"))
21061	}
21062	if s.QueryStringsConfig == nil {
21063		invalidParams.Add(request.NewErrParamRequired("QueryStringsConfig"))
21064	}
21065	if s.CookiesConfig != nil {
21066		if err := s.CookiesConfig.Validate(); err != nil {
21067			invalidParams.AddNested("CookiesConfig", err.(request.ErrInvalidParams))
21068		}
21069	}
21070	if s.HeadersConfig != nil {
21071		if err := s.HeadersConfig.Validate(); err != nil {
21072			invalidParams.AddNested("HeadersConfig", err.(request.ErrInvalidParams))
21073		}
21074	}
21075	if s.QueryStringsConfig != nil {
21076		if err := s.QueryStringsConfig.Validate(); err != nil {
21077			invalidParams.AddNested("QueryStringsConfig", err.(request.ErrInvalidParams))
21078		}
21079	}
21080
21081	if invalidParams.Len() > 0 {
21082		return invalidParams
21083	}
21084	return nil
21085}
21086
21087// SetComment sets the Comment field's value.
21088func (s *OriginRequestPolicyConfig) SetComment(v string) *OriginRequestPolicyConfig {
21089	s.Comment = &v
21090	return s
21091}
21092
21093// SetCookiesConfig sets the CookiesConfig field's value.
21094func (s *OriginRequestPolicyConfig) SetCookiesConfig(v *OriginRequestPolicyCookiesConfig) *OriginRequestPolicyConfig {
21095	s.CookiesConfig = v
21096	return s
21097}
21098
21099// SetHeadersConfig sets the HeadersConfig field's value.
21100func (s *OriginRequestPolicyConfig) SetHeadersConfig(v *OriginRequestPolicyHeadersConfig) *OriginRequestPolicyConfig {
21101	s.HeadersConfig = v
21102	return s
21103}
21104
21105// SetName sets the Name field's value.
21106func (s *OriginRequestPolicyConfig) SetName(v string) *OriginRequestPolicyConfig {
21107	s.Name = &v
21108	return s
21109}
21110
21111// SetQueryStringsConfig sets the QueryStringsConfig field's value.
21112func (s *OriginRequestPolicyConfig) SetQueryStringsConfig(v *OriginRequestPolicyQueryStringsConfig) *OriginRequestPolicyConfig {
21113	s.QueryStringsConfig = v
21114	return s
21115}
21116
21117// An object that determines whether any cookies in viewer requests (and if
21118// so, which cookies) are included in requests that CloudFront sends to the
21119// origin.
21120type OriginRequestPolicyCookiesConfig struct {
21121	_ struct{} `type:"structure"`
21122
21123	// Determines whether cookies in viewer requests are included in requests that
21124	// CloudFront sends to the origin. Valid values are:
21125	//
21126	//    * none – Cookies in viewer requests are not included in requests that
21127	//    CloudFront sends to the origin. Even when this field is set to none, any
21128	//    cookies that are listed in a CachePolicy are included in origin requests.
21129	//
21130	//    * whitelist – The cookies in viewer requests that are listed in the
21131	//    CookieNames type are included in requests that CloudFront sends to the
21132	//    origin.
21133	//
21134	//    * all – All cookies in viewer requests are included in requests that
21135	//    CloudFront sends to the origin.
21136	//
21137	// CookieBehavior is a required field
21138	CookieBehavior *string `type:"string" required:"true" enum:"OriginRequestPolicyCookieBehavior"`
21139
21140	// Contains a list of cookie names.
21141	Cookies *CookieNames `type:"structure"`
21142}
21143
21144// String returns the string representation
21145func (s OriginRequestPolicyCookiesConfig) String() string {
21146	return awsutil.Prettify(s)
21147}
21148
21149// GoString returns the string representation
21150func (s OriginRequestPolicyCookiesConfig) GoString() string {
21151	return s.String()
21152}
21153
21154// Validate inspects the fields of the type to determine if they are valid.
21155func (s *OriginRequestPolicyCookiesConfig) Validate() error {
21156	invalidParams := request.ErrInvalidParams{Context: "OriginRequestPolicyCookiesConfig"}
21157	if s.CookieBehavior == nil {
21158		invalidParams.Add(request.NewErrParamRequired("CookieBehavior"))
21159	}
21160	if s.Cookies != nil {
21161		if err := s.Cookies.Validate(); err != nil {
21162			invalidParams.AddNested("Cookies", err.(request.ErrInvalidParams))
21163		}
21164	}
21165
21166	if invalidParams.Len() > 0 {
21167		return invalidParams
21168	}
21169	return nil
21170}
21171
21172// SetCookieBehavior sets the CookieBehavior field's value.
21173func (s *OriginRequestPolicyCookiesConfig) SetCookieBehavior(v string) *OriginRequestPolicyCookiesConfig {
21174	s.CookieBehavior = &v
21175	return s
21176}
21177
21178// SetCookies sets the Cookies field's value.
21179func (s *OriginRequestPolicyCookiesConfig) SetCookies(v *CookieNames) *OriginRequestPolicyCookiesConfig {
21180	s.Cookies = v
21181	return s
21182}
21183
21184// An object that determines whether any HTTP headers (and if so, which headers)
21185// are included in requests that CloudFront sends to the origin.
21186type OriginRequestPolicyHeadersConfig struct {
21187	_ struct{} `type:"structure"`
21188
21189	// Determines whether any HTTP headers are included in requests that CloudFront
21190	// sends to the origin. Valid values are:
21191	//
21192	//    * none – HTTP headers are not included in requests that CloudFront sends
21193	//    to the origin. Even when this field is set to none, any headers that are
21194	//    listed in a CachePolicy are included in origin requests.
21195	//
21196	//    * whitelist – The HTTP headers that are listed in the Headers type are
21197	//    included in requests that CloudFront sends to the origin.
21198	//
21199	//    * allViewer – All HTTP headers in viewer requests are included in requests
21200	//    that CloudFront sends to the origin.
21201	//
21202	//    * allViewerAndWhitelistCloudFront – All HTTP headers in viewer requests
21203	//    and the additional CloudFront headers that are listed in the Headers type
21204	//    are included in requests that CloudFront sends to the origin. The additional
21205	//    headers are added by CloudFront.
21206	//
21207	// HeaderBehavior is a required field
21208	HeaderBehavior *string `type:"string" required:"true" enum:"OriginRequestPolicyHeaderBehavior"`
21209
21210	// Contains a list of HTTP header names.
21211	Headers *Headers `type:"structure"`
21212}
21213
21214// String returns the string representation
21215func (s OriginRequestPolicyHeadersConfig) String() string {
21216	return awsutil.Prettify(s)
21217}
21218
21219// GoString returns the string representation
21220func (s OriginRequestPolicyHeadersConfig) GoString() string {
21221	return s.String()
21222}
21223
21224// Validate inspects the fields of the type to determine if they are valid.
21225func (s *OriginRequestPolicyHeadersConfig) Validate() error {
21226	invalidParams := request.ErrInvalidParams{Context: "OriginRequestPolicyHeadersConfig"}
21227	if s.HeaderBehavior == nil {
21228		invalidParams.Add(request.NewErrParamRequired("HeaderBehavior"))
21229	}
21230	if s.Headers != nil {
21231		if err := s.Headers.Validate(); err != nil {
21232			invalidParams.AddNested("Headers", err.(request.ErrInvalidParams))
21233		}
21234	}
21235
21236	if invalidParams.Len() > 0 {
21237		return invalidParams
21238	}
21239	return nil
21240}
21241
21242// SetHeaderBehavior sets the HeaderBehavior field's value.
21243func (s *OriginRequestPolicyHeadersConfig) SetHeaderBehavior(v string) *OriginRequestPolicyHeadersConfig {
21244	s.HeaderBehavior = &v
21245	return s
21246}
21247
21248// SetHeaders sets the Headers field's value.
21249func (s *OriginRequestPolicyHeadersConfig) SetHeaders(v *Headers) *OriginRequestPolicyHeadersConfig {
21250	s.Headers = v
21251	return s
21252}
21253
21254// A list of origin request policies.
21255type OriginRequestPolicyList struct {
21256	_ struct{} `type:"structure"`
21257
21258	// Contains the origin request policies in the list.
21259	Items []*OriginRequestPolicySummary `locationNameList:"OriginRequestPolicySummary" type:"list"`
21260
21261	// The maximum number of origin request policies requested.
21262	//
21263	// MaxItems is a required field
21264	MaxItems *int64 `type:"integer" required:"true"`
21265
21266	// If there are more items in the list than are in this response, this element
21267	// is present. It contains the value that you should use in the Marker field
21268	// of a subsequent request to continue listing origin request policies where
21269	// you left off.
21270	NextMarker *string `type:"string"`
21271
21272	// The total number of origin request policies returned in the response.
21273	//
21274	// Quantity is a required field
21275	Quantity *int64 `type:"integer" required:"true"`
21276}
21277
21278// String returns the string representation
21279func (s OriginRequestPolicyList) String() string {
21280	return awsutil.Prettify(s)
21281}
21282
21283// GoString returns the string representation
21284func (s OriginRequestPolicyList) GoString() string {
21285	return s.String()
21286}
21287
21288// SetItems sets the Items field's value.
21289func (s *OriginRequestPolicyList) SetItems(v []*OriginRequestPolicySummary) *OriginRequestPolicyList {
21290	s.Items = v
21291	return s
21292}
21293
21294// SetMaxItems sets the MaxItems field's value.
21295func (s *OriginRequestPolicyList) SetMaxItems(v int64) *OriginRequestPolicyList {
21296	s.MaxItems = &v
21297	return s
21298}
21299
21300// SetNextMarker sets the NextMarker field's value.
21301func (s *OriginRequestPolicyList) SetNextMarker(v string) *OriginRequestPolicyList {
21302	s.NextMarker = &v
21303	return s
21304}
21305
21306// SetQuantity sets the Quantity field's value.
21307func (s *OriginRequestPolicyList) SetQuantity(v int64) *OriginRequestPolicyList {
21308	s.Quantity = &v
21309	return s
21310}
21311
21312// An object that determines whether any URL query strings in viewer requests
21313// (and if so, which query strings) are included in requests that CloudFront
21314// sends to the origin.
21315type OriginRequestPolicyQueryStringsConfig struct {
21316	_ struct{} `type:"structure"`
21317
21318	// Determines whether any URL query strings in viewer requests are included
21319	// in requests that CloudFront sends to the origin. Valid values are:
21320	//
21321	//    * none – Query strings in viewer requests are not included in requests
21322	//    that CloudFront sends to the origin. Even when this field is set to none,
21323	//    any query strings that are listed in a CachePolicy are included in origin
21324	//    requests.
21325	//
21326	//    * whitelist – The query strings in viewer requests that are listed in
21327	//    the QueryStringNames type are included in requests that CloudFront sends
21328	//    to the origin.
21329	//
21330	//    * all – All query strings in viewer requests are included in requests
21331	//    that CloudFront sends to the origin.
21332	//
21333	// QueryStringBehavior is a required field
21334	QueryStringBehavior *string `type:"string" required:"true" enum:"OriginRequestPolicyQueryStringBehavior"`
21335
21336	// Contains a list of the query strings in viewer requests that are included
21337	// in requests that CloudFront sends to the origin.
21338	QueryStrings *QueryStringNames `type:"structure"`
21339}
21340
21341// String returns the string representation
21342func (s OriginRequestPolicyQueryStringsConfig) String() string {
21343	return awsutil.Prettify(s)
21344}
21345
21346// GoString returns the string representation
21347func (s OriginRequestPolicyQueryStringsConfig) GoString() string {
21348	return s.String()
21349}
21350
21351// Validate inspects the fields of the type to determine if they are valid.
21352func (s *OriginRequestPolicyQueryStringsConfig) Validate() error {
21353	invalidParams := request.ErrInvalidParams{Context: "OriginRequestPolicyQueryStringsConfig"}
21354	if s.QueryStringBehavior == nil {
21355		invalidParams.Add(request.NewErrParamRequired("QueryStringBehavior"))
21356	}
21357	if s.QueryStrings != nil {
21358		if err := s.QueryStrings.Validate(); err != nil {
21359			invalidParams.AddNested("QueryStrings", err.(request.ErrInvalidParams))
21360		}
21361	}
21362
21363	if invalidParams.Len() > 0 {
21364		return invalidParams
21365	}
21366	return nil
21367}
21368
21369// SetQueryStringBehavior sets the QueryStringBehavior field's value.
21370func (s *OriginRequestPolicyQueryStringsConfig) SetQueryStringBehavior(v string) *OriginRequestPolicyQueryStringsConfig {
21371	s.QueryStringBehavior = &v
21372	return s
21373}
21374
21375// SetQueryStrings sets the QueryStrings field's value.
21376func (s *OriginRequestPolicyQueryStringsConfig) SetQueryStrings(v *QueryStringNames) *OriginRequestPolicyQueryStringsConfig {
21377	s.QueryStrings = v
21378	return s
21379}
21380
21381// Contains an origin request policy.
21382type OriginRequestPolicySummary struct {
21383	_ struct{} `type:"structure"`
21384
21385	// The origin request policy.
21386	//
21387	// OriginRequestPolicy is a required field
21388	OriginRequestPolicy *OriginRequestPolicy `type:"structure" required:"true"`
21389
21390	// The type of origin request policy, either managed (created by Amazon Web
21391	// Services) or custom (created in this account).
21392	//
21393	// Type is a required field
21394	Type *string `type:"string" required:"true" enum:"OriginRequestPolicyType"`
21395}
21396
21397// String returns the string representation
21398func (s OriginRequestPolicySummary) String() string {
21399	return awsutil.Prettify(s)
21400}
21401
21402// GoString returns the string representation
21403func (s OriginRequestPolicySummary) GoString() string {
21404	return s.String()
21405}
21406
21407// SetOriginRequestPolicy sets the OriginRequestPolicy field's value.
21408func (s *OriginRequestPolicySummary) SetOriginRequestPolicy(v *OriginRequestPolicy) *OriginRequestPolicySummary {
21409	s.OriginRequestPolicy = v
21410	return s
21411}
21412
21413// SetType sets the Type field's value.
21414func (s *OriginRequestPolicySummary) SetType(v string) *OriginRequestPolicySummary {
21415	s.Type = &v
21416	return s
21417}
21418
21419// CloudFront Origin Shield.
21420//
21421// Using Origin Shield can help reduce the load on your origin. For more information,
21422// see Using Origin Shield (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html)
21423// in the Amazon CloudFront Developer Guide.
21424type OriginShield struct {
21425	_ struct{} `type:"structure"`
21426
21427	// A flag that specifies whether Origin Shield is enabled.
21428	//
21429	// When it’s enabled, CloudFront routes all requests through Origin Shield,
21430	// which can help protect your origin. When it’s disabled, CloudFront might
21431	// send requests directly to your origin from multiple edge locations or regional
21432	// edge caches.
21433	//
21434	// Enabled is a required field
21435	Enabled *bool `type:"boolean" required:"true"`
21436
21437	// The Region for Origin Shield.
21438	//
21439	// Specify the Region that has the lowest latency to your origin. To specify
21440	// a region, use the region code, not the region name. For example, specify
21441	// the US East (Ohio) region as us-east-2.
21442	//
21443	// When you enable CloudFront Origin Shield, you must specify the Region for
21444	// Origin Shield. For the list of Regions that you can specify, and for help
21445	// choosing the best Region for your origin, see Choosing the Region for Origin
21446	// Shield (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region)
21447	// in the Amazon CloudFront Developer Guide.
21448	OriginShieldRegion *string `min:"1" type:"string"`
21449}
21450
21451// String returns the string representation
21452func (s OriginShield) String() string {
21453	return awsutil.Prettify(s)
21454}
21455
21456// GoString returns the string representation
21457func (s OriginShield) GoString() string {
21458	return s.String()
21459}
21460
21461// Validate inspects the fields of the type to determine if they are valid.
21462func (s *OriginShield) Validate() error {
21463	invalidParams := request.ErrInvalidParams{Context: "OriginShield"}
21464	if s.Enabled == nil {
21465		invalidParams.Add(request.NewErrParamRequired("Enabled"))
21466	}
21467	if s.OriginShieldRegion != nil && len(*s.OriginShieldRegion) < 1 {
21468		invalidParams.Add(request.NewErrParamMinLen("OriginShieldRegion", 1))
21469	}
21470
21471	if invalidParams.Len() > 0 {
21472		return invalidParams
21473	}
21474	return nil
21475}
21476
21477// SetEnabled sets the Enabled field's value.
21478func (s *OriginShield) SetEnabled(v bool) *OriginShield {
21479	s.Enabled = &v
21480	return s
21481}
21482
21483// SetOriginShieldRegion sets the OriginShieldRegion field's value.
21484func (s *OriginShield) SetOriginShieldRegion(v string) *OriginShield {
21485	s.OriginShieldRegion = &v
21486	return s
21487}
21488
21489// A complex type that contains information about the SSL/TLS protocols that
21490// CloudFront can use when establishing an HTTPS connection with your origin.
21491type OriginSslProtocols struct {
21492	_ struct{} `type:"structure"`
21493
21494	// A list that contains allowed SSL/TLS protocols for this distribution.
21495	//
21496	// Items is a required field
21497	Items []*string `locationNameList:"SslProtocol" type:"list" required:"true"`
21498
21499	// The number of SSL/TLS protocols that you want to allow CloudFront to use
21500	// when establishing an HTTPS connection with this origin.
21501	//
21502	// Quantity is a required field
21503	Quantity *int64 `type:"integer" required:"true"`
21504}
21505
21506// String returns the string representation
21507func (s OriginSslProtocols) String() string {
21508	return awsutil.Prettify(s)
21509}
21510
21511// GoString returns the string representation
21512func (s OriginSslProtocols) GoString() string {
21513	return s.String()
21514}
21515
21516// Validate inspects the fields of the type to determine if they are valid.
21517func (s *OriginSslProtocols) Validate() error {
21518	invalidParams := request.ErrInvalidParams{Context: "OriginSslProtocols"}
21519	if s.Items == nil {
21520		invalidParams.Add(request.NewErrParamRequired("Items"))
21521	}
21522	if s.Quantity == nil {
21523		invalidParams.Add(request.NewErrParamRequired("Quantity"))
21524	}
21525
21526	if invalidParams.Len() > 0 {
21527		return invalidParams
21528	}
21529	return nil
21530}
21531
21532// SetItems sets the Items field's value.
21533func (s *OriginSslProtocols) SetItems(v []*string) *OriginSslProtocols {
21534	s.Items = v
21535	return s
21536}
21537
21538// SetQuantity sets the Quantity field's value.
21539func (s *OriginSslProtocols) SetQuantity(v int64) *OriginSslProtocols {
21540	s.Quantity = &v
21541	return s
21542}
21543
21544// Contains information about the origins for this distribution.
21545type Origins struct {
21546	_ struct{} `type:"structure"`
21547
21548	// A list of origins.
21549	//
21550	// Items is a required field
21551	Items []*Origin `locationNameList:"Origin" min:"1" type:"list" required:"true"`
21552
21553	// The number of origins for this distribution.
21554	//
21555	// Quantity is a required field
21556	Quantity *int64 `type:"integer" required:"true"`
21557}
21558
21559// String returns the string representation
21560func (s Origins) String() string {
21561	return awsutil.Prettify(s)
21562}
21563
21564// GoString returns the string representation
21565func (s Origins) GoString() string {
21566	return s.String()
21567}
21568
21569// Validate inspects the fields of the type to determine if they are valid.
21570func (s *Origins) Validate() error {
21571	invalidParams := request.ErrInvalidParams{Context: "Origins"}
21572	if s.Items == nil {
21573		invalidParams.Add(request.NewErrParamRequired("Items"))
21574	}
21575	if s.Items != nil && len(s.Items) < 1 {
21576		invalidParams.Add(request.NewErrParamMinLen("Items", 1))
21577	}
21578	if s.Quantity == nil {
21579		invalidParams.Add(request.NewErrParamRequired("Quantity"))
21580	}
21581	if s.Items != nil {
21582		for i, v := range s.Items {
21583			if v == nil {
21584				continue
21585			}
21586			if err := v.Validate(); err != nil {
21587				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
21588			}
21589		}
21590	}
21591
21592	if invalidParams.Len() > 0 {
21593		return invalidParams
21594	}
21595	return nil
21596}
21597
21598// SetItems sets the Items field's value.
21599func (s *Origins) SetItems(v []*Origin) *Origins {
21600	s.Items = v
21601	return s
21602}
21603
21604// SetQuantity sets the Quantity field's value.
21605func (s *Origins) SetQuantity(v int64) *Origins {
21606	s.Quantity = &v
21607	return s
21608}
21609
21610// This object determines the values that CloudFront includes in the cache key.
21611// These values can include HTTP headers, cookies, and URL query strings. CloudFront
21612// uses the cache key to find an object in its cache that it can return to the
21613// viewer.
21614//
21615// The headers, cookies, and query strings that are included in the cache key
21616// are automatically included in requests that CloudFront sends to the origin.
21617// CloudFront sends a request when it can’t find an object in its cache that
21618// matches the request’s cache key. If you want to send values to the origin
21619// but not include them in the cache key, use OriginRequestPolicy.
21620type ParametersInCacheKeyAndForwardedToOrigin struct {
21621	_ struct{} `type:"structure"`
21622
21623	// An object that determines whether any cookies in viewer requests (and if
21624	// so, which cookies) are included in the cache key and automatically included
21625	// in requests that CloudFront sends to the origin.
21626	//
21627	// CookiesConfig is a required field
21628	CookiesConfig *CachePolicyCookiesConfig `type:"structure" required:"true"`
21629
21630	// A flag that can affect whether the Accept-Encoding HTTP header is included
21631	// in the cache key and included in requests that CloudFront sends to the origin.
21632	//
21633	// This field is related to the EnableAcceptEncodingGzip field. If one or both
21634	// of these fields is true and the viewer request includes the Accept-Encoding
21635	// header, then CloudFront does the following:
21636	//
21637	//    * Normalizes the value of the viewer’s Accept-Encoding header
21638	//
21639	//    * Includes the normalized header in the cache key
21640	//
21641	//    * Includes the normalized header in the request to the origin, if a request
21642	//    is necessary
21643	//
21644	// For more information, see Compression support (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects)
21645	// in the Amazon CloudFront Developer Guide.
21646	//
21647	// If you set this value to true, and this cache behavior also has an origin
21648	// request policy attached, do not include the Accept-Encoding header in the
21649	// origin request policy. CloudFront always includes the Accept-Encoding header
21650	// in origin requests when the value of this field is true, so including this
21651	// header in an origin request policy has no effect.
21652	//
21653	// If both of these fields are false, then CloudFront treats the Accept-Encoding
21654	// header the same as any other HTTP header in the viewer request. By default,
21655	// it’s not included in the cache key and it’s not included in origin requests.
21656	// In this case, you can manually add Accept-Encoding to the headers whitelist
21657	// like any other HTTP header.
21658	EnableAcceptEncodingBrotli *bool `type:"boolean"`
21659
21660	// A flag that can affect whether the Accept-Encoding HTTP header is included
21661	// in the cache key and included in requests that CloudFront sends to the origin.
21662	//
21663	// This field is related to the EnableAcceptEncodingBrotli field. If one or
21664	// both of these fields is true and the viewer request includes the Accept-Encoding
21665	// header, then CloudFront does the following:
21666	//
21667	//    * Normalizes the value of the viewer’s Accept-Encoding header
21668	//
21669	//    * Includes the normalized header in the cache key
21670	//
21671	//    * Includes the normalized header in the request to the origin, if a request
21672	//    is necessary
21673	//
21674	// For more information, see Compression support (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects)
21675	// in the Amazon CloudFront Developer Guide.
21676	//
21677	// If you set this value to true, and this cache behavior also has an origin
21678	// request policy attached, do not include the Accept-Encoding header in the
21679	// origin request policy. CloudFront always includes the Accept-Encoding header
21680	// in origin requests when the value of this field is true, so including this
21681	// header in an origin request policy has no effect.
21682	//
21683	// If both of these fields are false, then CloudFront treats the Accept-Encoding
21684	// header the same as any other HTTP header in the viewer request. By default,
21685	// it’s not included in the cache key and it’s not included in origin requests.
21686	// In this case, you can manually add Accept-Encoding to the headers whitelist
21687	// like any other HTTP header.
21688	//
21689	// EnableAcceptEncodingGzip is a required field
21690	EnableAcceptEncodingGzip *bool `type:"boolean" required:"true"`
21691
21692	// An object that determines whether any HTTP headers (and if so, which headers)
21693	// are included in the cache key and automatically included in requests that
21694	// CloudFront sends to the origin.
21695	//
21696	// HeadersConfig is a required field
21697	HeadersConfig *CachePolicyHeadersConfig `type:"structure" required:"true"`
21698
21699	// An object that determines whether any URL query strings in viewer requests
21700	// (and if so, which query strings) are included in the cache key and automatically
21701	// included in requests that CloudFront sends to the origin.
21702	//
21703	// QueryStringsConfig is a required field
21704	QueryStringsConfig *CachePolicyQueryStringsConfig `type:"structure" required:"true"`
21705}
21706
21707// String returns the string representation
21708func (s ParametersInCacheKeyAndForwardedToOrigin) String() string {
21709	return awsutil.Prettify(s)
21710}
21711
21712// GoString returns the string representation
21713func (s ParametersInCacheKeyAndForwardedToOrigin) GoString() string {
21714	return s.String()
21715}
21716
21717// Validate inspects the fields of the type to determine if they are valid.
21718func (s *ParametersInCacheKeyAndForwardedToOrigin) Validate() error {
21719	invalidParams := request.ErrInvalidParams{Context: "ParametersInCacheKeyAndForwardedToOrigin"}
21720	if s.CookiesConfig == nil {
21721		invalidParams.Add(request.NewErrParamRequired("CookiesConfig"))
21722	}
21723	if s.EnableAcceptEncodingGzip == nil {
21724		invalidParams.Add(request.NewErrParamRequired("EnableAcceptEncodingGzip"))
21725	}
21726	if s.HeadersConfig == nil {
21727		invalidParams.Add(request.NewErrParamRequired("HeadersConfig"))
21728	}
21729	if s.QueryStringsConfig == nil {
21730		invalidParams.Add(request.NewErrParamRequired("QueryStringsConfig"))
21731	}
21732	if s.CookiesConfig != nil {
21733		if err := s.CookiesConfig.Validate(); err != nil {
21734			invalidParams.AddNested("CookiesConfig", err.(request.ErrInvalidParams))
21735		}
21736	}
21737	if s.HeadersConfig != nil {
21738		if err := s.HeadersConfig.Validate(); err != nil {
21739			invalidParams.AddNested("HeadersConfig", err.(request.ErrInvalidParams))
21740		}
21741	}
21742	if s.QueryStringsConfig != nil {
21743		if err := s.QueryStringsConfig.Validate(); err != nil {
21744			invalidParams.AddNested("QueryStringsConfig", err.(request.ErrInvalidParams))
21745		}
21746	}
21747
21748	if invalidParams.Len() > 0 {
21749		return invalidParams
21750	}
21751	return nil
21752}
21753
21754// SetCookiesConfig sets the CookiesConfig field's value.
21755func (s *ParametersInCacheKeyAndForwardedToOrigin) SetCookiesConfig(v *CachePolicyCookiesConfig) *ParametersInCacheKeyAndForwardedToOrigin {
21756	s.CookiesConfig = v
21757	return s
21758}
21759
21760// SetEnableAcceptEncodingBrotli sets the EnableAcceptEncodingBrotli field's value.
21761func (s *ParametersInCacheKeyAndForwardedToOrigin) SetEnableAcceptEncodingBrotli(v bool) *ParametersInCacheKeyAndForwardedToOrigin {
21762	s.EnableAcceptEncodingBrotli = &v
21763	return s
21764}
21765
21766// SetEnableAcceptEncodingGzip sets the EnableAcceptEncodingGzip field's value.
21767func (s *ParametersInCacheKeyAndForwardedToOrigin) SetEnableAcceptEncodingGzip(v bool) *ParametersInCacheKeyAndForwardedToOrigin {
21768	s.EnableAcceptEncodingGzip = &v
21769	return s
21770}
21771
21772// SetHeadersConfig sets the HeadersConfig field's value.
21773func (s *ParametersInCacheKeyAndForwardedToOrigin) SetHeadersConfig(v *CachePolicyHeadersConfig) *ParametersInCacheKeyAndForwardedToOrigin {
21774	s.HeadersConfig = v
21775	return s
21776}
21777
21778// SetQueryStringsConfig sets the QueryStringsConfig field's value.
21779func (s *ParametersInCacheKeyAndForwardedToOrigin) SetQueryStringsConfig(v *CachePolicyQueryStringsConfig) *ParametersInCacheKeyAndForwardedToOrigin {
21780	s.QueryStringsConfig = v
21781	return s
21782}
21783
21784// A complex type that contains information about the objects that you want
21785// to invalidate. For more information, see Specifying the Objects to Invalidate
21786// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects)
21787// in the Amazon CloudFront Developer Guide.
21788type Paths struct {
21789	_ struct{} `type:"structure"`
21790
21791	// A complex type that contains a list of the paths that you want to invalidate.
21792	Items []*string `locationNameList:"Path" type:"list"`
21793
21794	// The number of invalidation paths specified for the objects that you want
21795	// to invalidate.
21796	//
21797	// Quantity is a required field
21798	Quantity *int64 `type:"integer" required:"true"`
21799}
21800
21801// String returns the string representation
21802func (s Paths) String() string {
21803	return awsutil.Prettify(s)
21804}
21805
21806// GoString returns the string representation
21807func (s Paths) GoString() string {
21808	return s.String()
21809}
21810
21811// Validate inspects the fields of the type to determine if they are valid.
21812func (s *Paths) Validate() error {
21813	invalidParams := request.ErrInvalidParams{Context: "Paths"}
21814	if s.Quantity == nil {
21815		invalidParams.Add(request.NewErrParamRequired("Quantity"))
21816	}
21817
21818	if invalidParams.Len() > 0 {
21819		return invalidParams
21820	}
21821	return nil
21822}
21823
21824// SetItems sets the Items field's value.
21825func (s *Paths) SetItems(v []*string) *Paths {
21826	s.Items = v
21827	return s
21828}
21829
21830// SetQuantity sets the Quantity field's value.
21831func (s *Paths) SetQuantity(v int64) *Paths {
21832	s.Quantity = &v
21833	return s
21834}
21835
21836// A public key that you can use with signed URLs and signed cookies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html),
21837// or with field-level encryption (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).
21838type PublicKey struct {
21839	_ struct{} `type:"structure"`
21840
21841	// The date and time when the public key was uploaded.
21842	//
21843	// CreatedTime is a required field
21844	CreatedTime *time.Time `type:"timestamp" required:"true"`
21845
21846	// The identifier of the public key.
21847	//
21848	// Id is a required field
21849	Id *string `type:"string" required:"true"`
21850
21851	// Configuration information about a public key that you can use with signed
21852	// URLs and signed cookies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html),
21853	// or with field-level encryption (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).
21854	//
21855	// PublicKeyConfig is a required field
21856	PublicKeyConfig *PublicKeyConfig `type:"structure" required:"true"`
21857}
21858
21859// String returns the string representation
21860func (s PublicKey) String() string {
21861	return awsutil.Prettify(s)
21862}
21863
21864// GoString returns the string representation
21865func (s PublicKey) GoString() string {
21866	return s.String()
21867}
21868
21869// SetCreatedTime sets the CreatedTime field's value.
21870func (s *PublicKey) SetCreatedTime(v time.Time) *PublicKey {
21871	s.CreatedTime = &v
21872	return s
21873}
21874
21875// SetId sets the Id field's value.
21876func (s *PublicKey) SetId(v string) *PublicKey {
21877	s.Id = &v
21878	return s
21879}
21880
21881// SetPublicKeyConfig sets the PublicKeyConfig field's value.
21882func (s *PublicKey) SetPublicKeyConfig(v *PublicKeyConfig) *PublicKey {
21883	s.PublicKeyConfig = v
21884	return s
21885}
21886
21887// Configuration information about a public key that you can use with signed
21888// URLs and signed cookies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html),
21889// or with field-level encryption (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).
21890type PublicKeyConfig struct {
21891	_ struct{} `type:"structure"`
21892
21893	// A string included in the request to help make sure that the request can’t
21894	// be replayed.
21895	//
21896	// CallerReference is a required field
21897	CallerReference *string `type:"string" required:"true"`
21898
21899	// A comment to describe the public key. The comment cannot be longer than 128
21900	// characters.
21901	Comment *string `type:"string"`
21902
21903	// The public key that you can use with signed URLs and signed cookies (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html),
21904	// or with field-level encryption (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).
21905	//
21906	// EncodedKey is a required field
21907	EncodedKey *string `type:"string" required:"true"`
21908
21909	// A name to help identify the public key.
21910	//
21911	// Name is a required field
21912	Name *string `type:"string" required:"true"`
21913}
21914
21915// String returns the string representation
21916func (s PublicKeyConfig) String() string {
21917	return awsutil.Prettify(s)
21918}
21919
21920// GoString returns the string representation
21921func (s PublicKeyConfig) GoString() string {
21922	return s.String()
21923}
21924
21925// Validate inspects the fields of the type to determine if they are valid.
21926func (s *PublicKeyConfig) Validate() error {
21927	invalidParams := request.ErrInvalidParams{Context: "PublicKeyConfig"}
21928	if s.CallerReference == nil {
21929		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
21930	}
21931	if s.EncodedKey == nil {
21932		invalidParams.Add(request.NewErrParamRequired("EncodedKey"))
21933	}
21934	if s.Name == nil {
21935		invalidParams.Add(request.NewErrParamRequired("Name"))
21936	}
21937
21938	if invalidParams.Len() > 0 {
21939		return invalidParams
21940	}
21941	return nil
21942}
21943
21944// SetCallerReference sets the CallerReference field's value.
21945func (s *PublicKeyConfig) SetCallerReference(v string) *PublicKeyConfig {
21946	s.CallerReference = &v
21947	return s
21948}
21949
21950// SetComment sets the Comment field's value.
21951func (s *PublicKeyConfig) SetComment(v string) *PublicKeyConfig {
21952	s.Comment = &v
21953	return s
21954}
21955
21956// SetEncodedKey sets the EncodedKey field's value.
21957func (s *PublicKeyConfig) SetEncodedKey(v string) *PublicKeyConfig {
21958	s.EncodedKey = &v
21959	return s
21960}
21961
21962// SetName sets the Name field's value.
21963func (s *PublicKeyConfig) SetName(v string) *PublicKeyConfig {
21964	s.Name = &v
21965	return s
21966}
21967
21968// A list of public keys that you can use with signed URLs and signed cookies
21969// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html),
21970// or with field-level encryption (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).
21971type PublicKeyList struct {
21972	_ struct{} `type:"structure"`
21973
21974	// A list of public keys.
21975	Items []*PublicKeySummary `locationNameList:"PublicKeySummary" type:"list"`
21976
21977	// The maximum number of public keys you want in the response.
21978	//
21979	// MaxItems is a required field
21980	MaxItems *int64 `type:"integer" required:"true"`
21981
21982	// If there are more elements to be listed, this element is present and contains
21983	// the value that you can use for the Marker request parameter to continue listing
21984	// your public keys where you left off.
21985	NextMarker *string `type:"string"`
21986
21987	// The number of public keys in the list.
21988	//
21989	// Quantity is a required field
21990	Quantity *int64 `type:"integer" required:"true"`
21991}
21992
21993// String returns the string representation
21994func (s PublicKeyList) String() string {
21995	return awsutil.Prettify(s)
21996}
21997
21998// GoString returns the string representation
21999func (s PublicKeyList) GoString() string {
22000	return s.String()
22001}
22002
22003// SetItems sets the Items field's value.
22004func (s *PublicKeyList) SetItems(v []*PublicKeySummary) *PublicKeyList {
22005	s.Items = v
22006	return s
22007}
22008
22009// SetMaxItems sets the MaxItems field's value.
22010func (s *PublicKeyList) SetMaxItems(v int64) *PublicKeyList {
22011	s.MaxItems = &v
22012	return s
22013}
22014
22015// SetNextMarker sets the NextMarker field's value.
22016func (s *PublicKeyList) SetNextMarker(v string) *PublicKeyList {
22017	s.NextMarker = &v
22018	return s
22019}
22020
22021// SetQuantity sets the Quantity field's value.
22022func (s *PublicKeyList) SetQuantity(v int64) *PublicKeyList {
22023	s.Quantity = &v
22024	return s
22025}
22026
22027// Contains information about a public key.
22028type PublicKeySummary struct {
22029	_ struct{} `type:"structure"`
22030
22031	// A comment to describe the public key. The comment cannot be longer than 128
22032	// characters.
22033	Comment *string `type:"string"`
22034
22035	// The date and time when the public key was uploaded.
22036	//
22037	// CreatedTime is a required field
22038	CreatedTime *time.Time `type:"timestamp" required:"true"`
22039
22040	// The public key.
22041	//
22042	// EncodedKey is a required field
22043	EncodedKey *string `type:"string" required:"true"`
22044
22045	// The identifier of the public key.
22046	//
22047	// Id is a required field
22048	Id *string `type:"string" required:"true"`
22049
22050	// A name to help identify the public key.
22051	//
22052	// Name is a required field
22053	Name *string `type:"string" required:"true"`
22054}
22055
22056// String returns the string representation
22057func (s PublicKeySummary) String() string {
22058	return awsutil.Prettify(s)
22059}
22060
22061// GoString returns the string representation
22062func (s PublicKeySummary) GoString() string {
22063	return s.String()
22064}
22065
22066// SetComment sets the Comment field's value.
22067func (s *PublicKeySummary) SetComment(v string) *PublicKeySummary {
22068	s.Comment = &v
22069	return s
22070}
22071
22072// SetCreatedTime sets the CreatedTime field's value.
22073func (s *PublicKeySummary) SetCreatedTime(v time.Time) *PublicKeySummary {
22074	s.CreatedTime = &v
22075	return s
22076}
22077
22078// SetEncodedKey sets the EncodedKey field's value.
22079func (s *PublicKeySummary) SetEncodedKey(v string) *PublicKeySummary {
22080	s.EncodedKey = &v
22081	return s
22082}
22083
22084// SetId sets the Id field's value.
22085func (s *PublicKeySummary) SetId(v string) *PublicKeySummary {
22086	s.Id = &v
22087	return s
22088}
22089
22090// SetName sets the Name field's value.
22091func (s *PublicKeySummary) SetName(v string) *PublicKeySummary {
22092	s.Name = &v
22093	return s
22094}
22095
22096type PublishFunctionInput struct {
22097	_ struct{} `locationName:"PublishFunctionRequest" type:"structure"`
22098
22099	// The current version (ETag value) of the function that you are publishing,
22100	// which you can get using DescribeFunction.
22101	//
22102	// IfMatch is a required field
22103	IfMatch *string `location:"header" locationName:"If-Match" type:"string" required:"true"`
22104
22105	// The name of the function that you are publishing.
22106	//
22107	// Name is a required field
22108	Name *string `location:"uri" locationName:"Name" type:"string" required:"true"`
22109}
22110
22111// String returns the string representation
22112func (s PublishFunctionInput) String() string {
22113	return awsutil.Prettify(s)
22114}
22115
22116// GoString returns the string representation
22117func (s PublishFunctionInput) GoString() string {
22118	return s.String()
22119}
22120
22121// Validate inspects the fields of the type to determine if they are valid.
22122func (s *PublishFunctionInput) Validate() error {
22123	invalidParams := request.ErrInvalidParams{Context: "PublishFunctionInput"}
22124	if s.IfMatch == nil {
22125		invalidParams.Add(request.NewErrParamRequired("IfMatch"))
22126	}
22127	if s.Name == nil {
22128		invalidParams.Add(request.NewErrParamRequired("Name"))
22129	}
22130	if s.Name != nil && len(*s.Name) < 1 {
22131		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
22132	}
22133
22134	if invalidParams.Len() > 0 {
22135		return invalidParams
22136	}
22137	return nil
22138}
22139
22140// SetIfMatch sets the IfMatch field's value.
22141func (s *PublishFunctionInput) SetIfMatch(v string) *PublishFunctionInput {
22142	s.IfMatch = &v
22143	return s
22144}
22145
22146// SetName sets the Name field's value.
22147func (s *PublishFunctionInput) SetName(v string) *PublishFunctionInput {
22148	s.Name = &v
22149	return s
22150}
22151
22152type PublishFunctionOutput struct {
22153	_ struct{} `type:"structure" payload:"FunctionSummary"`
22154
22155	// Contains configuration information and metadata about a CloudFront function.
22156	FunctionSummary *FunctionSummary `type:"structure"`
22157}
22158
22159// String returns the string representation
22160func (s PublishFunctionOutput) String() string {
22161	return awsutil.Prettify(s)
22162}
22163
22164// GoString returns the string representation
22165func (s PublishFunctionOutput) GoString() string {
22166	return s.String()
22167}
22168
22169// SetFunctionSummary sets the FunctionSummary field's value.
22170func (s *PublishFunctionOutput) SetFunctionSummary(v *FunctionSummary) *PublishFunctionOutput {
22171	s.FunctionSummary = v
22172	return s
22173}
22174
22175// Query argument-profile mapping for field-level encryption.
22176type QueryArgProfile struct {
22177	_ struct{} `type:"structure"`
22178
22179	// ID of profile to use for field-level encryption query argument-profile mapping
22180	//
22181	// ProfileId is a required field
22182	ProfileId *string `type:"string" required:"true"`
22183
22184	// Query argument for field-level encryption query argument-profile mapping.
22185	//
22186	// QueryArg is a required field
22187	QueryArg *string `type:"string" required:"true"`
22188}
22189
22190// String returns the string representation
22191func (s QueryArgProfile) String() string {
22192	return awsutil.Prettify(s)
22193}
22194
22195// GoString returns the string representation
22196func (s QueryArgProfile) GoString() string {
22197	return s.String()
22198}
22199
22200// Validate inspects the fields of the type to determine if they are valid.
22201func (s *QueryArgProfile) Validate() error {
22202	invalidParams := request.ErrInvalidParams{Context: "QueryArgProfile"}
22203	if s.ProfileId == nil {
22204		invalidParams.Add(request.NewErrParamRequired("ProfileId"))
22205	}
22206	if s.QueryArg == nil {
22207		invalidParams.Add(request.NewErrParamRequired("QueryArg"))
22208	}
22209
22210	if invalidParams.Len() > 0 {
22211		return invalidParams
22212	}
22213	return nil
22214}
22215
22216// SetProfileId sets the ProfileId field's value.
22217func (s *QueryArgProfile) SetProfileId(v string) *QueryArgProfile {
22218	s.ProfileId = &v
22219	return s
22220}
22221
22222// SetQueryArg sets the QueryArg field's value.
22223func (s *QueryArgProfile) SetQueryArg(v string) *QueryArgProfile {
22224	s.QueryArg = &v
22225	return s
22226}
22227
22228// Configuration for query argument-profile mapping for field-level encryption.
22229type QueryArgProfileConfig struct {
22230	_ struct{} `type:"structure"`
22231
22232	// Flag to set if you want a request to be forwarded to the origin even if the
22233	// profile specified by the field-level encryption query argument, fle-profile,
22234	// is unknown.
22235	//
22236	// ForwardWhenQueryArgProfileIsUnknown is a required field
22237	ForwardWhenQueryArgProfileIsUnknown *bool `type:"boolean" required:"true"`
22238
22239	// Profiles specified for query argument-profile mapping for field-level encryption.
22240	QueryArgProfiles *QueryArgProfiles `type:"structure"`
22241}
22242
22243// String returns the string representation
22244func (s QueryArgProfileConfig) String() string {
22245	return awsutil.Prettify(s)
22246}
22247
22248// GoString returns the string representation
22249func (s QueryArgProfileConfig) GoString() string {
22250	return s.String()
22251}
22252
22253// Validate inspects the fields of the type to determine if they are valid.
22254func (s *QueryArgProfileConfig) Validate() error {
22255	invalidParams := request.ErrInvalidParams{Context: "QueryArgProfileConfig"}
22256	if s.ForwardWhenQueryArgProfileIsUnknown == nil {
22257		invalidParams.Add(request.NewErrParamRequired("ForwardWhenQueryArgProfileIsUnknown"))
22258	}
22259	if s.QueryArgProfiles != nil {
22260		if err := s.QueryArgProfiles.Validate(); err != nil {
22261			invalidParams.AddNested("QueryArgProfiles", err.(request.ErrInvalidParams))
22262		}
22263	}
22264
22265	if invalidParams.Len() > 0 {
22266		return invalidParams
22267	}
22268	return nil
22269}
22270
22271// SetForwardWhenQueryArgProfileIsUnknown sets the ForwardWhenQueryArgProfileIsUnknown field's value.
22272func (s *QueryArgProfileConfig) SetForwardWhenQueryArgProfileIsUnknown(v bool) *QueryArgProfileConfig {
22273	s.ForwardWhenQueryArgProfileIsUnknown = &v
22274	return s
22275}
22276
22277// SetQueryArgProfiles sets the QueryArgProfiles field's value.
22278func (s *QueryArgProfileConfig) SetQueryArgProfiles(v *QueryArgProfiles) *QueryArgProfileConfig {
22279	s.QueryArgProfiles = v
22280	return s
22281}
22282
22283// Query argument-profile mapping for field-level encryption.
22284type QueryArgProfiles struct {
22285	_ struct{} `type:"structure"`
22286
22287	// Number of items for query argument-profile mapping for field-level encryption.
22288	Items []*QueryArgProfile `locationNameList:"QueryArgProfile" type:"list"`
22289
22290	// Number of profiles for query argument-profile mapping for field-level encryption.
22291	//
22292	// Quantity is a required field
22293	Quantity *int64 `type:"integer" required:"true"`
22294}
22295
22296// String returns the string representation
22297func (s QueryArgProfiles) String() string {
22298	return awsutil.Prettify(s)
22299}
22300
22301// GoString returns the string representation
22302func (s QueryArgProfiles) GoString() string {
22303	return s.String()
22304}
22305
22306// Validate inspects the fields of the type to determine if they are valid.
22307func (s *QueryArgProfiles) Validate() error {
22308	invalidParams := request.ErrInvalidParams{Context: "QueryArgProfiles"}
22309	if s.Quantity == nil {
22310		invalidParams.Add(request.NewErrParamRequired("Quantity"))
22311	}
22312	if s.Items != nil {
22313		for i, v := range s.Items {
22314			if v == nil {
22315				continue
22316			}
22317			if err := v.Validate(); err != nil {
22318				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
22319			}
22320		}
22321	}
22322
22323	if invalidParams.Len() > 0 {
22324		return invalidParams
22325	}
22326	return nil
22327}
22328
22329// SetItems sets the Items field's value.
22330func (s *QueryArgProfiles) SetItems(v []*QueryArgProfile) *QueryArgProfiles {
22331	s.Items = v
22332	return s
22333}
22334
22335// SetQuantity sets the Quantity field's value.
22336func (s *QueryArgProfiles) SetQuantity(v int64) *QueryArgProfiles {
22337	s.Quantity = &v
22338	return s
22339}
22340
22341// This field is deprecated. We recommend that you use a cache policy or an
22342// origin request policy instead of this field.
22343//
22344// If you want to include query strings in the cache key, use QueryStringsConfig
22345// in a cache policy. See CachePolicy.
22346//
22347// If you want to send query strings to the origin but not include them in the
22348// cache key, use QueryStringsConfig in an origin request policy. See OriginRequestPolicy.
22349//
22350// A complex type that contains information about the query string parameters
22351// that you want CloudFront to use for caching for a cache behavior.
22352type QueryStringCacheKeys struct {
22353	_ struct{} `type:"structure"`
22354
22355	// A list that contains the query string parameters that you want CloudFront
22356	// to use as a basis for caching for a cache behavior. If Quantity is 0, you
22357	// can omit Items.
22358	Items []*string `locationNameList:"Name" type:"list"`
22359
22360	// The number of whitelisted query string parameters for a cache behavior.
22361	//
22362	// Quantity is a required field
22363	Quantity *int64 `type:"integer" required:"true"`
22364}
22365
22366// String returns the string representation
22367func (s QueryStringCacheKeys) String() string {
22368	return awsutil.Prettify(s)
22369}
22370
22371// GoString returns the string representation
22372func (s QueryStringCacheKeys) GoString() string {
22373	return s.String()
22374}
22375
22376// Validate inspects the fields of the type to determine if they are valid.
22377func (s *QueryStringCacheKeys) Validate() error {
22378	invalidParams := request.ErrInvalidParams{Context: "QueryStringCacheKeys"}
22379	if s.Quantity == nil {
22380		invalidParams.Add(request.NewErrParamRequired("Quantity"))
22381	}
22382
22383	if invalidParams.Len() > 0 {
22384		return invalidParams
22385	}
22386	return nil
22387}
22388
22389// SetItems sets the Items field's value.
22390func (s *QueryStringCacheKeys) SetItems(v []*string) *QueryStringCacheKeys {
22391	s.Items = v
22392	return s
22393}
22394
22395// SetQuantity sets the Quantity field's value.
22396func (s *QueryStringCacheKeys) SetQuantity(v int64) *QueryStringCacheKeys {
22397	s.Quantity = &v
22398	return s
22399}
22400
22401// Contains a list of query string names.
22402type QueryStringNames struct {
22403	_ struct{} `type:"structure"`
22404
22405	// A list of query string names.
22406	Items []*string `locationNameList:"Name" type:"list"`
22407
22408	// The number of query string names in the Items list.
22409	//
22410	// Quantity is a required field
22411	Quantity *int64 `type:"integer" required:"true"`
22412}
22413
22414// String returns the string representation
22415func (s QueryStringNames) String() string {
22416	return awsutil.Prettify(s)
22417}
22418
22419// GoString returns the string representation
22420func (s QueryStringNames) GoString() string {
22421	return s.String()
22422}
22423
22424// Validate inspects the fields of the type to determine if they are valid.
22425func (s *QueryStringNames) Validate() error {
22426	invalidParams := request.ErrInvalidParams{Context: "QueryStringNames"}
22427	if s.Quantity == nil {
22428		invalidParams.Add(request.NewErrParamRequired("Quantity"))
22429	}
22430
22431	if invalidParams.Len() > 0 {
22432		return invalidParams
22433	}
22434	return nil
22435}
22436
22437// SetItems sets the Items field's value.
22438func (s *QueryStringNames) SetItems(v []*string) *QueryStringNames {
22439	s.Items = v
22440	return s
22441}
22442
22443// SetQuantity sets the Quantity field's value.
22444func (s *QueryStringNames) SetQuantity(v int64) *QueryStringNames {
22445	s.Quantity = &v
22446	return s
22447}
22448
22449// A real-time log configuration.
22450type RealtimeLogConfig struct {
22451	_ struct{} `type:"structure"`
22452
22453	// The Amazon Resource Name (ARN) of this real-time log configuration.
22454	//
22455	// ARN is a required field
22456	ARN *string `type:"string" required:"true"`
22457
22458	// Contains information about the Amazon Kinesis data stream where you are sending
22459	// real-time log data for this real-time log configuration.
22460	//
22461	// EndPoints is a required field
22462	EndPoints []*EndPoint `type:"list" required:"true"`
22463
22464	// A list of fields that are included in each real-time log record. In an API
22465	// response, the fields are provided in the same order in which they are sent
22466	// to the Amazon Kinesis data stream.
22467	//
22468	// For more information about fields, see Real-time log configuration fields
22469	// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields)
22470	// in the Amazon CloudFront Developer Guide.
22471	//
22472	// Fields is a required field
22473	Fields []*string `locationNameList:"Field" type:"list" required:"true"`
22474
22475	// The unique name of this real-time log configuration.
22476	//
22477	// Name is a required field
22478	Name *string `type:"string" required:"true"`
22479
22480	// The sampling rate for this real-time log configuration. The sampling rate
22481	// determines the percentage of viewer requests that are represented in the
22482	// real-time log data. The sampling rate is an integer between 1 and 100, inclusive.
22483	//
22484	// SamplingRate is a required field
22485	SamplingRate *int64 `type:"long" required:"true"`
22486}
22487
22488// String returns the string representation
22489func (s RealtimeLogConfig) String() string {
22490	return awsutil.Prettify(s)
22491}
22492
22493// GoString returns the string representation
22494func (s RealtimeLogConfig) GoString() string {
22495	return s.String()
22496}
22497
22498// SetARN sets the ARN field's value.
22499func (s *RealtimeLogConfig) SetARN(v string) *RealtimeLogConfig {
22500	s.ARN = &v
22501	return s
22502}
22503
22504// SetEndPoints sets the EndPoints field's value.
22505func (s *RealtimeLogConfig) SetEndPoints(v []*EndPoint) *RealtimeLogConfig {
22506	s.EndPoints = v
22507	return s
22508}
22509
22510// SetFields sets the Fields field's value.
22511func (s *RealtimeLogConfig) SetFields(v []*string) *RealtimeLogConfig {
22512	s.Fields = v
22513	return s
22514}
22515
22516// SetName sets the Name field's value.
22517func (s *RealtimeLogConfig) SetName(v string) *RealtimeLogConfig {
22518	s.Name = &v
22519	return s
22520}
22521
22522// SetSamplingRate sets the SamplingRate field's value.
22523func (s *RealtimeLogConfig) SetSamplingRate(v int64) *RealtimeLogConfig {
22524	s.SamplingRate = &v
22525	return s
22526}
22527
22528// A list of real-time log configurations.
22529type RealtimeLogConfigs struct {
22530	_ struct{} `type:"structure"`
22531
22532	// A flag that indicates whether there are more real-time log configurations
22533	// than are contained in this list.
22534	//
22535	// IsTruncated is a required field
22536	IsTruncated *bool `type:"boolean" required:"true"`
22537
22538	// Contains the list of real-time log configurations.
22539	Items []*RealtimeLogConfig `type:"list"`
22540
22541	// This parameter indicates where this list of real-time log configurations
22542	// begins. This list includes real-time log configurations that occur after
22543	// the marker.
22544	//
22545	// Marker is a required field
22546	Marker *string `type:"string" required:"true"`
22547
22548	// The maximum number of real-time log configurations requested.
22549	//
22550	// MaxItems is a required field
22551	MaxItems *int64 `type:"integer" required:"true"`
22552
22553	// If there are more items in the list than are in this response, this element
22554	// is present. It contains the value that you should use in the Marker field
22555	// of a subsequent request to continue listing real-time log configurations
22556	// where you left off.
22557	NextMarker *string `type:"string"`
22558}
22559
22560// String returns the string representation
22561func (s RealtimeLogConfigs) String() string {
22562	return awsutil.Prettify(s)
22563}
22564
22565// GoString returns the string representation
22566func (s RealtimeLogConfigs) GoString() string {
22567	return s.String()
22568}
22569
22570// SetIsTruncated sets the IsTruncated field's value.
22571func (s *RealtimeLogConfigs) SetIsTruncated(v bool) *RealtimeLogConfigs {
22572	s.IsTruncated = &v
22573	return s
22574}
22575
22576// SetItems sets the Items field's value.
22577func (s *RealtimeLogConfigs) SetItems(v []*RealtimeLogConfig) *RealtimeLogConfigs {
22578	s.Items = v
22579	return s
22580}
22581
22582// SetMarker sets the Marker field's value.
22583func (s *RealtimeLogConfigs) SetMarker(v string) *RealtimeLogConfigs {
22584	s.Marker = &v
22585	return s
22586}
22587
22588// SetMaxItems sets the MaxItems field's value.
22589func (s *RealtimeLogConfigs) SetMaxItems(v int64) *RealtimeLogConfigs {
22590	s.MaxItems = &v
22591	return s
22592}
22593
22594// SetNextMarker sets the NextMarker field's value.
22595func (s *RealtimeLogConfigs) SetNextMarker(v string) *RealtimeLogConfigs {
22596	s.NextMarker = &v
22597	return s
22598}
22599
22600// A subscription configuration for additional CloudWatch metrics.
22601type RealtimeMetricsSubscriptionConfig struct {
22602	_ struct{} `type:"structure"`
22603
22604	// A flag that indicates whether additional CloudWatch metrics are enabled for
22605	// a given CloudFront distribution.
22606	//
22607	// RealtimeMetricsSubscriptionStatus is a required field
22608	RealtimeMetricsSubscriptionStatus *string `type:"string" required:"true" enum:"RealtimeMetricsSubscriptionStatus"`
22609}
22610
22611// String returns the string representation
22612func (s RealtimeMetricsSubscriptionConfig) String() string {
22613	return awsutil.Prettify(s)
22614}
22615
22616// GoString returns the string representation
22617func (s RealtimeMetricsSubscriptionConfig) GoString() string {
22618	return s.String()
22619}
22620
22621// Validate inspects the fields of the type to determine if they are valid.
22622func (s *RealtimeMetricsSubscriptionConfig) Validate() error {
22623	invalidParams := request.ErrInvalidParams{Context: "RealtimeMetricsSubscriptionConfig"}
22624	if s.RealtimeMetricsSubscriptionStatus == nil {
22625		invalidParams.Add(request.NewErrParamRequired("RealtimeMetricsSubscriptionStatus"))
22626	}
22627
22628	if invalidParams.Len() > 0 {
22629		return invalidParams
22630	}
22631	return nil
22632}
22633
22634// SetRealtimeMetricsSubscriptionStatus sets the RealtimeMetricsSubscriptionStatus field's value.
22635func (s *RealtimeMetricsSubscriptionConfig) SetRealtimeMetricsSubscriptionStatus(v string) *RealtimeMetricsSubscriptionConfig {
22636	s.RealtimeMetricsSubscriptionStatus = &v
22637	return s
22638}
22639
22640// A complex type that identifies ways in which you want to restrict distribution
22641// of your content.
22642type Restrictions struct {
22643	_ struct{} `type:"structure"`
22644
22645	// A complex type that controls the countries in which your content is distributed.
22646	// CloudFront determines the location of your users using MaxMind GeoIP databases.
22647	//
22648	// GeoRestriction is a required field
22649	GeoRestriction *GeoRestriction `type:"structure" required:"true"`
22650}
22651
22652// String returns the string representation
22653func (s Restrictions) String() string {
22654	return awsutil.Prettify(s)
22655}
22656
22657// GoString returns the string representation
22658func (s Restrictions) GoString() string {
22659	return s.String()
22660}
22661
22662// Validate inspects the fields of the type to determine if they are valid.
22663func (s *Restrictions) Validate() error {
22664	invalidParams := request.ErrInvalidParams{Context: "Restrictions"}
22665	if s.GeoRestriction == nil {
22666		invalidParams.Add(request.NewErrParamRequired("GeoRestriction"))
22667	}
22668	if s.GeoRestriction != nil {
22669		if err := s.GeoRestriction.Validate(); err != nil {
22670			invalidParams.AddNested("GeoRestriction", err.(request.ErrInvalidParams))
22671		}
22672	}
22673
22674	if invalidParams.Len() > 0 {
22675		return invalidParams
22676	}
22677	return nil
22678}
22679
22680// SetGeoRestriction sets the GeoRestriction field's value.
22681func (s *Restrictions) SetGeoRestriction(v *GeoRestriction) *Restrictions {
22682	s.GeoRestriction = v
22683	return s
22684}
22685
22686// A complex type that contains information about the Amazon S3 bucket from
22687// which you want CloudFront to get your media files for distribution.
22688type S3Origin struct {
22689	_ struct{} `type:"structure"`
22690
22691	// The DNS name of the Amazon S3 origin.
22692	//
22693	// DomainName is a required field
22694	DomainName *string `type:"string" required:"true"`
22695
22696	// The CloudFront origin access identity to associate with the distribution.
22697	// Use an origin access identity to configure the distribution so that end users
22698	// can only access objects in an Amazon S3 bucket through CloudFront.
22699	//
22700	// If you want end users to be able to access objects using either the CloudFront
22701	// URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element.
22702	//
22703	// To delete the origin access identity from an existing distribution, update
22704	// the distribution configuration and include an empty OriginAccessIdentity
22705	// element.
22706	//
22707	// To replace the origin access identity, update the distribution configuration
22708	// and specify the new origin access identity.
22709	//
22710	// For more information, see Using an Origin Access Identity to Restrict Access
22711	// to Your Amazon S3 Content (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)
22712	// in the Amazon CloudFront Developer Guide.
22713	//
22714	// OriginAccessIdentity is a required field
22715	OriginAccessIdentity *string `type:"string" required:"true"`
22716}
22717
22718// String returns the string representation
22719func (s S3Origin) String() string {
22720	return awsutil.Prettify(s)
22721}
22722
22723// GoString returns the string representation
22724func (s S3Origin) GoString() string {
22725	return s.String()
22726}
22727
22728// Validate inspects the fields of the type to determine if they are valid.
22729func (s *S3Origin) Validate() error {
22730	invalidParams := request.ErrInvalidParams{Context: "S3Origin"}
22731	if s.DomainName == nil {
22732		invalidParams.Add(request.NewErrParamRequired("DomainName"))
22733	}
22734	if s.OriginAccessIdentity == nil {
22735		invalidParams.Add(request.NewErrParamRequired("OriginAccessIdentity"))
22736	}
22737
22738	if invalidParams.Len() > 0 {
22739		return invalidParams
22740	}
22741	return nil
22742}
22743
22744// SetDomainName sets the DomainName field's value.
22745func (s *S3Origin) SetDomainName(v string) *S3Origin {
22746	s.DomainName = &v
22747	return s
22748}
22749
22750// SetOriginAccessIdentity sets the OriginAccessIdentity field's value.
22751func (s *S3Origin) SetOriginAccessIdentity(v string) *S3Origin {
22752	s.OriginAccessIdentity = &v
22753	return s
22754}
22755
22756// A complex type that contains information about the Amazon S3 origin. If the
22757// origin is a custom origin or an S3 bucket that is configured as a website
22758// endpoint, use the CustomOriginConfig element instead.
22759type S3OriginConfig struct {
22760	_ struct{} `type:"structure"`
22761
22762	// The CloudFront origin access identity to associate with the origin. Use an
22763	// origin access identity to configure the origin so that viewers can only access
22764	// objects in an Amazon S3 bucket through CloudFront. The format of the value
22765	// is:
22766	//
22767	// origin-access-identity/cloudfront/ID-of-origin-access-identity
22768	//
22769	// where ID-of-origin-access-identity is the value that CloudFront returned
22770	// in the ID element when you created the origin access identity.
22771	//
22772	// If you want viewers to be able to access objects using either the CloudFront
22773	// URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element.
22774	//
22775	// To delete the origin access identity from an existing distribution, update
22776	// the distribution configuration and include an empty OriginAccessIdentity
22777	// element.
22778	//
22779	// To replace the origin access identity, update the distribution configuration
22780	// and specify the new origin access identity.
22781	//
22782	// For more information about the origin access identity, see Serving Private
22783	// Content through CloudFront (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html)
22784	// in the Amazon CloudFront Developer Guide.
22785	//
22786	// OriginAccessIdentity is a required field
22787	OriginAccessIdentity *string `type:"string" required:"true"`
22788}
22789
22790// String returns the string representation
22791func (s S3OriginConfig) String() string {
22792	return awsutil.Prettify(s)
22793}
22794
22795// GoString returns the string representation
22796func (s S3OriginConfig) GoString() string {
22797	return s.String()
22798}
22799
22800// Validate inspects the fields of the type to determine if they are valid.
22801func (s *S3OriginConfig) Validate() error {
22802	invalidParams := request.ErrInvalidParams{Context: "S3OriginConfig"}
22803	if s.OriginAccessIdentity == nil {
22804		invalidParams.Add(request.NewErrParamRequired("OriginAccessIdentity"))
22805	}
22806
22807	if invalidParams.Len() > 0 {
22808		return invalidParams
22809	}
22810	return nil
22811}
22812
22813// SetOriginAccessIdentity sets the OriginAccessIdentity field's value.
22814func (s *S3OriginConfig) SetOriginAccessIdentity(v string) *S3OriginConfig {
22815	s.OriginAccessIdentity = &v
22816	return s
22817}
22818
22819// A list of accounts and the active CloudFront key pairs in each account that
22820// CloudFront can use to verify the signatures of signed URLs and signed cookies.
22821type Signer struct {
22822	_ struct{} `type:"structure"`
22823
22824	// An account number that contains active CloudFront key pairs that CloudFront
22825	// can use to verify the signatures of signed URLs and signed cookies. If the
22826	// account that owns the key pairs is the same account that owns the CloudFront
22827	// distribution, the value of this field is self.
22828	AwsAccountNumber *string `type:"string"`
22829
22830	// A list of CloudFront key pair identifiers.
22831	KeyPairIds *KeyPairIds `type:"structure"`
22832}
22833
22834// String returns the string representation
22835func (s Signer) String() string {
22836	return awsutil.Prettify(s)
22837}
22838
22839// GoString returns the string representation
22840func (s Signer) GoString() string {
22841	return s.String()
22842}
22843
22844// SetAwsAccountNumber sets the AwsAccountNumber field's value.
22845func (s *Signer) SetAwsAccountNumber(v string) *Signer {
22846	s.AwsAccountNumber = &v
22847	return s
22848}
22849
22850// SetKeyPairIds sets the KeyPairIds field's value.
22851func (s *Signer) SetKeyPairIds(v *KeyPairIds) *Signer {
22852	s.KeyPairIds = v
22853	return s
22854}
22855
22856// A complex data type for the status codes that you specify that, when returned
22857// by a primary origin, trigger CloudFront to failover to a second origin.
22858type StatusCodes struct {
22859	_ struct{} `type:"structure"`
22860
22861	// The items (status codes) for an origin group.
22862	//
22863	// Items is a required field
22864	Items []*int64 `locationNameList:"StatusCode" min:"1" type:"list" required:"true"`
22865
22866	// The number of status codes.
22867	//
22868	// Quantity is a required field
22869	Quantity *int64 `type:"integer" required:"true"`
22870}
22871
22872// String returns the string representation
22873func (s StatusCodes) String() string {
22874	return awsutil.Prettify(s)
22875}
22876
22877// GoString returns the string representation
22878func (s StatusCodes) GoString() string {
22879	return s.String()
22880}
22881
22882// Validate inspects the fields of the type to determine if they are valid.
22883func (s *StatusCodes) Validate() error {
22884	invalidParams := request.ErrInvalidParams{Context: "StatusCodes"}
22885	if s.Items == nil {
22886		invalidParams.Add(request.NewErrParamRequired("Items"))
22887	}
22888	if s.Items != nil && len(s.Items) < 1 {
22889		invalidParams.Add(request.NewErrParamMinLen("Items", 1))
22890	}
22891	if s.Quantity == nil {
22892		invalidParams.Add(request.NewErrParamRequired("Quantity"))
22893	}
22894
22895	if invalidParams.Len() > 0 {
22896		return invalidParams
22897	}
22898	return nil
22899}
22900
22901// SetItems sets the Items field's value.
22902func (s *StatusCodes) SetItems(v []*int64) *StatusCodes {
22903	s.Items = v
22904	return s
22905}
22906
22907// SetQuantity sets the Quantity field's value.
22908func (s *StatusCodes) SetQuantity(v int64) *StatusCodes {
22909	s.Quantity = &v
22910	return s
22911}
22912
22913// A streaming distribution tells CloudFront where you want RTMP content to
22914// be delivered from, and the details about how to track and manage content
22915// delivery.
22916type StreamingDistribution struct {
22917	_ struct{} `type:"structure"`
22918
22919	// The ARN (Amazon Resource Name) for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5,
22920	// where 123456789012 is your account ID.
22921	//
22922	// ARN is a required field
22923	ARN *string `type:"string" required:"true"`
22924
22925	// A complex type that lists the accounts, if any, that you included in the
22926	// TrustedSigners complex type for this distribution. These are the accounts
22927	// that you want to allow to create signed URLs for private content.
22928	//
22929	// The Signer complex type lists the account number of the trusted signer or
22930	// self if the signer is the account that created the distribution. The Signer
22931	// element also includes the IDs of any active CloudFront key pairs that are
22932	// associated with the trusted signer's account. If no KeyPairId element appears
22933	// for a Signer, that signer can't create signed URLs.
22934	//
22935	// For more information, see Serving Private Content through CloudFront (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html)
22936	// in the Amazon CloudFront Developer Guide.
22937	//
22938	// ActiveTrustedSigners is a required field
22939	ActiveTrustedSigners *ActiveTrustedSigners `type:"structure" required:"true"`
22940
22941	// The domain name that corresponds to the streaming distribution, for example,
22942	// s5c39gqb8ow64r.cloudfront.net.
22943	//
22944	// DomainName is a required field
22945	DomainName *string `type:"string" required:"true"`
22946
22947	// The identifier for the RTMP distribution. For example: EGTXBD79EXAMPLE.
22948	//
22949	// Id is a required field
22950	Id *string `type:"string" required:"true"`
22951
22952	// The date and time that the distribution was last modified.
22953	LastModifiedTime *time.Time `type:"timestamp"`
22954
22955	// The current status of the RTMP distribution. When the status is Deployed,
22956	// the distribution's information is propagated to all CloudFront edge locations.
22957	//
22958	// Status is a required field
22959	Status *string `type:"string" required:"true"`
22960
22961	// The current configuration information for the RTMP distribution.
22962	//
22963	// StreamingDistributionConfig is a required field
22964	StreamingDistributionConfig *StreamingDistributionConfig `type:"structure" required:"true"`
22965}
22966
22967// String returns the string representation
22968func (s StreamingDistribution) String() string {
22969	return awsutil.Prettify(s)
22970}
22971
22972// GoString returns the string representation
22973func (s StreamingDistribution) GoString() string {
22974	return s.String()
22975}
22976
22977// SetARN sets the ARN field's value.
22978func (s *StreamingDistribution) SetARN(v string) *StreamingDistribution {
22979	s.ARN = &v
22980	return s
22981}
22982
22983// SetActiveTrustedSigners sets the ActiveTrustedSigners field's value.
22984func (s *StreamingDistribution) SetActiveTrustedSigners(v *ActiveTrustedSigners) *StreamingDistribution {
22985	s.ActiveTrustedSigners = v
22986	return s
22987}
22988
22989// SetDomainName sets the DomainName field's value.
22990func (s *StreamingDistribution) SetDomainName(v string) *StreamingDistribution {
22991	s.DomainName = &v
22992	return s
22993}
22994
22995// SetId sets the Id field's value.
22996func (s *StreamingDistribution) SetId(v string) *StreamingDistribution {
22997	s.Id = &v
22998	return s
22999}
23000
23001// SetLastModifiedTime sets the LastModifiedTime field's value.
23002func (s *StreamingDistribution) SetLastModifiedTime(v time.Time) *StreamingDistribution {
23003	s.LastModifiedTime = &v
23004	return s
23005}
23006
23007// SetStatus sets the Status field's value.
23008func (s *StreamingDistribution) SetStatus(v string) *StreamingDistribution {
23009	s.Status = &v
23010	return s
23011}
23012
23013// SetStreamingDistributionConfig sets the StreamingDistributionConfig field's value.
23014func (s *StreamingDistribution) SetStreamingDistributionConfig(v *StreamingDistributionConfig) *StreamingDistribution {
23015	s.StreamingDistributionConfig = v
23016	return s
23017}
23018
23019// The RTMP distribution's configuration information.
23020type StreamingDistributionConfig struct {
23021	_ struct{} `type:"structure"`
23022
23023	// A complex type that contains information about CNAMEs (alternate domain names),
23024	// if any, for this streaming distribution.
23025	Aliases *Aliases `type:"structure"`
23026
23027	// A unique value (for example, a date-time stamp) that ensures that the request
23028	// can't be replayed.
23029	//
23030	// If the value of CallerReference is new (regardless of the content of the
23031	// StreamingDistributionConfig object), CloudFront creates a new distribution.
23032	//
23033	// If CallerReference is a value that you already sent in a previous request
23034	// to create a distribution, CloudFront returns a DistributionAlreadyExists
23035	// error.
23036	//
23037	// CallerReference is a required field
23038	CallerReference *string `type:"string" required:"true"`
23039
23040	// Any comments you want to include about the streaming distribution.
23041	//
23042	// Comment is a required field
23043	Comment *string `type:"string" required:"true"`
23044
23045	// Whether the streaming distribution is enabled to accept user requests for
23046	// content.
23047	//
23048	// Enabled is a required field
23049	Enabled *bool `type:"boolean" required:"true"`
23050
23051	// A complex type that controls whether access logs are written for the streaming
23052	// distribution.
23053	Logging *StreamingLoggingConfig `type:"structure"`
23054
23055	// A complex type that contains information about price class for this streaming
23056	// distribution.
23057	PriceClass *string `type:"string" enum:"PriceClass"`
23058
23059	// A complex type that contains information about the Amazon S3 bucket from
23060	// which you want CloudFront to get your media files for distribution.
23061	//
23062	// S3Origin is a required field
23063	S3Origin *S3Origin `type:"structure" required:"true"`
23064
23065	// A complex type that specifies any accounts that you want to permit to create
23066	// signed URLs for private content. If you want the distribution to use signed
23067	// URLs, include this element; if you want the distribution to use public URLs,
23068	// remove this element. For more information, see Serving Private Content through
23069	// CloudFront (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html)
23070	// in the Amazon CloudFront Developer Guide.
23071	//
23072	// TrustedSigners is a required field
23073	TrustedSigners *TrustedSigners `type:"structure" required:"true"`
23074}
23075
23076// String returns the string representation
23077func (s StreamingDistributionConfig) String() string {
23078	return awsutil.Prettify(s)
23079}
23080
23081// GoString returns the string representation
23082func (s StreamingDistributionConfig) GoString() string {
23083	return s.String()
23084}
23085
23086// Validate inspects the fields of the type to determine if they are valid.
23087func (s *StreamingDistributionConfig) Validate() error {
23088	invalidParams := request.ErrInvalidParams{Context: "StreamingDistributionConfig"}
23089	if s.CallerReference == nil {
23090		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
23091	}
23092	if s.Comment == nil {
23093		invalidParams.Add(request.NewErrParamRequired("Comment"))
23094	}
23095	if s.Enabled == nil {
23096		invalidParams.Add(request.NewErrParamRequired("Enabled"))
23097	}
23098	if s.S3Origin == nil {
23099		invalidParams.Add(request.NewErrParamRequired("S3Origin"))
23100	}
23101	if s.TrustedSigners == nil {
23102		invalidParams.Add(request.NewErrParamRequired("TrustedSigners"))
23103	}
23104	if s.Aliases != nil {
23105		if err := s.Aliases.Validate(); err != nil {
23106			invalidParams.AddNested("Aliases", err.(request.ErrInvalidParams))
23107		}
23108	}
23109	if s.Logging != nil {
23110		if err := s.Logging.Validate(); err != nil {
23111			invalidParams.AddNested("Logging", err.(request.ErrInvalidParams))
23112		}
23113	}
23114	if s.S3Origin != nil {
23115		if err := s.S3Origin.Validate(); err != nil {
23116			invalidParams.AddNested("S3Origin", err.(request.ErrInvalidParams))
23117		}
23118	}
23119	if s.TrustedSigners != nil {
23120		if err := s.TrustedSigners.Validate(); err != nil {
23121			invalidParams.AddNested("TrustedSigners", err.(request.ErrInvalidParams))
23122		}
23123	}
23124
23125	if invalidParams.Len() > 0 {
23126		return invalidParams
23127	}
23128	return nil
23129}
23130
23131// SetAliases sets the Aliases field's value.
23132func (s *StreamingDistributionConfig) SetAliases(v *Aliases) *StreamingDistributionConfig {
23133	s.Aliases = v
23134	return s
23135}
23136
23137// SetCallerReference sets the CallerReference field's value.
23138func (s *StreamingDistributionConfig) SetCallerReference(v string) *StreamingDistributionConfig {
23139	s.CallerReference = &v
23140	return s
23141}
23142
23143// SetComment sets the Comment field's value.
23144func (s *StreamingDistributionConfig) SetComment(v string) *StreamingDistributionConfig {
23145	s.Comment = &v
23146	return s
23147}
23148
23149// SetEnabled sets the Enabled field's value.
23150func (s *StreamingDistributionConfig) SetEnabled(v bool) *StreamingDistributionConfig {
23151	s.Enabled = &v
23152	return s
23153}
23154
23155// SetLogging sets the Logging field's value.
23156func (s *StreamingDistributionConfig) SetLogging(v *StreamingLoggingConfig) *StreamingDistributionConfig {
23157	s.Logging = v
23158	return s
23159}
23160
23161// SetPriceClass sets the PriceClass field's value.
23162func (s *StreamingDistributionConfig) SetPriceClass(v string) *StreamingDistributionConfig {
23163	s.PriceClass = &v
23164	return s
23165}
23166
23167// SetS3Origin sets the S3Origin field's value.
23168func (s *StreamingDistributionConfig) SetS3Origin(v *S3Origin) *StreamingDistributionConfig {
23169	s.S3Origin = v
23170	return s
23171}
23172
23173// SetTrustedSigners sets the TrustedSigners field's value.
23174func (s *StreamingDistributionConfig) SetTrustedSigners(v *TrustedSigners) *StreamingDistributionConfig {
23175	s.TrustedSigners = v
23176	return s
23177}
23178
23179// A streaming distribution Configuration and a list of tags to be associated
23180// with the streaming distribution.
23181type StreamingDistributionConfigWithTags struct {
23182	_ struct{} `type:"structure"`
23183
23184	// A streaming distribution Configuration.
23185	//
23186	// StreamingDistributionConfig is a required field
23187	StreamingDistributionConfig *StreamingDistributionConfig `type:"structure" required:"true"`
23188
23189	// A complex type that contains zero or more Tag elements.
23190	//
23191	// Tags is a required field
23192	Tags *Tags `type:"structure" required:"true"`
23193}
23194
23195// String returns the string representation
23196func (s StreamingDistributionConfigWithTags) String() string {
23197	return awsutil.Prettify(s)
23198}
23199
23200// GoString returns the string representation
23201func (s StreamingDistributionConfigWithTags) GoString() string {
23202	return s.String()
23203}
23204
23205// Validate inspects the fields of the type to determine if they are valid.
23206func (s *StreamingDistributionConfigWithTags) Validate() error {
23207	invalidParams := request.ErrInvalidParams{Context: "StreamingDistributionConfigWithTags"}
23208	if s.StreamingDistributionConfig == nil {
23209		invalidParams.Add(request.NewErrParamRequired("StreamingDistributionConfig"))
23210	}
23211	if s.Tags == nil {
23212		invalidParams.Add(request.NewErrParamRequired("Tags"))
23213	}
23214	if s.StreamingDistributionConfig != nil {
23215		if err := s.StreamingDistributionConfig.Validate(); err != nil {
23216			invalidParams.AddNested("StreamingDistributionConfig", err.(request.ErrInvalidParams))
23217		}
23218	}
23219	if s.Tags != nil {
23220		if err := s.Tags.Validate(); err != nil {
23221			invalidParams.AddNested("Tags", err.(request.ErrInvalidParams))
23222		}
23223	}
23224
23225	if invalidParams.Len() > 0 {
23226		return invalidParams
23227	}
23228	return nil
23229}
23230
23231// SetStreamingDistributionConfig sets the StreamingDistributionConfig field's value.
23232func (s *StreamingDistributionConfigWithTags) SetStreamingDistributionConfig(v *StreamingDistributionConfig) *StreamingDistributionConfigWithTags {
23233	s.StreamingDistributionConfig = v
23234	return s
23235}
23236
23237// SetTags sets the Tags field's value.
23238func (s *StreamingDistributionConfigWithTags) SetTags(v *Tags) *StreamingDistributionConfigWithTags {
23239	s.Tags = v
23240	return s
23241}
23242
23243// A streaming distribution list.
23244type StreamingDistributionList struct {
23245	_ struct{} `type:"structure"`
23246
23247	// A flag that indicates whether more streaming distributions remain to be listed.
23248	// If your results were truncated, you can make a follow-up pagination request
23249	// using the Marker request parameter to retrieve more distributions in the
23250	// list.
23251	//
23252	// IsTruncated is a required field
23253	IsTruncated *bool `type:"boolean" required:"true"`
23254
23255	// A complex type that contains one StreamingDistributionSummary element for
23256	// each distribution that was created by the current account.
23257	Items []*StreamingDistributionSummary `locationNameList:"StreamingDistributionSummary" type:"list"`
23258
23259	// The value you provided for the Marker request parameter.
23260	//
23261	// Marker is a required field
23262	Marker *string `type:"string" required:"true"`
23263
23264	// The value you provided for the MaxItems request parameter.
23265	//
23266	// MaxItems is a required field
23267	MaxItems *int64 `type:"integer" required:"true"`
23268
23269	// If IsTruncated is true, this element is present and contains the value you
23270	// can use for the Marker request parameter to continue listing your RTMP distributions
23271	// where they left off.
23272	NextMarker *string `type:"string"`
23273
23274	// The number of streaming distributions that were created by the current account.
23275	//
23276	// Quantity is a required field
23277	Quantity *int64 `type:"integer" required:"true"`
23278}
23279
23280// String returns the string representation
23281func (s StreamingDistributionList) String() string {
23282	return awsutil.Prettify(s)
23283}
23284
23285// GoString returns the string representation
23286func (s StreamingDistributionList) GoString() string {
23287	return s.String()
23288}
23289
23290// SetIsTruncated sets the IsTruncated field's value.
23291func (s *StreamingDistributionList) SetIsTruncated(v bool) *StreamingDistributionList {
23292	s.IsTruncated = &v
23293	return s
23294}
23295
23296// SetItems sets the Items field's value.
23297func (s *StreamingDistributionList) SetItems(v []*StreamingDistributionSummary) *StreamingDistributionList {
23298	s.Items = v
23299	return s
23300}
23301
23302// SetMarker sets the Marker field's value.
23303func (s *StreamingDistributionList) SetMarker(v string) *StreamingDistributionList {
23304	s.Marker = &v
23305	return s
23306}
23307
23308// SetMaxItems sets the MaxItems field's value.
23309func (s *StreamingDistributionList) SetMaxItems(v int64) *StreamingDistributionList {
23310	s.MaxItems = &v
23311	return s
23312}
23313
23314// SetNextMarker sets the NextMarker field's value.
23315func (s *StreamingDistributionList) SetNextMarker(v string) *StreamingDistributionList {
23316	s.NextMarker = &v
23317	return s
23318}
23319
23320// SetQuantity sets the Quantity field's value.
23321func (s *StreamingDistributionList) SetQuantity(v int64) *StreamingDistributionList {
23322	s.Quantity = &v
23323	return s
23324}
23325
23326// A summary of the information for a CloudFront streaming distribution.
23327type StreamingDistributionSummary struct {
23328	_ struct{} `type:"structure"`
23329
23330	// The ARN (Amazon Resource Name) for the streaming distribution. For example:
23331	// arn:aws:cloudfront::123456789012:streaming-distribution/EDFDVBD632BHDS5,
23332	// where 123456789012 is your account ID.
23333	//
23334	// ARN is a required field
23335	ARN *string `type:"string" required:"true"`
23336
23337	// A complex type that contains information about CNAMEs (alternate domain names),
23338	// if any, for this streaming distribution.
23339	//
23340	// Aliases is a required field
23341	Aliases *Aliases `type:"structure" required:"true"`
23342
23343	// The comment originally specified when this distribution was created.
23344	//
23345	// Comment is a required field
23346	Comment *string `type:"string" required:"true"`
23347
23348	// The domain name corresponding to the distribution, for example, d111111abcdef8.cloudfront.net.
23349	//
23350	// DomainName is a required field
23351	DomainName *string `type:"string" required:"true"`
23352
23353	// Whether the distribution is enabled to accept end user requests for content.
23354	//
23355	// Enabled is a required field
23356	Enabled *bool `type:"boolean" required:"true"`
23357
23358	// The identifier for the distribution, for example, EDFDVBD632BHDS5.
23359	//
23360	// Id is a required field
23361	Id *string `type:"string" required:"true"`
23362
23363	// The date and time the distribution was last modified.
23364	//
23365	// LastModifiedTime is a required field
23366	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
23367
23368	// A complex type that contains information about price class for this streaming
23369	// distribution.
23370	//
23371	// PriceClass is a required field
23372	PriceClass *string `type:"string" required:"true" enum:"PriceClass"`
23373
23374	// A complex type that contains information about the Amazon S3 bucket from
23375	// which you want CloudFront to get your media files for distribution.
23376	//
23377	// S3Origin is a required field
23378	S3Origin *S3Origin `type:"structure" required:"true"`
23379
23380	// Indicates the current status of the distribution. When the status is Deployed,
23381	// the distribution's information is fully propagated throughout the Amazon
23382	// CloudFront system.
23383	//
23384	// Status is a required field
23385	Status *string `type:"string" required:"true"`
23386
23387	// A complex type that specifies the accounts, if any, that you want to allow
23388	// to create signed URLs for private content. If you want to require signed
23389	// URLs in requests for objects in the target origin that match the PathPattern
23390	// for this cache behavior, specify true for Enabled, and specify the applicable
23391	// values for Quantity and Items.If you don't want to require signed URLs in
23392	// requests for objects that match PathPattern, specify false for Enabled and
23393	// 0 for Quantity. Omit Items. To add, change, or remove one or more trusted
23394	// signers, change Enabled to true (if it's currently false), change Quantity
23395	// as applicable, and specify all of the trusted signers that you want to include
23396	// in the updated distribution.
23397	//
23398	// For more information, see Serving Private Content through CloudFront (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html)
23399	// in the Amazon CloudFront Developer Guide.
23400	//
23401	// TrustedSigners is a required field
23402	TrustedSigners *TrustedSigners `type:"structure" required:"true"`
23403}
23404
23405// String returns the string representation
23406func (s StreamingDistributionSummary) String() string {
23407	return awsutil.Prettify(s)
23408}
23409
23410// GoString returns the string representation
23411func (s StreamingDistributionSummary) GoString() string {
23412	return s.String()
23413}
23414
23415// SetARN sets the ARN field's value.
23416func (s *StreamingDistributionSummary) SetARN(v string) *StreamingDistributionSummary {
23417	s.ARN = &v
23418	return s
23419}
23420
23421// SetAliases sets the Aliases field's value.
23422func (s *StreamingDistributionSummary) SetAliases(v *Aliases) *StreamingDistributionSummary {
23423	s.Aliases = v
23424	return s
23425}
23426
23427// SetComment sets the Comment field's value.
23428func (s *StreamingDistributionSummary) SetComment(v string) *StreamingDistributionSummary {
23429	s.Comment = &v
23430	return s
23431}
23432
23433// SetDomainName sets the DomainName field's value.
23434func (s *StreamingDistributionSummary) SetDomainName(v string) *StreamingDistributionSummary {
23435	s.DomainName = &v
23436	return s
23437}
23438
23439// SetEnabled sets the Enabled field's value.
23440func (s *StreamingDistributionSummary) SetEnabled(v bool) *StreamingDistributionSummary {
23441	s.Enabled = &v
23442	return s
23443}
23444
23445// SetId sets the Id field's value.
23446func (s *StreamingDistributionSummary) SetId(v string) *StreamingDistributionSummary {
23447	s.Id = &v
23448	return s
23449}
23450
23451// SetLastModifiedTime sets the LastModifiedTime field's value.
23452func (s *StreamingDistributionSummary) SetLastModifiedTime(v time.Time) *StreamingDistributionSummary {
23453	s.LastModifiedTime = &v
23454	return s
23455}
23456
23457// SetPriceClass sets the PriceClass field's value.
23458func (s *StreamingDistributionSummary) SetPriceClass(v string) *StreamingDistributionSummary {
23459	s.PriceClass = &v
23460	return s
23461}
23462
23463// SetS3Origin sets the S3Origin field's value.
23464func (s *StreamingDistributionSummary) SetS3Origin(v *S3Origin) *StreamingDistributionSummary {
23465	s.S3Origin = v
23466	return s
23467}
23468
23469// SetStatus sets the Status field's value.
23470func (s *StreamingDistributionSummary) SetStatus(v string) *StreamingDistributionSummary {
23471	s.Status = &v
23472	return s
23473}
23474
23475// SetTrustedSigners sets the TrustedSigners field's value.
23476func (s *StreamingDistributionSummary) SetTrustedSigners(v *TrustedSigners) *StreamingDistributionSummary {
23477	s.TrustedSigners = v
23478	return s
23479}
23480
23481// A complex type that controls whether access logs are written for this streaming
23482// distribution.
23483type StreamingLoggingConfig struct {
23484	_ struct{} `type:"structure"`
23485
23486	// The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.
23487	//
23488	// Bucket is a required field
23489	Bucket *string `type:"string" required:"true"`
23490
23491	// Specifies whether you want CloudFront to save access logs to an Amazon S3
23492	// bucket. If you don't want to enable logging when you create a streaming distribution
23493	// or if you want to disable logging for an existing streaming distribution,
23494	// specify false for Enabled, and specify empty Bucket and Prefix elements.
23495	// If you specify false for Enabled but you specify values for Bucket and Prefix,
23496	// the values are automatically deleted.
23497	//
23498	// Enabled is a required field
23499	Enabled *bool `type:"boolean" required:"true"`
23500
23501	// An optional string that you want CloudFront to prefix to the access log filenames
23502	// for this streaming distribution, for example, myprefix/. If you want to enable
23503	// logging, but you don't want to specify a prefix, you still must include an
23504	// empty Prefix element in the Logging element.
23505	//
23506	// Prefix is a required field
23507	Prefix *string `type:"string" required:"true"`
23508}
23509
23510// String returns the string representation
23511func (s StreamingLoggingConfig) String() string {
23512	return awsutil.Prettify(s)
23513}
23514
23515// GoString returns the string representation
23516func (s StreamingLoggingConfig) GoString() string {
23517	return s.String()
23518}
23519
23520// Validate inspects the fields of the type to determine if they are valid.
23521func (s *StreamingLoggingConfig) Validate() error {
23522	invalidParams := request.ErrInvalidParams{Context: "StreamingLoggingConfig"}
23523	if s.Bucket == nil {
23524		invalidParams.Add(request.NewErrParamRequired("Bucket"))
23525	}
23526	if s.Enabled == nil {
23527		invalidParams.Add(request.NewErrParamRequired("Enabled"))
23528	}
23529	if s.Prefix == nil {
23530		invalidParams.Add(request.NewErrParamRequired("Prefix"))
23531	}
23532
23533	if invalidParams.Len() > 0 {
23534		return invalidParams
23535	}
23536	return nil
23537}
23538
23539// SetBucket sets the Bucket field's value.
23540func (s *StreamingLoggingConfig) SetBucket(v string) *StreamingLoggingConfig {
23541	s.Bucket = &v
23542	return s
23543}
23544
23545// SetEnabled sets the Enabled field's value.
23546func (s *StreamingLoggingConfig) SetEnabled(v bool) *StreamingLoggingConfig {
23547	s.Enabled = &v
23548	return s
23549}
23550
23551// SetPrefix sets the Prefix field's value.
23552func (s *StreamingLoggingConfig) SetPrefix(v string) *StreamingLoggingConfig {
23553	s.Prefix = &v
23554	return s
23555}
23556
23557// A complex type that contains Tag key and Tag value.
23558type Tag struct {
23559	_ struct{} `type:"structure"`
23560
23561	// A string that contains Tag key.
23562	//
23563	// The string length should be between 1 and 128 characters. Valid characters
23564	// include a-z, A-Z, 0-9, space, and the special characters _ - . : / = + @.
23565	//
23566	// Key is a required field
23567	Key *string `min:"1" type:"string" required:"true"`
23568
23569	// A string that contains an optional Tag value.
23570	//
23571	// The string length should be between 0 and 256 characters. Valid characters
23572	// include a-z, A-Z, 0-9, space, and the special characters _ - . : / = + @.
23573	Value *string `type:"string"`
23574}
23575
23576// String returns the string representation
23577func (s Tag) String() string {
23578	return awsutil.Prettify(s)
23579}
23580
23581// GoString returns the string representation
23582func (s Tag) GoString() string {
23583	return s.String()
23584}
23585
23586// Validate inspects the fields of the type to determine if they are valid.
23587func (s *Tag) Validate() error {
23588	invalidParams := request.ErrInvalidParams{Context: "Tag"}
23589	if s.Key == nil {
23590		invalidParams.Add(request.NewErrParamRequired("Key"))
23591	}
23592	if s.Key != nil && len(*s.Key) < 1 {
23593		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
23594	}
23595
23596	if invalidParams.Len() > 0 {
23597		return invalidParams
23598	}
23599	return nil
23600}
23601
23602// SetKey sets the Key field's value.
23603func (s *Tag) SetKey(v string) *Tag {
23604	s.Key = &v
23605	return s
23606}
23607
23608// SetValue sets the Value field's value.
23609func (s *Tag) SetValue(v string) *Tag {
23610	s.Value = &v
23611	return s
23612}
23613
23614// A complex type that contains zero or more Tag elements.
23615type TagKeys struct {
23616	_ struct{} `type:"structure"`
23617
23618	// A complex type that contains Tag key elements.
23619	Items []*string `locationNameList:"Key" type:"list"`
23620}
23621
23622// String returns the string representation
23623func (s TagKeys) String() string {
23624	return awsutil.Prettify(s)
23625}
23626
23627// GoString returns the string representation
23628func (s TagKeys) GoString() string {
23629	return s.String()
23630}
23631
23632// SetItems sets the Items field's value.
23633func (s *TagKeys) SetItems(v []*string) *TagKeys {
23634	s.Items = v
23635	return s
23636}
23637
23638// The request to add tags to a CloudFront resource.
23639type TagResourceInput struct {
23640	_ struct{} `locationName:"TagResourceRequest" type:"structure" payload:"Tags"`
23641
23642	// An ARN of a CloudFront resource.
23643	//
23644	// Resource is a required field
23645	Resource *string `location:"querystring" locationName:"Resource" type:"string" required:"true"`
23646
23647	// A complex type that contains zero or more Tag elements.
23648	//
23649	// Tags is a required field
23650	Tags *Tags `locationName:"Tags" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
23651}
23652
23653// String returns the string representation
23654func (s TagResourceInput) String() string {
23655	return awsutil.Prettify(s)
23656}
23657
23658// GoString returns the string representation
23659func (s TagResourceInput) GoString() string {
23660	return s.String()
23661}
23662
23663// Validate inspects the fields of the type to determine if they are valid.
23664func (s *TagResourceInput) Validate() error {
23665	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
23666	if s.Resource == nil {
23667		invalidParams.Add(request.NewErrParamRequired("Resource"))
23668	}
23669	if s.Tags == nil {
23670		invalidParams.Add(request.NewErrParamRequired("Tags"))
23671	}
23672	if s.Tags != nil {
23673		if err := s.Tags.Validate(); err != nil {
23674			invalidParams.AddNested("Tags", err.(request.ErrInvalidParams))
23675		}
23676	}
23677
23678	if invalidParams.Len() > 0 {
23679		return invalidParams
23680	}
23681	return nil
23682}
23683
23684// SetResource sets the Resource field's value.
23685func (s *TagResourceInput) SetResource(v string) *TagResourceInput {
23686	s.Resource = &v
23687	return s
23688}
23689
23690// SetTags sets the Tags field's value.
23691func (s *TagResourceInput) SetTags(v *Tags) *TagResourceInput {
23692	s.Tags = v
23693	return s
23694}
23695
23696type TagResourceOutput struct {
23697	_ struct{} `type:"structure"`
23698}
23699
23700// String returns the string representation
23701func (s TagResourceOutput) String() string {
23702	return awsutil.Prettify(s)
23703}
23704
23705// GoString returns the string representation
23706func (s TagResourceOutput) GoString() string {
23707	return s.String()
23708}
23709
23710// A complex type that contains zero or more Tag elements.
23711type Tags struct {
23712	_ struct{} `type:"structure"`
23713
23714	// A complex type that contains Tag elements.
23715	Items []*Tag `locationNameList:"Tag" type:"list"`
23716}
23717
23718// String returns the string representation
23719func (s Tags) String() string {
23720	return awsutil.Prettify(s)
23721}
23722
23723// GoString returns the string representation
23724func (s Tags) GoString() string {
23725	return s.String()
23726}
23727
23728// Validate inspects the fields of the type to determine if they are valid.
23729func (s *Tags) Validate() error {
23730	invalidParams := request.ErrInvalidParams{Context: "Tags"}
23731	if s.Items != nil {
23732		for i, v := range s.Items {
23733			if v == nil {
23734				continue
23735			}
23736			if err := v.Validate(); err != nil {
23737				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
23738			}
23739		}
23740	}
23741
23742	if invalidParams.Len() > 0 {
23743		return invalidParams
23744	}
23745	return nil
23746}
23747
23748// SetItems sets the Items field's value.
23749func (s *Tags) SetItems(v []*Tag) *Tags {
23750	s.Items = v
23751	return s
23752}
23753
23754type TestFunctionInput struct {
23755	_ struct{} `locationName:"TestFunctionRequest" type:"structure" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
23756
23757	// The event object to test the function with. For more information about the
23758	// structure of the event object, see Testing functions (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managing-functions.html#test-function)
23759	// in the Amazon CloudFront Developer Guide.
23760	//
23761	// EventObject is automatically base64 encoded/decoded by the SDK.
23762	//
23763	// EventObject is a required field
23764	EventObject []byte `type:"blob" required:"true" sensitive:"true"`
23765
23766	// The current version (ETag value) of the function that you are testing, which
23767	// you can get using DescribeFunction.
23768	//
23769	// IfMatch is a required field
23770	IfMatch *string `location:"header" locationName:"If-Match" type:"string" required:"true"`
23771
23772	// The name of the function that you are testing.
23773	//
23774	// Name is a required field
23775	Name *string `location:"uri" locationName:"Name" type:"string" required:"true"`
23776
23777	// The stage of the function that you are testing, either DEVELOPMENT or LIVE.
23778	Stage *string `type:"string" enum:"FunctionStage"`
23779}
23780
23781// String returns the string representation
23782func (s TestFunctionInput) String() string {
23783	return awsutil.Prettify(s)
23784}
23785
23786// GoString returns the string representation
23787func (s TestFunctionInput) GoString() string {
23788	return s.String()
23789}
23790
23791// Validate inspects the fields of the type to determine if they are valid.
23792func (s *TestFunctionInput) Validate() error {
23793	invalidParams := request.ErrInvalidParams{Context: "TestFunctionInput"}
23794	if s.EventObject == nil {
23795		invalidParams.Add(request.NewErrParamRequired("EventObject"))
23796	}
23797	if s.IfMatch == nil {
23798		invalidParams.Add(request.NewErrParamRequired("IfMatch"))
23799	}
23800	if s.Name == nil {
23801		invalidParams.Add(request.NewErrParamRequired("Name"))
23802	}
23803	if s.Name != nil && len(*s.Name) < 1 {
23804		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
23805	}
23806
23807	if invalidParams.Len() > 0 {
23808		return invalidParams
23809	}
23810	return nil
23811}
23812
23813// SetEventObject sets the EventObject field's value.
23814func (s *TestFunctionInput) SetEventObject(v []byte) *TestFunctionInput {
23815	s.EventObject = v
23816	return s
23817}
23818
23819// SetIfMatch sets the IfMatch field's value.
23820func (s *TestFunctionInput) SetIfMatch(v string) *TestFunctionInput {
23821	s.IfMatch = &v
23822	return s
23823}
23824
23825// SetName sets the Name field's value.
23826func (s *TestFunctionInput) SetName(v string) *TestFunctionInput {
23827	s.Name = &v
23828	return s
23829}
23830
23831// SetStage sets the Stage field's value.
23832func (s *TestFunctionInput) SetStage(v string) *TestFunctionInput {
23833	s.Stage = &v
23834	return s
23835}
23836
23837type TestFunctionOutput struct {
23838	_ struct{} `type:"structure" payload:"TestResult"`
23839
23840	// An object that represents the result of running the function with the provided
23841	// event object.
23842	TestResult *TestResult `type:"structure"`
23843}
23844
23845// String returns the string representation
23846func (s TestFunctionOutput) String() string {
23847	return awsutil.Prettify(s)
23848}
23849
23850// GoString returns the string representation
23851func (s TestFunctionOutput) GoString() string {
23852	return s.String()
23853}
23854
23855// SetTestResult sets the TestResult field's value.
23856func (s *TestFunctionOutput) SetTestResult(v *TestResult) *TestFunctionOutput {
23857	s.TestResult = v
23858	return s
23859}
23860
23861// Contains the result of testing a CloudFront function with TestFunction.
23862type TestResult struct {
23863	_ struct{} `type:"structure"`
23864
23865	// The amount of time that the function took to run as a percentage of the maximum
23866	// allowed time. For example, a compute utilization of 35 means that the function
23867	// completed in 35% of the maximum allowed time.
23868	ComputeUtilization *string `type:"string"`
23869
23870	// If the result of testing the function was an error, this field contains the
23871	// error message.
23872	FunctionErrorMessage *string `type:"string"`
23873
23874	// Contains the log lines that the function wrote (if any) when running the
23875	// test.
23876	FunctionExecutionLogs []*string `type:"list"`
23877
23878	// The event object returned by the function. For more information about the
23879	// structure of the event object, see Event object structure (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/functions-event-structure.html)
23880	// in the Amazon CloudFront Developer Guide.
23881	FunctionOutput *string `type:"string"`
23882
23883	// Contains configuration information and metadata about the CloudFront function
23884	// that was tested.
23885	FunctionSummary *FunctionSummary `type:"structure"`
23886}
23887
23888// String returns the string representation
23889func (s TestResult) String() string {
23890	return awsutil.Prettify(s)
23891}
23892
23893// GoString returns the string representation
23894func (s TestResult) GoString() string {
23895	return s.String()
23896}
23897
23898// SetComputeUtilization sets the ComputeUtilization field's value.
23899func (s *TestResult) SetComputeUtilization(v string) *TestResult {
23900	s.ComputeUtilization = &v
23901	return s
23902}
23903
23904// SetFunctionErrorMessage sets the FunctionErrorMessage field's value.
23905func (s *TestResult) SetFunctionErrorMessage(v string) *TestResult {
23906	s.FunctionErrorMessage = &v
23907	return s
23908}
23909
23910// SetFunctionExecutionLogs sets the FunctionExecutionLogs field's value.
23911func (s *TestResult) SetFunctionExecutionLogs(v []*string) *TestResult {
23912	s.FunctionExecutionLogs = v
23913	return s
23914}
23915
23916// SetFunctionOutput sets the FunctionOutput field's value.
23917func (s *TestResult) SetFunctionOutput(v string) *TestResult {
23918	s.FunctionOutput = &v
23919	return s
23920}
23921
23922// SetFunctionSummary sets the FunctionSummary field's value.
23923func (s *TestResult) SetFunctionSummary(v *FunctionSummary) *TestResult {
23924	s.FunctionSummary = v
23925	return s
23926}
23927
23928// A list of key groups whose public keys CloudFront can use to verify the signatures
23929// of signed URLs and signed cookies.
23930type TrustedKeyGroups struct {
23931	_ struct{} `type:"structure"`
23932
23933	// This field is true if any of the key groups in the list have public keys
23934	// that CloudFront can use to verify the signatures of signed URLs and signed
23935	// cookies. If not, this field is false.
23936	//
23937	// Enabled is a required field
23938	Enabled *bool `type:"boolean" required:"true"`
23939
23940	// A list of key groups identifiers.
23941	Items []*string `locationNameList:"KeyGroup" type:"list"`
23942
23943	// The number of key groups in the list.
23944	//
23945	// Quantity is a required field
23946	Quantity *int64 `type:"integer" required:"true"`
23947}
23948
23949// String returns the string representation
23950func (s TrustedKeyGroups) String() string {
23951	return awsutil.Prettify(s)
23952}
23953
23954// GoString returns the string representation
23955func (s TrustedKeyGroups) GoString() string {
23956	return s.String()
23957}
23958
23959// Validate inspects the fields of the type to determine if they are valid.
23960func (s *TrustedKeyGroups) Validate() error {
23961	invalidParams := request.ErrInvalidParams{Context: "TrustedKeyGroups"}
23962	if s.Enabled == nil {
23963		invalidParams.Add(request.NewErrParamRequired("Enabled"))
23964	}
23965	if s.Quantity == nil {
23966		invalidParams.Add(request.NewErrParamRequired("Quantity"))
23967	}
23968
23969	if invalidParams.Len() > 0 {
23970		return invalidParams
23971	}
23972	return nil
23973}
23974
23975// SetEnabled sets the Enabled field's value.
23976func (s *TrustedKeyGroups) SetEnabled(v bool) *TrustedKeyGroups {
23977	s.Enabled = &v
23978	return s
23979}
23980
23981// SetItems sets the Items field's value.
23982func (s *TrustedKeyGroups) SetItems(v []*string) *TrustedKeyGroups {
23983	s.Items = v
23984	return s
23985}
23986
23987// SetQuantity sets the Quantity field's value.
23988func (s *TrustedKeyGroups) SetQuantity(v int64) *TrustedKeyGroups {
23989	s.Quantity = &v
23990	return s
23991}
23992
23993// A list of accounts whose public keys CloudFront can use to verify the signatures
23994// of signed URLs and signed cookies.
23995type TrustedSigners struct {
23996	_ struct{} `type:"structure"`
23997
23998	// This field is true if any of the accounts have public keys that CloudFront
23999	// can use to verify the signatures of signed URLs and signed cookies. If not,
24000	// this field is false.
24001	//
24002	// Enabled is a required field
24003	Enabled *bool `type:"boolean" required:"true"`
24004
24005	// A list of account identifiers.
24006	Items []*string `locationNameList:"AwsAccountNumber" type:"list"`
24007
24008	// The number of accounts in the list.
24009	//
24010	// Quantity is a required field
24011	Quantity *int64 `type:"integer" required:"true"`
24012}
24013
24014// String returns the string representation
24015func (s TrustedSigners) String() string {
24016	return awsutil.Prettify(s)
24017}
24018
24019// GoString returns the string representation
24020func (s TrustedSigners) GoString() string {
24021	return s.String()
24022}
24023
24024// Validate inspects the fields of the type to determine if they are valid.
24025func (s *TrustedSigners) Validate() error {
24026	invalidParams := request.ErrInvalidParams{Context: "TrustedSigners"}
24027	if s.Enabled == nil {
24028		invalidParams.Add(request.NewErrParamRequired("Enabled"))
24029	}
24030	if s.Quantity == nil {
24031		invalidParams.Add(request.NewErrParamRequired("Quantity"))
24032	}
24033
24034	if invalidParams.Len() > 0 {
24035		return invalidParams
24036	}
24037	return nil
24038}
24039
24040// SetEnabled sets the Enabled field's value.
24041func (s *TrustedSigners) SetEnabled(v bool) *TrustedSigners {
24042	s.Enabled = &v
24043	return s
24044}
24045
24046// SetItems sets the Items field's value.
24047func (s *TrustedSigners) SetItems(v []*string) *TrustedSigners {
24048	s.Items = v
24049	return s
24050}
24051
24052// SetQuantity sets the Quantity field's value.
24053func (s *TrustedSigners) SetQuantity(v int64) *TrustedSigners {
24054	s.Quantity = &v
24055	return s
24056}
24057
24058// The request to remove tags from a CloudFront resource.
24059type UntagResourceInput struct {
24060	_ struct{} `locationName:"UntagResourceRequest" type:"structure" payload:"TagKeys"`
24061
24062	// An ARN of a CloudFront resource.
24063	//
24064	// Resource is a required field
24065	Resource *string `location:"querystring" locationName:"Resource" type:"string" required:"true"`
24066
24067	// A complex type that contains zero or more Tag key elements.
24068	//
24069	// TagKeys is a required field
24070	TagKeys *TagKeys `locationName:"TagKeys" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
24071}
24072
24073// String returns the string representation
24074func (s UntagResourceInput) String() string {
24075	return awsutil.Prettify(s)
24076}
24077
24078// GoString returns the string representation
24079func (s UntagResourceInput) GoString() string {
24080	return s.String()
24081}
24082
24083// Validate inspects the fields of the type to determine if they are valid.
24084func (s *UntagResourceInput) Validate() error {
24085	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
24086	if s.Resource == nil {
24087		invalidParams.Add(request.NewErrParamRequired("Resource"))
24088	}
24089	if s.TagKeys == nil {
24090		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
24091	}
24092
24093	if invalidParams.Len() > 0 {
24094		return invalidParams
24095	}
24096	return nil
24097}
24098
24099// SetResource sets the Resource field's value.
24100func (s *UntagResourceInput) SetResource(v string) *UntagResourceInput {
24101	s.Resource = &v
24102	return s
24103}
24104
24105// SetTagKeys sets the TagKeys field's value.
24106func (s *UntagResourceInput) SetTagKeys(v *TagKeys) *UntagResourceInput {
24107	s.TagKeys = v
24108	return s
24109}
24110
24111type UntagResourceOutput struct {
24112	_ struct{} `type:"structure"`
24113}
24114
24115// String returns the string representation
24116func (s UntagResourceOutput) String() string {
24117	return awsutil.Prettify(s)
24118}
24119
24120// GoString returns the string representation
24121func (s UntagResourceOutput) GoString() string {
24122	return s.String()
24123}
24124
24125type UpdateCachePolicyInput struct {
24126	_ struct{} `locationName:"UpdateCachePolicyRequest" type:"structure" payload:"CachePolicyConfig"`
24127
24128	// A cache policy configuration.
24129	//
24130	// CachePolicyConfig is a required field
24131	CachePolicyConfig *CachePolicyConfig `locationName:"CachePolicyConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
24132
24133	// The unique identifier for the cache policy that you are updating. The identifier
24134	// is returned in a cache behavior’s CachePolicyId field in the response to
24135	// GetDistributionConfig.
24136	//
24137	// Id is a required field
24138	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
24139
24140	// The version of the cache policy that you are updating. The version is returned
24141	// in the cache policy’s ETag field in the response to GetCachePolicyConfig.
24142	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
24143}
24144
24145// String returns the string representation
24146func (s UpdateCachePolicyInput) String() string {
24147	return awsutil.Prettify(s)
24148}
24149
24150// GoString returns the string representation
24151func (s UpdateCachePolicyInput) GoString() string {
24152	return s.String()
24153}
24154
24155// Validate inspects the fields of the type to determine if they are valid.
24156func (s *UpdateCachePolicyInput) Validate() error {
24157	invalidParams := request.ErrInvalidParams{Context: "UpdateCachePolicyInput"}
24158	if s.CachePolicyConfig == nil {
24159		invalidParams.Add(request.NewErrParamRequired("CachePolicyConfig"))
24160	}
24161	if s.Id == nil {
24162		invalidParams.Add(request.NewErrParamRequired("Id"))
24163	}
24164	if s.Id != nil && len(*s.Id) < 1 {
24165		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
24166	}
24167	if s.CachePolicyConfig != nil {
24168		if err := s.CachePolicyConfig.Validate(); err != nil {
24169			invalidParams.AddNested("CachePolicyConfig", err.(request.ErrInvalidParams))
24170		}
24171	}
24172
24173	if invalidParams.Len() > 0 {
24174		return invalidParams
24175	}
24176	return nil
24177}
24178
24179// SetCachePolicyConfig sets the CachePolicyConfig field's value.
24180func (s *UpdateCachePolicyInput) SetCachePolicyConfig(v *CachePolicyConfig) *UpdateCachePolicyInput {
24181	s.CachePolicyConfig = v
24182	return s
24183}
24184
24185// SetId sets the Id field's value.
24186func (s *UpdateCachePolicyInput) SetId(v string) *UpdateCachePolicyInput {
24187	s.Id = &v
24188	return s
24189}
24190
24191// SetIfMatch sets the IfMatch field's value.
24192func (s *UpdateCachePolicyInput) SetIfMatch(v string) *UpdateCachePolicyInput {
24193	s.IfMatch = &v
24194	return s
24195}
24196
24197type UpdateCachePolicyOutput struct {
24198	_ struct{} `type:"structure" payload:"CachePolicy"`
24199
24200	// A cache policy.
24201	CachePolicy *CachePolicy `type:"structure"`
24202
24203	// The current version of the cache policy.
24204	ETag *string `location:"header" locationName:"ETag" type:"string"`
24205}
24206
24207// String returns the string representation
24208func (s UpdateCachePolicyOutput) String() string {
24209	return awsutil.Prettify(s)
24210}
24211
24212// GoString returns the string representation
24213func (s UpdateCachePolicyOutput) GoString() string {
24214	return s.String()
24215}
24216
24217// SetCachePolicy sets the CachePolicy field's value.
24218func (s *UpdateCachePolicyOutput) SetCachePolicy(v *CachePolicy) *UpdateCachePolicyOutput {
24219	s.CachePolicy = v
24220	return s
24221}
24222
24223// SetETag sets the ETag field's value.
24224func (s *UpdateCachePolicyOutput) SetETag(v string) *UpdateCachePolicyOutput {
24225	s.ETag = &v
24226	return s
24227}
24228
24229// The request to update an origin access identity.
24230type UpdateCloudFrontOriginAccessIdentityInput struct {
24231	_ struct{} `locationName:"UpdateCloudFrontOriginAccessIdentityRequest" type:"structure" payload:"CloudFrontOriginAccessIdentityConfig"`
24232
24233	// The identity's configuration information.
24234	//
24235	// CloudFrontOriginAccessIdentityConfig is a required field
24236	CloudFrontOriginAccessIdentityConfig *OriginAccessIdentityConfig `locationName:"CloudFrontOriginAccessIdentityConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
24237
24238	// The identity's id.
24239	//
24240	// Id is a required field
24241	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
24242
24243	// The value of the ETag header that you received when retrieving the identity's
24244	// configuration. For example: E2QWRUHAPOMQZL.
24245	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
24246}
24247
24248// String returns the string representation
24249func (s UpdateCloudFrontOriginAccessIdentityInput) String() string {
24250	return awsutil.Prettify(s)
24251}
24252
24253// GoString returns the string representation
24254func (s UpdateCloudFrontOriginAccessIdentityInput) GoString() string {
24255	return s.String()
24256}
24257
24258// Validate inspects the fields of the type to determine if they are valid.
24259func (s *UpdateCloudFrontOriginAccessIdentityInput) Validate() error {
24260	invalidParams := request.ErrInvalidParams{Context: "UpdateCloudFrontOriginAccessIdentityInput"}
24261	if s.CloudFrontOriginAccessIdentityConfig == nil {
24262		invalidParams.Add(request.NewErrParamRequired("CloudFrontOriginAccessIdentityConfig"))
24263	}
24264	if s.Id == nil {
24265		invalidParams.Add(request.NewErrParamRequired("Id"))
24266	}
24267	if s.Id != nil && len(*s.Id) < 1 {
24268		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
24269	}
24270	if s.CloudFrontOriginAccessIdentityConfig != nil {
24271		if err := s.CloudFrontOriginAccessIdentityConfig.Validate(); err != nil {
24272			invalidParams.AddNested("CloudFrontOriginAccessIdentityConfig", err.(request.ErrInvalidParams))
24273		}
24274	}
24275
24276	if invalidParams.Len() > 0 {
24277		return invalidParams
24278	}
24279	return nil
24280}
24281
24282// SetCloudFrontOriginAccessIdentityConfig sets the CloudFrontOriginAccessIdentityConfig field's value.
24283func (s *UpdateCloudFrontOriginAccessIdentityInput) SetCloudFrontOriginAccessIdentityConfig(v *OriginAccessIdentityConfig) *UpdateCloudFrontOriginAccessIdentityInput {
24284	s.CloudFrontOriginAccessIdentityConfig = v
24285	return s
24286}
24287
24288// SetId sets the Id field's value.
24289func (s *UpdateCloudFrontOriginAccessIdentityInput) SetId(v string) *UpdateCloudFrontOriginAccessIdentityInput {
24290	s.Id = &v
24291	return s
24292}
24293
24294// SetIfMatch sets the IfMatch field's value.
24295func (s *UpdateCloudFrontOriginAccessIdentityInput) SetIfMatch(v string) *UpdateCloudFrontOriginAccessIdentityInput {
24296	s.IfMatch = &v
24297	return s
24298}
24299
24300// The returned result of the corresponding request.
24301type UpdateCloudFrontOriginAccessIdentityOutput struct {
24302	_ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentity"`
24303
24304	// The origin access identity's information.
24305	CloudFrontOriginAccessIdentity *OriginAccessIdentity `type:"structure"`
24306
24307	// The current version of the configuration. For example: E2QWRUHAPOMQZL.
24308	ETag *string `location:"header" locationName:"ETag" type:"string"`
24309}
24310
24311// String returns the string representation
24312func (s UpdateCloudFrontOriginAccessIdentityOutput) String() string {
24313	return awsutil.Prettify(s)
24314}
24315
24316// GoString returns the string representation
24317func (s UpdateCloudFrontOriginAccessIdentityOutput) GoString() string {
24318	return s.String()
24319}
24320
24321// SetCloudFrontOriginAccessIdentity sets the CloudFrontOriginAccessIdentity field's value.
24322func (s *UpdateCloudFrontOriginAccessIdentityOutput) SetCloudFrontOriginAccessIdentity(v *OriginAccessIdentity) *UpdateCloudFrontOriginAccessIdentityOutput {
24323	s.CloudFrontOriginAccessIdentity = v
24324	return s
24325}
24326
24327// SetETag sets the ETag field's value.
24328func (s *UpdateCloudFrontOriginAccessIdentityOutput) SetETag(v string) *UpdateCloudFrontOriginAccessIdentityOutput {
24329	s.ETag = &v
24330	return s
24331}
24332
24333// The request to update a distribution.
24334type UpdateDistributionInput struct {
24335	_ struct{} `locationName:"UpdateDistributionRequest" type:"structure" payload:"DistributionConfig"`
24336
24337	// The distribution's configuration information.
24338	//
24339	// DistributionConfig is a required field
24340	DistributionConfig *DistributionConfig `locationName:"DistributionConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
24341
24342	// The distribution's id.
24343	//
24344	// Id is a required field
24345	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
24346
24347	// The value of the ETag header that you received when retrieving the distribution's
24348	// configuration. For example: E2QWRUHAPOMQZL.
24349	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
24350}
24351
24352// String returns the string representation
24353func (s UpdateDistributionInput) String() string {
24354	return awsutil.Prettify(s)
24355}
24356
24357// GoString returns the string representation
24358func (s UpdateDistributionInput) GoString() string {
24359	return s.String()
24360}
24361
24362// Validate inspects the fields of the type to determine if they are valid.
24363func (s *UpdateDistributionInput) Validate() error {
24364	invalidParams := request.ErrInvalidParams{Context: "UpdateDistributionInput"}
24365	if s.DistributionConfig == nil {
24366		invalidParams.Add(request.NewErrParamRequired("DistributionConfig"))
24367	}
24368	if s.Id == nil {
24369		invalidParams.Add(request.NewErrParamRequired("Id"))
24370	}
24371	if s.Id != nil && len(*s.Id) < 1 {
24372		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
24373	}
24374	if s.DistributionConfig != nil {
24375		if err := s.DistributionConfig.Validate(); err != nil {
24376			invalidParams.AddNested("DistributionConfig", err.(request.ErrInvalidParams))
24377		}
24378	}
24379
24380	if invalidParams.Len() > 0 {
24381		return invalidParams
24382	}
24383	return nil
24384}
24385
24386// SetDistributionConfig sets the DistributionConfig field's value.
24387func (s *UpdateDistributionInput) SetDistributionConfig(v *DistributionConfig) *UpdateDistributionInput {
24388	s.DistributionConfig = v
24389	return s
24390}
24391
24392// SetId sets the Id field's value.
24393func (s *UpdateDistributionInput) SetId(v string) *UpdateDistributionInput {
24394	s.Id = &v
24395	return s
24396}
24397
24398// SetIfMatch sets the IfMatch field's value.
24399func (s *UpdateDistributionInput) SetIfMatch(v string) *UpdateDistributionInput {
24400	s.IfMatch = &v
24401	return s
24402}
24403
24404// The returned result of the corresponding request.
24405type UpdateDistributionOutput struct {
24406	_ struct{} `type:"structure" payload:"Distribution"`
24407
24408	// The distribution's information.
24409	Distribution *Distribution `type:"structure"`
24410
24411	// The current version of the configuration. For example: E2QWRUHAPOMQZL.
24412	ETag *string `location:"header" locationName:"ETag" type:"string"`
24413}
24414
24415// String returns the string representation
24416func (s UpdateDistributionOutput) String() string {
24417	return awsutil.Prettify(s)
24418}
24419
24420// GoString returns the string representation
24421func (s UpdateDistributionOutput) GoString() string {
24422	return s.String()
24423}
24424
24425// SetDistribution sets the Distribution field's value.
24426func (s *UpdateDistributionOutput) SetDistribution(v *Distribution) *UpdateDistributionOutput {
24427	s.Distribution = v
24428	return s
24429}
24430
24431// SetETag sets the ETag field's value.
24432func (s *UpdateDistributionOutput) SetETag(v string) *UpdateDistributionOutput {
24433	s.ETag = &v
24434	return s
24435}
24436
24437type UpdateFieldLevelEncryptionConfigInput struct {
24438	_ struct{} `locationName:"UpdateFieldLevelEncryptionConfigRequest" type:"structure" payload:"FieldLevelEncryptionConfig"`
24439
24440	// Request to update a field-level encryption configuration.
24441	//
24442	// FieldLevelEncryptionConfig is a required field
24443	FieldLevelEncryptionConfig *FieldLevelEncryptionConfig `locationName:"FieldLevelEncryptionConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
24444
24445	// The ID of the configuration you want to update.
24446	//
24447	// Id is a required field
24448	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
24449
24450	// The value of the ETag header that you received when retrieving the configuration
24451	// identity to update. For example: E2QWRUHAPOMQZL.
24452	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
24453}
24454
24455// String returns the string representation
24456func (s UpdateFieldLevelEncryptionConfigInput) String() string {
24457	return awsutil.Prettify(s)
24458}
24459
24460// GoString returns the string representation
24461func (s UpdateFieldLevelEncryptionConfigInput) GoString() string {
24462	return s.String()
24463}
24464
24465// Validate inspects the fields of the type to determine if they are valid.
24466func (s *UpdateFieldLevelEncryptionConfigInput) Validate() error {
24467	invalidParams := request.ErrInvalidParams{Context: "UpdateFieldLevelEncryptionConfigInput"}
24468	if s.FieldLevelEncryptionConfig == nil {
24469		invalidParams.Add(request.NewErrParamRequired("FieldLevelEncryptionConfig"))
24470	}
24471	if s.Id == nil {
24472		invalidParams.Add(request.NewErrParamRequired("Id"))
24473	}
24474	if s.Id != nil && len(*s.Id) < 1 {
24475		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
24476	}
24477	if s.FieldLevelEncryptionConfig != nil {
24478		if err := s.FieldLevelEncryptionConfig.Validate(); err != nil {
24479			invalidParams.AddNested("FieldLevelEncryptionConfig", err.(request.ErrInvalidParams))
24480		}
24481	}
24482
24483	if invalidParams.Len() > 0 {
24484		return invalidParams
24485	}
24486	return nil
24487}
24488
24489// SetFieldLevelEncryptionConfig sets the FieldLevelEncryptionConfig field's value.
24490func (s *UpdateFieldLevelEncryptionConfigInput) SetFieldLevelEncryptionConfig(v *FieldLevelEncryptionConfig) *UpdateFieldLevelEncryptionConfigInput {
24491	s.FieldLevelEncryptionConfig = v
24492	return s
24493}
24494
24495// SetId sets the Id field's value.
24496func (s *UpdateFieldLevelEncryptionConfigInput) SetId(v string) *UpdateFieldLevelEncryptionConfigInput {
24497	s.Id = &v
24498	return s
24499}
24500
24501// SetIfMatch sets the IfMatch field's value.
24502func (s *UpdateFieldLevelEncryptionConfigInput) SetIfMatch(v string) *UpdateFieldLevelEncryptionConfigInput {
24503	s.IfMatch = &v
24504	return s
24505}
24506
24507type UpdateFieldLevelEncryptionConfigOutput struct {
24508	_ struct{} `type:"structure" payload:"FieldLevelEncryption"`
24509
24510	// The value of the ETag header that you received when updating the configuration.
24511	// For example: E2QWRUHAPOMQZL.
24512	ETag *string `location:"header" locationName:"ETag" type:"string"`
24513
24514	// Return the results of updating the configuration.
24515	FieldLevelEncryption *FieldLevelEncryption `type:"structure"`
24516}
24517
24518// String returns the string representation
24519func (s UpdateFieldLevelEncryptionConfigOutput) String() string {
24520	return awsutil.Prettify(s)
24521}
24522
24523// GoString returns the string representation
24524func (s UpdateFieldLevelEncryptionConfigOutput) GoString() string {
24525	return s.String()
24526}
24527
24528// SetETag sets the ETag field's value.
24529func (s *UpdateFieldLevelEncryptionConfigOutput) SetETag(v string) *UpdateFieldLevelEncryptionConfigOutput {
24530	s.ETag = &v
24531	return s
24532}
24533
24534// SetFieldLevelEncryption sets the FieldLevelEncryption field's value.
24535func (s *UpdateFieldLevelEncryptionConfigOutput) SetFieldLevelEncryption(v *FieldLevelEncryption) *UpdateFieldLevelEncryptionConfigOutput {
24536	s.FieldLevelEncryption = v
24537	return s
24538}
24539
24540type UpdateFieldLevelEncryptionProfileInput struct {
24541	_ struct{} `locationName:"UpdateFieldLevelEncryptionProfileRequest" type:"structure" payload:"FieldLevelEncryptionProfileConfig"`
24542
24543	// Request to update a field-level encryption profile.
24544	//
24545	// FieldLevelEncryptionProfileConfig is a required field
24546	FieldLevelEncryptionProfileConfig *FieldLevelEncryptionProfileConfig `locationName:"FieldLevelEncryptionProfileConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
24547
24548	// The ID of the field-level encryption profile request.
24549	//
24550	// Id is a required field
24551	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
24552
24553	// The value of the ETag header that you received when retrieving the profile
24554	// identity to update. For example: E2QWRUHAPOMQZL.
24555	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
24556}
24557
24558// String returns the string representation
24559func (s UpdateFieldLevelEncryptionProfileInput) String() string {
24560	return awsutil.Prettify(s)
24561}
24562
24563// GoString returns the string representation
24564func (s UpdateFieldLevelEncryptionProfileInput) GoString() string {
24565	return s.String()
24566}
24567
24568// Validate inspects the fields of the type to determine if they are valid.
24569func (s *UpdateFieldLevelEncryptionProfileInput) Validate() error {
24570	invalidParams := request.ErrInvalidParams{Context: "UpdateFieldLevelEncryptionProfileInput"}
24571	if s.FieldLevelEncryptionProfileConfig == nil {
24572		invalidParams.Add(request.NewErrParamRequired("FieldLevelEncryptionProfileConfig"))
24573	}
24574	if s.Id == nil {
24575		invalidParams.Add(request.NewErrParamRequired("Id"))
24576	}
24577	if s.Id != nil && len(*s.Id) < 1 {
24578		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
24579	}
24580	if s.FieldLevelEncryptionProfileConfig != nil {
24581		if err := s.FieldLevelEncryptionProfileConfig.Validate(); err != nil {
24582			invalidParams.AddNested("FieldLevelEncryptionProfileConfig", err.(request.ErrInvalidParams))
24583		}
24584	}
24585
24586	if invalidParams.Len() > 0 {
24587		return invalidParams
24588	}
24589	return nil
24590}
24591
24592// SetFieldLevelEncryptionProfileConfig sets the FieldLevelEncryptionProfileConfig field's value.
24593func (s *UpdateFieldLevelEncryptionProfileInput) SetFieldLevelEncryptionProfileConfig(v *FieldLevelEncryptionProfileConfig) *UpdateFieldLevelEncryptionProfileInput {
24594	s.FieldLevelEncryptionProfileConfig = v
24595	return s
24596}
24597
24598// SetId sets the Id field's value.
24599func (s *UpdateFieldLevelEncryptionProfileInput) SetId(v string) *UpdateFieldLevelEncryptionProfileInput {
24600	s.Id = &v
24601	return s
24602}
24603
24604// SetIfMatch sets the IfMatch field's value.
24605func (s *UpdateFieldLevelEncryptionProfileInput) SetIfMatch(v string) *UpdateFieldLevelEncryptionProfileInput {
24606	s.IfMatch = &v
24607	return s
24608}
24609
24610type UpdateFieldLevelEncryptionProfileOutput struct {
24611	_ struct{} `type:"structure" payload:"FieldLevelEncryptionProfile"`
24612
24613	// The result of the field-level encryption profile request.
24614	ETag *string `location:"header" locationName:"ETag" type:"string"`
24615
24616	// Return the results of updating the profile.
24617	FieldLevelEncryptionProfile *FieldLevelEncryptionProfile `type:"structure"`
24618}
24619
24620// String returns the string representation
24621func (s UpdateFieldLevelEncryptionProfileOutput) String() string {
24622	return awsutil.Prettify(s)
24623}
24624
24625// GoString returns the string representation
24626func (s UpdateFieldLevelEncryptionProfileOutput) GoString() string {
24627	return s.String()
24628}
24629
24630// SetETag sets the ETag field's value.
24631func (s *UpdateFieldLevelEncryptionProfileOutput) SetETag(v string) *UpdateFieldLevelEncryptionProfileOutput {
24632	s.ETag = &v
24633	return s
24634}
24635
24636// SetFieldLevelEncryptionProfile sets the FieldLevelEncryptionProfile field's value.
24637func (s *UpdateFieldLevelEncryptionProfileOutput) SetFieldLevelEncryptionProfile(v *FieldLevelEncryptionProfile) *UpdateFieldLevelEncryptionProfileOutput {
24638	s.FieldLevelEncryptionProfile = v
24639	return s
24640}
24641
24642type UpdateFunctionInput struct {
24643	_ struct{} `locationName:"UpdateFunctionRequest" type:"structure" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
24644
24645	// The function code. For more information about writing a CloudFront function,
24646	// see Writing function code for CloudFront Functions (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/writing-function-code.html)
24647	// in the Amazon CloudFront Developer Guide.
24648	//
24649	// FunctionCode is automatically base64 encoded/decoded by the SDK.
24650	//
24651	// FunctionCode is a required field
24652	FunctionCode []byte `min:"1" type:"blob" required:"true" sensitive:"true"`
24653
24654	// Configuration information about the function.
24655	//
24656	// FunctionConfig is a required field
24657	FunctionConfig *FunctionConfig `type:"structure" required:"true"`
24658
24659	// The current version (ETag value) of the function that you are updating, which
24660	// you can get using DescribeFunction.
24661	//
24662	// IfMatch is a required field
24663	IfMatch *string `location:"header" locationName:"If-Match" type:"string" required:"true"`
24664
24665	// The name of the function that you are updating.
24666	//
24667	// Name is a required field
24668	Name *string `location:"uri" locationName:"Name" type:"string" required:"true"`
24669}
24670
24671// String returns the string representation
24672func (s UpdateFunctionInput) String() string {
24673	return awsutil.Prettify(s)
24674}
24675
24676// GoString returns the string representation
24677func (s UpdateFunctionInput) GoString() string {
24678	return s.String()
24679}
24680
24681// Validate inspects the fields of the type to determine if they are valid.
24682func (s *UpdateFunctionInput) Validate() error {
24683	invalidParams := request.ErrInvalidParams{Context: "UpdateFunctionInput"}
24684	if s.FunctionCode == nil {
24685		invalidParams.Add(request.NewErrParamRequired("FunctionCode"))
24686	}
24687	if s.FunctionCode != nil && len(s.FunctionCode) < 1 {
24688		invalidParams.Add(request.NewErrParamMinLen("FunctionCode", 1))
24689	}
24690	if s.FunctionConfig == nil {
24691		invalidParams.Add(request.NewErrParamRequired("FunctionConfig"))
24692	}
24693	if s.IfMatch == nil {
24694		invalidParams.Add(request.NewErrParamRequired("IfMatch"))
24695	}
24696	if s.Name == nil {
24697		invalidParams.Add(request.NewErrParamRequired("Name"))
24698	}
24699	if s.Name != nil && len(*s.Name) < 1 {
24700		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
24701	}
24702	if s.FunctionConfig != nil {
24703		if err := s.FunctionConfig.Validate(); err != nil {
24704			invalidParams.AddNested("FunctionConfig", err.(request.ErrInvalidParams))
24705		}
24706	}
24707
24708	if invalidParams.Len() > 0 {
24709		return invalidParams
24710	}
24711	return nil
24712}
24713
24714// SetFunctionCode sets the FunctionCode field's value.
24715func (s *UpdateFunctionInput) SetFunctionCode(v []byte) *UpdateFunctionInput {
24716	s.FunctionCode = v
24717	return s
24718}
24719
24720// SetFunctionConfig sets the FunctionConfig field's value.
24721func (s *UpdateFunctionInput) SetFunctionConfig(v *FunctionConfig) *UpdateFunctionInput {
24722	s.FunctionConfig = v
24723	return s
24724}
24725
24726// SetIfMatch sets the IfMatch field's value.
24727func (s *UpdateFunctionInput) SetIfMatch(v string) *UpdateFunctionInput {
24728	s.IfMatch = &v
24729	return s
24730}
24731
24732// SetName sets the Name field's value.
24733func (s *UpdateFunctionInput) SetName(v string) *UpdateFunctionInput {
24734	s.Name = &v
24735	return s
24736}
24737
24738type UpdateFunctionOutput struct {
24739	_ struct{} `type:"structure" payload:"FunctionSummary"`
24740
24741	// The version identifier for the current version of the CloudFront function.
24742	ETag *string `location:"header" locationName:"ETtag" type:"string"`
24743
24744	// Contains configuration information and metadata about a CloudFront function.
24745	FunctionSummary *FunctionSummary `type:"structure"`
24746}
24747
24748// String returns the string representation
24749func (s UpdateFunctionOutput) String() string {
24750	return awsutil.Prettify(s)
24751}
24752
24753// GoString returns the string representation
24754func (s UpdateFunctionOutput) GoString() string {
24755	return s.String()
24756}
24757
24758// SetETag sets the ETag field's value.
24759func (s *UpdateFunctionOutput) SetETag(v string) *UpdateFunctionOutput {
24760	s.ETag = &v
24761	return s
24762}
24763
24764// SetFunctionSummary sets the FunctionSummary field's value.
24765func (s *UpdateFunctionOutput) SetFunctionSummary(v *FunctionSummary) *UpdateFunctionOutput {
24766	s.FunctionSummary = v
24767	return s
24768}
24769
24770type UpdateKeyGroupInput struct {
24771	_ struct{} `locationName:"UpdateKeyGroupRequest" type:"structure" payload:"KeyGroupConfig"`
24772
24773	// The identifier of the key group that you are updating.
24774	//
24775	// Id is a required field
24776	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
24777
24778	// The version of the key group that you are updating. The version is the key
24779	// group’s ETag value.
24780	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
24781
24782	// The key group configuration.
24783	//
24784	// KeyGroupConfig is a required field
24785	KeyGroupConfig *KeyGroupConfig `locationName:"KeyGroupConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
24786}
24787
24788// String returns the string representation
24789func (s UpdateKeyGroupInput) String() string {
24790	return awsutil.Prettify(s)
24791}
24792
24793// GoString returns the string representation
24794func (s UpdateKeyGroupInput) GoString() string {
24795	return s.String()
24796}
24797
24798// Validate inspects the fields of the type to determine if they are valid.
24799func (s *UpdateKeyGroupInput) Validate() error {
24800	invalidParams := request.ErrInvalidParams{Context: "UpdateKeyGroupInput"}
24801	if s.Id == nil {
24802		invalidParams.Add(request.NewErrParamRequired("Id"))
24803	}
24804	if s.Id != nil && len(*s.Id) < 1 {
24805		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
24806	}
24807	if s.KeyGroupConfig == nil {
24808		invalidParams.Add(request.NewErrParamRequired("KeyGroupConfig"))
24809	}
24810	if s.KeyGroupConfig != nil {
24811		if err := s.KeyGroupConfig.Validate(); err != nil {
24812			invalidParams.AddNested("KeyGroupConfig", err.(request.ErrInvalidParams))
24813		}
24814	}
24815
24816	if invalidParams.Len() > 0 {
24817		return invalidParams
24818	}
24819	return nil
24820}
24821
24822// SetId sets the Id field's value.
24823func (s *UpdateKeyGroupInput) SetId(v string) *UpdateKeyGroupInput {
24824	s.Id = &v
24825	return s
24826}
24827
24828// SetIfMatch sets the IfMatch field's value.
24829func (s *UpdateKeyGroupInput) SetIfMatch(v string) *UpdateKeyGroupInput {
24830	s.IfMatch = &v
24831	return s
24832}
24833
24834// SetKeyGroupConfig sets the KeyGroupConfig field's value.
24835func (s *UpdateKeyGroupInput) SetKeyGroupConfig(v *KeyGroupConfig) *UpdateKeyGroupInput {
24836	s.KeyGroupConfig = v
24837	return s
24838}
24839
24840type UpdateKeyGroupOutput struct {
24841	_ struct{} `type:"structure" payload:"KeyGroup"`
24842
24843	// The identifier for this version of the key group.
24844	ETag *string `location:"header" locationName:"ETag" type:"string"`
24845
24846	// The key group that was just updated.
24847	KeyGroup *KeyGroup `type:"structure"`
24848}
24849
24850// String returns the string representation
24851func (s UpdateKeyGroupOutput) String() string {
24852	return awsutil.Prettify(s)
24853}
24854
24855// GoString returns the string representation
24856func (s UpdateKeyGroupOutput) GoString() string {
24857	return s.String()
24858}
24859
24860// SetETag sets the ETag field's value.
24861func (s *UpdateKeyGroupOutput) SetETag(v string) *UpdateKeyGroupOutput {
24862	s.ETag = &v
24863	return s
24864}
24865
24866// SetKeyGroup sets the KeyGroup field's value.
24867func (s *UpdateKeyGroupOutput) SetKeyGroup(v *KeyGroup) *UpdateKeyGroupOutput {
24868	s.KeyGroup = v
24869	return s
24870}
24871
24872type UpdateOriginRequestPolicyInput struct {
24873	_ struct{} `locationName:"UpdateOriginRequestPolicyRequest" type:"structure" payload:"OriginRequestPolicyConfig"`
24874
24875	// The unique identifier for the origin request policy that you are updating.
24876	// The identifier is returned in a cache behavior’s OriginRequestPolicyId
24877	// field in the response to GetDistributionConfig.
24878	//
24879	// Id is a required field
24880	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
24881
24882	// The version of the origin request policy that you are updating. The version
24883	// is returned in the origin request policy’s ETag field in the response to
24884	// GetOriginRequestPolicyConfig.
24885	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
24886
24887	// An origin request policy configuration.
24888	//
24889	// OriginRequestPolicyConfig is a required field
24890	OriginRequestPolicyConfig *OriginRequestPolicyConfig `locationName:"OriginRequestPolicyConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
24891}
24892
24893// String returns the string representation
24894func (s UpdateOriginRequestPolicyInput) String() string {
24895	return awsutil.Prettify(s)
24896}
24897
24898// GoString returns the string representation
24899func (s UpdateOriginRequestPolicyInput) GoString() string {
24900	return s.String()
24901}
24902
24903// Validate inspects the fields of the type to determine if they are valid.
24904func (s *UpdateOriginRequestPolicyInput) Validate() error {
24905	invalidParams := request.ErrInvalidParams{Context: "UpdateOriginRequestPolicyInput"}
24906	if s.Id == nil {
24907		invalidParams.Add(request.NewErrParamRequired("Id"))
24908	}
24909	if s.Id != nil && len(*s.Id) < 1 {
24910		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
24911	}
24912	if s.OriginRequestPolicyConfig == nil {
24913		invalidParams.Add(request.NewErrParamRequired("OriginRequestPolicyConfig"))
24914	}
24915	if s.OriginRequestPolicyConfig != nil {
24916		if err := s.OriginRequestPolicyConfig.Validate(); err != nil {
24917			invalidParams.AddNested("OriginRequestPolicyConfig", err.(request.ErrInvalidParams))
24918		}
24919	}
24920
24921	if invalidParams.Len() > 0 {
24922		return invalidParams
24923	}
24924	return nil
24925}
24926
24927// SetId sets the Id field's value.
24928func (s *UpdateOriginRequestPolicyInput) SetId(v string) *UpdateOriginRequestPolicyInput {
24929	s.Id = &v
24930	return s
24931}
24932
24933// SetIfMatch sets the IfMatch field's value.
24934func (s *UpdateOriginRequestPolicyInput) SetIfMatch(v string) *UpdateOriginRequestPolicyInput {
24935	s.IfMatch = &v
24936	return s
24937}
24938
24939// SetOriginRequestPolicyConfig sets the OriginRequestPolicyConfig field's value.
24940func (s *UpdateOriginRequestPolicyInput) SetOriginRequestPolicyConfig(v *OriginRequestPolicyConfig) *UpdateOriginRequestPolicyInput {
24941	s.OriginRequestPolicyConfig = v
24942	return s
24943}
24944
24945type UpdateOriginRequestPolicyOutput struct {
24946	_ struct{} `type:"structure" payload:"OriginRequestPolicy"`
24947
24948	// The current version of the origin request policy.
24949	ETag *string `location:"header" locationName:"ETag" type:"string"`
24950
24951	// An origin request policy.
24952	OriginRequestPolicy *OriginRequestPolicy `type:"structure"`
24953}
24954
24955// String returns the string representation
24956func (s UpdateOriginRequestPolicyOutput) String() string {
24957	return awsutil.Prettify(s)
24958}
24959
24960// GoString returns the string representation
24961func (s UpdateOriginRequestPolicyOutput) GoString() string {
24962	return s.String()
24963}
24964
24965// SetETag sets the ETag field's value.
24966func (s *UpdateOriginRequestPolicyOutput) SetETag(v string) *UpdateOriginRequestPolicyOutput {
24967	s.ETag = &v
24968	return s
24969}
24970
24971// SetOriginRequestPolicy sets the OriginRequestPolicy field's value.
24972func (s *UpdateOriginRequestPolicyOutput) SetOriginRequestPolicy(v *OriginRequestPolicy) *UpdateOriginRequestPolicyOutput {
24973	s.OriginRequestPolicy = v
24974	return s
24975}
24976
24977type UpdatePublicKeyInput struct {
24978	_ struct{} `locationName:"UpdatePublicKeyRequest" type:"structure" payload:"PublicKeyConfig"`
24979
24980	// The identifier of the public key that you are updating.
24981	//
24982	// Id is a required field
24983	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
24984
24985	// The value of the ETag header that you received when retrieving the public
24986	// key to update. For example: E2QWRUHAPOMQZL.
24987	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
24988
24989	// A public key configuration.
24990	//
24991	// PublicKeyConfig is a required field
24992	PublicKeyConfig *PublicKeyConfig `locationName:"PublicKeyConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
24993}
24994
24995// String returns the string representation
24996func (s UpdatePublicKeyInput) String() string {
24997	return awsutil.Prettify(s)
24998}
24999
25000// GoString returns the string representation
25001func (s UpdatePublicKeyInput) GoString() string {
25002	return s.String()
25003}
25004
25005// Validate inspects the fields of the type to determine if they are valid.
25006func (s *UpdatePublicKeyInput) Validate() error {
25007	invalidParams := request.ErrInvalidParams{Context: "UpdatePublicKeyInput"}
25008	if s.Id == nil {
25009		invalidParams.Add(request.NewErrParamRequired("Id"))
25010	}
25011	if s.Id != nil && len(*s.Id) < 1 {
25012		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
25013	}
25014	if s.PublicKeyConfig == nil {
25015		invalidParams.Add(request.NewErrParamRequired("PublicKeyConfig"))
25016	}
25017	if s.PublicKeyConfig != nil {
25018		if err := s.PublicKeyConfig.Validate(); err != nil {
25019			invalidParams.AddNested("PublicKeyConfig", err.(request.ErrInvalidParams))
25020		}
25021	}
25022
25023	if invalidParams.Len() > 0 {
25024		return invalidParams
25025	}
25026	return nil
25027}
25028
25029// SetId sets the Id field's value.
25030func (s *UpdatePublicKeyInput) SetId(v string) *UpdatePublicKeyInput {
25031	s.Id = &v
25032	return s
25033}
25034
25035// SetIfMatch sets the IfMatch field's value.
25036func (s *UpdatePublicKeyInput) SetIfMatch(v string) *UpdatePublicKeyInput {
25037	s.IfMatch = &v
25038	return s
25039}
25040
25041// SetPublicKeyConfig sets the PublicKeyConfig field's value.
25042func (s *UpdatePublicKeyInput) SetPublicKeyConfig(v *PublicKeyConfig) *UpdatePublicKeyInput {
25043	s.PublicKeyConfig = v
25044	return s
25045}
25046
25047type UpdatePublicKeyOutput struct {
25048	_ struct{} `type:"structure" payload:"PublicKey"`
25049
25050	// The identifier of the current version of the public key.
25051	ETag *string `location:"header" locationName:"ETag" type:"string"`
25052
25053	// The public key.
25054	PublicKey *PublicKey `type:"structure"`
25055}
25056
25057// String returns the string representation
25058func (s UpdatePublicKeyOutput) String() string {
25059	return awsutil.Prettify(s)
25060}
25061
25062// GoString returns the string representation
25063func (s UpdatePublicKeyOutput) GoString() string {
25064	return s.String()
25065}
25066
25067// SetETag sets the ETag field's value.
25068func (s *UpdatePublicKeyOutput) SetETag(v string) *UpdatePublicKeyOutput {
25069	s.ETag = &v
25070	return s
25071}
25072
25073// SetPublicKey sets the PublicKey field's value.
25074func (s *UpdatePublicKeyOutput) SetPublicKey(v *PublicKey) *UpdatePublicKeyOutput {
25075	s.PublicKey = v
25076	return s
25077}
25078
25079type UpdateRealtimeLogConfigInput struct {
25080	_ struct{} `locationName:"UpdateRealtimeLogConfigRequest" type:"structure" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
25081
25082	// The Amazon Resource Name (ARN) for this real-time log configuration.
25083	ARN *string `type:"string"`
25084
25085	// Contains information about the Amazon Kinesis data stream where you are sending
25086	// real-time log data.
25087	EndPoints []*EndPoint `type:"list"`
25088
25089	// A list of fields to include in each real-time log record.
25090	//
25091	// For more information about fields, see Real-time log configuration fields
25092	// (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields)
25093	// in the Amazon CloudFront Developer Guide.
25094	Fields []*string `locationNameList:"Field" type:"list"`
25095
25096	// The name for this real-time log configuration.
25097	Name *string `type:"string"`
25098
25099	// The sampling rate for this real-time log configuration. The sampling rate
25100	// determines the percentage of viewer requests that are represented in the
25101	// real-time log data. You must provide an integer between 1 and 100, inclusive.
25102	SamplingRate *int64 `type:"long"`
25103}
25104
25105// String returns the string representation
25106func (s UpdateRealtimeLogConfigInput) String() string {
25107	return awsutil.Prettify(s)
25108}
25109
25110// GoString returns the string representation
25111func (s UpdateRealtimeLogConfigInput) GoString() string {
25112	return s.String()
25113}
25114
25115// Validate inspects the fields of the type to determine if they are valid.
25116func (s *UpdateRealtimeLogConfigInput) Validate() error {
25117	invalidParams := request.ErrInvalidParams{Context: "UpdateRealtimeLogConfigInput"}
25118	if s.EndPoints != nil {
25119		for i, v := range s.EndPoints {
25120			if v == nil {
25121				continue
25122			}
25123			if err := v.Validate(); err != nil {
25124				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EndPoints", i), err.(request.ErrInvalidParams))
25125			}
25126		}
25127	}
25128
25129	if invalidParams.Len() > 0 {
25130		return invalidParams
25131	}
25132	return nil
25133}
25134
25135// SetARN sets the ARN field's value.
25136func (s *UpdateRealtimeLogConfigInput) SetARN(v string) *UpdateRealtimeLogConfigInput {
25137	s.ARN = &v
25138	return s
25139}
25140
25141// SetEndPoints sets the EndPoints field's value.
25142func (s *UpdateRealtimeLogConfigInput) SetEndPoints(v []*EndPoint) *UpdateRealtimeLogConfigInput {
25143	s.EndPoints = v
25144	return s
25145}
25146
25147// SetFields sets the Fields field's value.
25148func (s *UpdateRealtimeLogConfigInput) SetFields(v []*string) *UpdateRealtimeLogConfigInput {
25149	s.Fields = v
25150	return s
25151}
25152
25153// SetName sets the Name field's value.
25154func (s *UpdateRealtimeLogConfigInput) SetName(v string) *UpdateRealtimeLogConfigInput {
25155	s.Name = &v
25156	return s
25157}
25158
25159// SetSamplingRate sets the SamplingRate field's value.
25160func (s *UpdateRealtimeLogConfigInput) SetSamplingRate(v int64) *UpdateRealtimeLogConfigInput {
25161	s.SamplingRate = &v
25162	return s
25163}
25164
25165type UpdateRealtimeLogConfigOutput struct {
25166	_ struct{} `type:"structure"`
25167
25168	// A real-time log configuration.
25169	RealtimeLogConfig *RealtimeLogConfig `type:"structure"`
25170}
25171
25172// String returns the string representation
25173func (s UpdateRealtimeLogConfigOutput) String() string {
25174	return awsutil.Prettify(s)
25175}
25176
25177// GoString returns the string representation
25178func (s UpdateRealtimeLogConfigOutput) GoString() string {
25179	return s.String()
25180}
25181
25182// SetRealtimeLogConfig sets the RealtimeLogConfig field's value.
25183func (s *UpdateRealtimeLogConfigOutput) SetRealtimeLogConfig(v *RealtimeLogConfig) *UpdateRealtimeLogConfigOutput {
25184	s.RealtimeLogConfig = v
25185	return s
25186}
25187
25188// The request to update a streaming distribution.
25189type UpdateStreamingDistributionInput struct {
25190	_ struct{} `locationName:"UpdateStreamingDistributionRequest" type:"structure" payload:"StreamingDistributionConfig"`
25191
25192	// The streaming distribution's id.
25193	//
25194	// Id is a required field
25195	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
25196
25197	// The value of the ETag header that you received when retrieving the streaming
25198	// distribution's configuration. For example: E2QWRUHAPOMQZL.
25199	IfMatch *string `location:"header" locationName:"If-Match" type:"string"`
25200
25201	// The streaming distribution's configuration information.
25202	//
25203	// StreamingDistributionConfig is a required field
25204	StreamingDistributionConfig *StreamingDistributionConfig `locationName:"StreamingDistributionConfig" type:"structure" required:"true" xmlURI:"http://cloudfront.amazonaws.com/doc/2020-05-31/"`
25205}
25206
25207// String returns the string representation
25208func (s UpdateStreamingDistributionInput) String() string {
25209	return awsutil.Prettify(s)
25210}
25211
25212// GoString returns the string representation
25213func (s UpdateStreamingDistributionInput) GoString() string {
25214	return s.String()
25215}
25216
25217// Validate inspects the fields of the type to determine if they are valid.
25218func (s *UpdateStreamingDistributionInput) Validate() error {
25219	invalidParams := request.ErrInvalidParams{Context: "UpdateStreamingDistributionInput"}
25220	if s.Id == nil {
25221		invalidParams.Add(request.NewErrParamRequired("Id"))
25222	}
25223	if s.Id != nil && len(*s.Id) < 1 {
25224		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
25225	}
25226	if s.StreamingDistributionConfig == nil {
25227		invalidParams.Add(request.NewErrParamRequired("StreamingDistributionConfig"))
25228	}
25229	if s.StreamingDistributionConfig != nil {
25230		if err := s.StreamingDistributionConfig.Validate(); err != nil {
25231			invalidParams.AddNested("StreamingDistributionConfig", err.(request.ErrInvalidParams))
25232		}
25233	}
25234
25235	if invalidParams.Len() > 0 {
25236		return invalidParams
25237	}
25238	return nil
25239}
25240
25241// SetId sets the Id field's value.
25242func (s *UpdateStreamingDistributionInput) SetId(v string) *UpdateStreamingDistributionInput {
25243	s.Id = &v
25244	return s
25245}
25246
25247// SetIfMatch sets the IfMatch field's value.
25248func (s *UpdateStreamingDistributionInput) SetIfMatch(v string) *UpdateStreamingDistributionInput {
25249	s.IfMatch = &v
25250	return s
25251}
25252
25253// SetStreamingDistributionConfig sets the StreamingDistributionConfig field's value.
25254func (s *UpdateStreamingDistributionInput) SetStreamingDistributionConfig(v *StreamingDistributionConfig) *UpdateStreamingDistributionInput {
25255	s.StreamingDistributionConfig = v
25256	return s
25257}
25258
25259// The returned result of the corresponding request.
25260type UpdateStreamingDistributionOutput struct {
25261	_ struct{} `type:"structure" payload:"StreamingDistribution"`
25262
25263	// The current version of the configuration. For example: E2QWRUHAPOMQZL.
25264	ETag *string `location:"header" locationName:"ETag" type:"string"`
25265
25266	// The streaming distribution's information.
25267	StreamingDistribution *StreamingDistribution `type:"structure"`
25268}
25269
25270// String returns the string representation
25271func (s UpdateStreamingDistributionOutput) String() string {
25272	return awsutil.Prettify(s)
25273}
25274
25275// GoString returns the string representation
25276func (s UpdateStreamingDistributionOutput) GoString() string {
25277	return s.String()
25278}
25279
25280// SetETag sets the ETag field's value.
25281func (s *UpdateStreamingDistributionOutput) SetETag(v string) *UpdateStreamingDistributionOutput {
25282	s.ETag = &v
25283	return s
25284}
25285
25286// SetStreamingDistribution sets the StreamingDistribution field's value.
25287func (s *UpdateStreamingDistributionOutput) SetStreamingDistribution(v *StreamingDistribution) *UpdateStreamingDistributionOutput {
25288	s.StreamingDistribution = v
25289	return s
25290}
25291
25292// A complex type that determines the distribution’s SSL/TLS configuration
25293// for communicating with viewers.
25294//
25295// If the distribution doesn’t use Aliases (also known as alternate domain
25296// names or CNAMEs)—that is, if the distribution uses the CloudFront domain
25297// name such as d111111abcdef8.cloudfront.net—set CloudFrontDefaultCertificate
25298// to true and leave all other fields empty.
25299//
25300// If the distribution uses Aliases (alternate domain names or CNAMEs), use
25301// the fields in this type to specify the following settings:
25302//
25303//    * Which viewers the distribution accepts HTTPS connections from: only
25304//    viewers that support server name indication (SNI) (https://en.wikipedia.org/wiki/Server_Name_Indication)
25305//    (recommended), or all viewers including those that don’t support SNI.
25306//    To accept HTTPS connections from only viewers that support SNI, set SSLSupportMethod
25307//    to sni-only. This is recommended. Most browsers and clients support SNI.
25308//    To accept HTTPS connections from all viewers, including those that don’t
25309//    support SNI, set SSLSupportMethod to vip. This is not recommended, and
25310//    results in additional monthly charges from CloudFront.
25311//
25312//    * The minimum SSL/TLS protocol version that the distribution can use to
25313//    communicate with viewers. To specify a minimum version, choose a value
25314//    for MinimumProtocolVersion. For more information, see Security Policy
25315//    (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy)
25316//    in the Amazon CloudFront Developer Guide.
25317//
25318//    * The location of the SSL/TLS certificate, Certificate Manager (ACM) (https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)
25319//    (recommended) or Identity and Access Management (IAM) (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html).
25320//    You specify the location by setting a value in one of the following fields
25321//    (not both): ACMCertificateArn IAMCertificateId
25322//
25323// All distributions support HTTPS connections from viewers. To require viewers
25324// to use HTTPS only, or to redirect them from HTTP to HTTPS, use ViewerProtocolPolicy
25325// in the CacheBehavior or DefaultCacheBehavior. To specify how CloudFront should
25326// use SSL/TLS to communicate with your custom origin, use CustomOriginConfig.
25327//
25328// For more information, see Using HTTPS with CloudFront (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html)
25329// and Using Alternate Domain Names and HTTPS (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html)
25330// in the Amazon CloudFront Developer Guide.
25331type ViewerCertificate struct {
25332	_ struct{} `type:"structure"`
25333
25334	// If the distribution uses Aliases (alternate domain names or CNAMEs) and the
25335	// SSL/TLS certificate is stored in Certificate Manager (ACM) (https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html),
25336	// provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront
25337	// only supports ACM certificates in the US East (N. Virginia) Region (us-east-1).
25338	//
25339	// If you specify an ACM certificate ARN, you must also specify values for MinimumProtocolVersion
25340	// and SSLSupportMethod.
25341	ACMCertificateArn *string `type:"string"`
25342
25343	// This field is deprecated. Use one of the following fields instead:
25344	//
25345	//    * ACMCertificateArn
25346	//
25347	//    * IAMCertificateId
25348	//
25349	//    * CloudFrontDefaultCertificate
25350	//
25351	// Deprecated: Certificate has been deprecated
25352	Certificate *string `deprecated:"true" type:"string"`
25353
25354	// This field is deprecated. Use one of the following fields instead:
25355	//
25356	//    * ACMCertificateArn
25357	//
25358	//    * IAMCertificateId
25359	//
25360	//    * CloudFrontDefaultCertificate
25361	//
25362	// Deprecated: CertificateSource has been deprecated
25363	CertificateSource *string `deprecated:"true" type:"string" enum:"CertificateSource"`
25364
25365	// If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net,
25366	// set this field to true.
25367	//
25368	// If the distribution uses Aliases (alternate domain names or CNAMEs), set
25369	// this field to false and specify values for the following fields:
25370	//
25371	//    * ACMCertificateArn or IAMCertificateId (specify a value for one, not
25372	//    both)
25373	//
25374	//    * MinimumProtocolVersion
25375	//
25376	//    * SSLSupportMethod
25377	CloudFrontDefaultCertificate *bool `type:"boolean"`
25378
25379	// If the distribution uses Aliases (alternate domain names or CNAMEs) and the
25380	// SSL/TLS certificate is stored in Identity and Access Management (IAM) (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html),
25381	// provide the ID of the IAM certificate.
25382	//
25383	// If you specify an IAM certificate ID, you must also specify values for MinimumProtocolVersion
25384	// and SSLSupportMethod.
25385	IAMCertificateId *string `type:"string"`
25386
25387	// If the distribution uses Aliases (alternate domain names or CNAMEs), specify
25388	// the security policy that you want CloudFront to use for HTTPS connections
25389	// with viewers. The security policy determines two settings:
25390	//
25391	//    * The minimum SSL/TLS protocol that CloudFront can use to communicate
25392	//    with viewers.
25393	//
25394	//    * The ciphers that CloudFront can use to encrypt the content that it returns
25395	//    to viewers.
25396	//
25397	// For more information, see Security Policy (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy)
25398	// and Supported Protocols and Ciphers Between Viewers and CloudFront (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers)
25399	// in the Amazon CloudFront Developer Guide.
25400	//
25401	// On the CloudFront console, this setting is called Security Policy.
25402	//
25403	// When you’re using SNI only (you set SSLSupportMethod to sni-only), you
25404	// must specify TLSv1 or higher.
25405	//
25406	// If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net
25407	// (you set CloudFrontDefaultCertificate to true), CloudFront automatically
25408	// sets the security policy to TLSv1 regardless of the value that you set here.
25409	MinimumProtocolVersion *string `type:"string" enum:"MinimumProtocolVersion"`
25410
25411	// If the distribution uses Aliases (alternate domain names or CNAMEs), specify
25412	// which viewers the distribution accepts HTTPS connections from.
25413	//
25414	//    * sni-only – The distribution accepts HTTPS connections from only viewers
25415	//    that support server name indication (SNI) (https://en.wikipedia.org/wiki/Server_Name_Indication).
25416	//    This is recommended. Most browsers and clients support SNI.
25417	//
25418	//    * vip – The distribution accepts HTTPS connections from all viewers
25419	//    including those that don’t support SNI. This is not recommended, and
25420	//    results in additional monthly charges from CloudFront.
25421	//
25422	//    * static-ip - Do not specify this value unless your distribution has been
25423	//    enabled for this feature by the CloudFront team. If you have a use case
25424	//    that requires static IP addresses for a distribution, contact CloudFront
25425	//    through the Amazon Web Services Support Center (https://console.aws.amazon.com/support/home).
25426	//
25427	// If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net,
25428	// don’t set a value for this field.
25429	SSLSupportMethod *string `type:"string" enum:"SSLSupportMethod"`
25430}
25431
25432// String returns the string representation
25433func (s ViewerCertificate) String() string {
25434	return awsutil.Prettify(s)
25435}
25436
25437// GoString returns the string representation
25438func (s ViewerCertificate) GoString() string {
25439	return s.String()
25440}
25441
25442// SetACMCertificateArn sets the ACMCertificateArn field's value.
25443func (s *ViewerCertificate) SetACMCertificateArn(v string) *ViewerCertificate {
25444	s.ACMCertificateArn = &v
25445	return s
25446}
25447
25448// SetCertificate sets the Certificate field's value.
25449func (s *ViewerCertificate) SetCertificate(v string) *ViewerCertificate {
25450	s.Certificate = &v
25451	return s
25452}
25453
25454// SetCertificateSource sets the CertificateSource field's value.
25455func (s *ViewerCertificate) SetCertificateSource(v string) *ViewerCertificate {
25456	s.CertificateSource = &v
25457	return s
25458}
25459
25460// SetCloudFrontDefaultCertificate sets the CloudFrontDefaultCertificate field's value.
25461func (s *ViewerCertificate) SetCloudFrontDefaultCertificate(v bool) *ViewerCertificate {
25462	s.CloudFrontDefaultCertificate = &v
25463	return s
25464}
25465
25466// SetIAMCertificateId sets the IAMCertificateId field's value.
25467func (s *ViewerCertificate) SetIAMCertificateId(v string) *ViewerCertificate {
25468	s.IAMCertificateId = &v
25469	return s
25470}
25471
25472// SetMinimumProtocolVersion sets the MinimumProtocolVersion field's value.
25473func (s *ViewerCertificate) SetMinimumProtocolVersion(v string) *ViewerCertificate {
25474	s.MinimumProtocolVersion = &v
25475	return s
25476}
25477
25478// SetSSLSupportMethod sets the SSLSupportMethod field's value.
25479func (s *ViewerCertificate) SetSSLSupportMethod(v string) *ViewerCertificate {
25480	s.SSLSupportMethod = &v
25481	return s
25482}
25483
25484const (
25485	// CachePolicyCookieBehaviorNone is a CachePolicyCookieBehavior enum value
25486	CachePolicyCookieBehaviorNone = "none"
25487
25488	// CachePolicyCookieBehaviorWhitelist is a CachePolicyCookieBehavior enum value
25489	CachePolicyCookieBehaviorWhitelist = "whitelist"
25490
25491	// CachePolicyCookieBehaviorAllExcept is a CachePolicyCookieBehavior enum value
25492	CachePolicyCookieBehaviorAllExcept = "allExcept"
25493
25494	// CachePolicyCookieBehaviorAll is a CachePolicyCookieBehavior enum value
25495	CachePolicyCookieBehaviorAll = "all"
25496)
25497
25498// CachePolicyCookieBehavior_Values returns all elements of the CachePolicyCookieBehavior enum
25499func CachePolicyCookieBehavior_Values() []string {
25500	return []string{
25501		CachePolicyCookieBehaviorNone,
25502		CachePolicyCookieBehaviorWhitelist,
25503		CachePolicyCookieBehaviorAllExcept,
25504		CachePolicyCookieBehaviorAll,
25505	}
25506}
25507
25508const (
25509	// CachePolicyHeaderBehaviorNone is a CachePolicyHeaderBehavior enum value
25510	CachePolicyHeaderBehaviorNone = "none"
25511
25512	// CachePolicyHeaderBehaviorWhitelist is a CachePolicyHeaderBehavior enum value
25513	CachePolicyHeaderBehaviorWhitelist = "whitelist"
25514)
25515
25516// CachePolicyHeaderBehavior_Values returns all elements of the CachePolicyHeaderBehavior enum
25517func CachePolicyHeaderBehavior_Values() []string {
25518	return []string{
25519		CachePolicyHeaderBehaviorNone,
25520		CachePolicyHeaderBehaviorWhitelist,
25521	}
25522}
25523
25524const (
25525	// CachePolicyQueryStringBehaviorNone is a CachePolicyQueryStringBehavior enum value
25526	CachePolicyQueryStringBehaviorNone = "none"
25527
25528	// CachePolicyQueryStringBehaviorWhitelist is a CachePolicyQueryStringBehavior enum value
25529	CachePolicyQueryStringBehaviorWhitelist = "whitelist"
25530
25531	// CachePolicyQueryStringBehaviorAllExcept is a CachePolicyQueryStringBehavior enum value
25532	CachePolicyQueryStringBehaviorAllExcept = "allExcept"
25533
25534	// CachePolicyQueryStringBehaviorAll is a CachePolicyQueryStringBehavior enum value
25535	CachePolicyQueryStringBehaviorAll = "all"
25536)
25537
25538// CachePolicyQueryStringBehavior_Values returns all elements of the CachePolicyQueryStringBehavior enum
25539func CachePolicyQueryStringBehavior_Values() []string {
25540	return []string{
25541		CachePolicyQueryStringBehaviorNone,
25542		CachePolicyQueryStringBehaviorWhitelist,
25543		CachePolicyQueryStringBehaviorAllExcept,
25544		CachePolicyQueryStringBehaviorAll,
25545	}
25546}
25547
25548const (
25549	// CachePolicyTypeManaged is a CachePolicyType enum value
25550	CachePolicyTypeManaged = "managed"
25551
25552	// CachePolicyTypeCustom is a CachePolicyType enum value
25553	CachePolicyTypeCustom = "custom"
25554)
25555
25556// CachePolicyType_Values returns all elements of the CachePolicyType enum
25557func CachePolicyType_Values() []string {
25558	return []string{
25559		CachePolicyTypeManaged,
25560		CachePolicyTypeCustom,
25561	}
25562}
25563
25564const (
25565	// CertificateSourceCloudfront is a CertificateSource enum value
25566	CertificateSourceCloudfront = "cloudfront"
25567
25568	// CertificateSourceIam is a CertificateSource enum value
25569	CertificateSourceIam = "iam"
25570
25571	// CertificateSourceAcm is a CertificateSource enum value
25572	CertificateSourceAcm = "acm"
25573)
25574
25575// CertificateSource_Values returns all elements of the CertificateSource enum
25576func CertificateSource_Values() []string {
25577	return []string{
25578		CertificateSourceCloudfront,
25579		CertificateSourceIam,
25580		CertificateSourceAcm,
25581	}
25582}
25583
25584const (
25585	// EventTypeViewerRequest is a EventType enum value
25586	EventTypeViewerRequest = "viewer-request"
25587
25588	// EventTypeViewerResponse is a EventType enum value
25589	EventTypeViewerResponse = "viewer-response"
25590
25591	// EventTypeOriginRequest is a EventType enum value
25592	EventTypeOriginRequest = "origin-request"
25593
25594	// EventTypeOriginResponse is a EventType enum value
25595	EventTypeOriginResponse = "origin-response"
25596)
25597
25598// EventType_Values returns all elements of the EventType enum
25599func EventType_Values() []string {
25600	return []string{
25601		EventTypeViewerRequest,
25602		EventTypeViewerResponse,
25603		EventTypeOriginRequest,
25604		EventTypeOriginResponse,
25605	}
25606}
25607
25608const (
25609	// FormatUrlencoded is a Format enum value
25610	FormatUrlencoded = "URLEncoded"
25611)
25612
25613// Format_Values returns all elements of the Format enum
25614func Format_Values() []string {
25615	return []string{
25616		FormatUrlencoded,
25617	}
25618}
25619
25620const (
25621	// FunctionRuntimeCloudfrontJs10 is a FunctionRuntime enum value
25622	FunctionRuntimeCloudfrontJs10 = "cloudfront-js-1.0"
25623)
25624
25625// FunctionRuntime_Values returns all elements of the FunctionRuntime enum
25626func FunctionRuntime_Values() []string {
25627	return []string{
25628		FunctionRuntimeCloudfrontJs10,
25629	}
25630}
25631
25632const (
25633	// FunctionStageDevelopment is a FunctionStage enum value
25634	FunctionStageDevelopment = "DEVELOPMENT"
25635
25636	// FunctionStageLive is a FunctionStage enum value
25637	FunctionStageLive = "LIVE"
25638)
25639
25640// FunctionStage_Values returns all elements of the FunctionStage enum
25641func FunctionStage_Values() []string {
25642	return []string{
25643		FunctionStageDevelopment,
25644		FunctionStageLive,
25645	}
25646}
25647
25648const (
25649	// GeoRestrictionTypeBlacklist is a GeoRestrictionType enum value
25650	GeoRestrictionTypeBlacklist = "blacklist"
25651
25652	// GeoRestrictionTypeWhitelist is a GeoRestrictionType enum value
25653	GeoRestrictionTypeWhitelist = "whitelist"
25654
25655	// GeoRestrictionTypeNone is a GeoRestrictionType enum value
25656	GeoRestrictionTypeNone = "none"
25657)
25658
25659// GeoRestrictionType_Values returns all elements of the GeoRestrictionType enum
25660func GeoRestrictionType_Values() []string {
25661	return []string{
25662		GeoRestrictionTypeBlacklist,
25663		GeoRestrictionTypeWhitelist,
25664		GeoRestrictionTypeNone,
25665	}
25666}
25667
25668const (
25669	// HttpVersionHttp11 is a HttpVersion enum value
25670	HttpVersionHttp11 = "http1.1"
25671
25672	// HttpVersionHttp2 is a HttpVersion enum value
25673	HttpVersionHttp2 = "http2"
25674)
25675
25676// HttpVersion_Values returns all elements of the HttpVersion enum
25677func HttpVersion_Values() []string {
25678	return []string{
25679		HttpVersionHttp11,
25680		HttpVersionHttp2,
25681	}
25682}
25683
25684const (
25685	// ICPRecordalStatusApproved is a ICPRecordalStatus enum value
25686	ICPRecordalStatusApproved = "APPROVED"
25687
25688	// ICPRecordalStatusSuspended is a ICPRecordalStatus enum value
25689	ICPRecordalStatusSuspended = "SUSPENDED"
25690
25691	// ICPRecordalStatusPending is a ICPRecordalStatus enum value
25692	ICPRecordalStatusPending = "PENDING"
25693)
25694
25695// ICPRecordalStatus_Values returns all elements of the ICPRecordalStatus enum
25696func ICPRecordalStatus_Values() []string {
25697	return []string{
25698		ICPRecordalStatusApproved,
25699		ICPRecordalStatusSuspended,
25700		ICPRecordalStatusPending,
25701	}
25702}
25703
25704const (
25705	// ItemSelectionNone is a ItemSelection enum value
25706	ItemSelectionNone = "none"
25707
25708	// ItemSelectionWhitelist is a ItemSelection enum value
25709	ItemSelectionWhitelist = "whitelist"
25710
25711	// ItemSelectionAll is a ItemSelection enum value
25712	ItemSelectionAll = "all"
25713)
25714
25715// ItemSelection_Values returns all elements of the ItemSelection enum
25716func ItemSelection_Values() []string {
25717	return []string{
25718		ItemSelectionNone,
25719		ItemSelectionWhitelist,
25720		ItemSelectionAll,
25721	}
25722}
25723
25724const (
25725	// MethodGet is a Method enum value
25726	MethodGet = "GET"
25727
25728	// MethodHead is a Method enum value
25729	MethodHead = "HEAD"
25730
25731	// MethodPost is a Method enum value
25732	MethodPost = "POST"
25733
25734	// MethodPut is a Method enum value
25735	MethodPut = "PUT"
25736
25737	// MethodPatch is a Method enum value
25738	MethodPatch = "PATCH"
25739
25740	// MethodOptions is a Method enum value
25741	MethodOptions = "OPTIONS"
25742
25743	// MethodDelete is a Method enum value
25744	MethodDelete = "DELETE"
25745)
25746
25747// Method_Values returns all elements of the Method enum
25748func Method_Values() []string {
25749	return []string{
25750		MethodGet,
25751		MethodHead,
25752		MethodPost,
25753		MethodPut,
25754		MethodPatch,
25755		MethodOptions,
25756		MethodDelete,
25757	}
25758}
25759
25760const (
25761	// MinimumProtocolVersionSslv3 is a MinimumProtocolVersion enum value
25762	MinimumProtocolVersionSslv3 = "SSLv3"
25763
25764	// MinimumProtocolVersionTlsv1 is a MinimumProtocolVersion enum value
25765	MinimumProtocolVersionTlsv1 = "TLSv1"
25766
25767	// MinimumProtocolVersionTlsv12016 is a MinimumProtocolVersion enum value
25768	MinimumProtocolVersionTlsv12016 = "TLSv1_2016"
25769
25770	// MinimumProtocolVersionTlsv112016 is a MinimumProtocolVersion enum value
25771	MinimumProtocolVersionTlsv112016 = "TLSv1.1_2016"
25772
25773	// MinimumProtocolVersionTlsv122018 is a MinimumProtocolVersion enum value
25774	MinimumProtocolVersionTlsv122018 = "TLSv1.2_2018"
25775
25776	// MinimumProtocolVersionTlsv122019 is a MinimumProtocolVersion enum value
25777	MinimumProtocolVersionTlsv122019 = "TLSv1.2_2019"
25778
25779	// MinimumProtocolVersionTlsv122021 is a MinimumProtocolVersion enum value
25780	MinimumProtocolVersionTlsv122021 = "TLSv1.2_2021"
25781)
25782
25783// MinimumProtocolVersion_Values returns all elements of the MinimumProtocolVersion enum
25784func MinimumProtocolVersion_Values() []string {
25785	return []string{
25786		MinimumProtocolVersionSslv3,
25787		MinimumProtocolVersionTlsv1,
25788		MinimumProtocolVersionTlsv12016,
25789		MinimumProtocolVersionTlsv112016,
25790		MinimumProtocolVersionTlsv122018,
25791		MinimumProtocolVersionTlsv122019,
25792		MinimumProtocolVersionTlsv122021,
25793	}
25794}
25795
25796const (
25797	// OriginProtocolPolicyHttpOnly is a OriginProtocolPolicy enum value
25798	OriginProtocolPolicyHttpOnly = "http-only"
25799
25800	// OriginProtocolPolicyMatchViewer is a OriginProtocolPolicy enum value
25801	OriginProtocolPolicyMatchViewer = "match-viewer"
25802
25803	// OriginProtocolPolicyHttpsOnly is a OriginProtocolPolicy enum value
25804	OriginProtocolPolicyHttpsOnly = "https-only"
25805)
25806
25807// OriginProtocolPolicy_Values returns all elements of the OriginProtocolPolicy enum
25808func OriginProtocolPolicy_Values() []string {
25809	return []string{
25810		OriginProtocolPolicyHttpOnly,
25811		OriginProtocolPolicyMatchViewer,
25812		OriginProtocolPolicyHttpsOnly,
25813	}
25814}
25815
25816const (
25817	// OriginRequestPolicyCookieBehaviorNone is a OriginRequestPolicyCookieBehavior enum value
25818	OriginRequestPolicyCookieBehaviorNone = "none"
25819
25820	// OriginRequestPolicyCookieBehaviorWhitelist is a OriginRequestPolicyCookieBehavior enum value
25821	OriginRequestPolicyCookieBehaviorWhitelist = "whitelist"
25822
25823	// OriginRequestPolicyCookieBehaviorAll is a OriginRequestPolicyCookieBehavior enum value
25824	OriginRequestPolicyCookieBehaviorAll = "all"
25825)
25826
25827// OriginRequestPolicyCookieBehavior_Values returns all elements of the OriginRequestPolicyCookieBehavior enum
25828func OriginRequestPolicyCookieBehavior_Values() []string {
25829	return []string{
25830		OriginRequestPolicyCookieBehaviorNone,
25831		OriginRequestPolicyCookieBehaviorWhitelist,
25832		OriginRequestPolicyCookieBehaviorAll,
25833	}
25834}
25835
25836const (
25837	// OriginRequestPolicyHeaderBehaviorNone is a OriginRequestPolicyHeaderBehavior enum value
25838	OriginRequestPolicyHeaderBehaviorNone = "none"
25839
25840	// OriginRequestPolicyHeaderBehaviorWhitelist is a OriginRequestPolicyHeaderBehavior enum value
25841	OriginRequestPolicyHeaderBehaviorWhitelist = "whitelist"
25842
25843	// OriginRequestPolicyHeaderBehaviorAllViewer is a OriginRequestPolicyHeaderBehavior enum value
25844	OriginRequestPolicyHeaderBehaviorAllViewer = "allViewer"
25845
25846	// OriginRequestPolicyHeaderBehaviorAllViewerAndWhitelistCloudFront is a OriginRequestPolicyHeaderBehavior enum value
25847	OriginRequestPolicyHeaderBehaviorAllViewerAndWhitelistCloudFront = "allViewerAndWhitelistCloudFront"
25848)
25849
25850// OriginRequestPolicyHeaderBehavior_Values returns all elements of the OriginRequestPolicyHeaderBehavior enum
25851func OriginRequestPolicyHeaderBehavior_Values() []string {
25852	return []string{
25853		OriginRequestPolicyHeaderBehaviorNone,
25854		OriginRequestPolicyHeaderBehaviorWhitelist,
25855		OriginRequestPolicyHeaderBehaviorAllViewer,
25856		OriginRequestPolicyHeaderBehaviorAllViewerAndWhitelistCloudFront,
25857	}
25858}
25859
25860const (
25861	// OriginRequestPolicyQueryStringBehaviorNone is a OriginRequestPolicyQueryStringBehavior enum value
25862	OriginRequestPolicyQueryStringBehaviorNone = "none"
25863
25864	// OriginRequestPolicyQueryStringBehaviorWhitelist is a OriginRequestPolicyQueryStringBehavior enum value
25865	OriginRequestPolicyQueryStringBehaviorWhitelist = "whitelist"
25866
25867	// OriginRequestPolicyQueryStringBehaviorAll is a OriginRequestPolicyQueryStringBehavior enum value
25868	OriginRequestPolicyQueryStringBehaviorAll = "all"
25869)
25870
25871// OriginRequestPolicyQueryStringBehavior_Values returns all elements of the OriginRequestPolicyQueryStringBehavior enum
25872func OriginRequestPolicyQueryStringBehavior_Values() []string {
25873	return []string{
25874		OriginRequestPolicyQueryStringBehaviorNone,
25875		OriginRequestPolicyQueryStringBehaviorWhitelist,
25876		OriginRequestPolicyQueryStringBehaviorAll,
25877	}
25878}
25879
25880const (
25881	// OriginRequestPolicyTypeManaged is a OriginRequestPolicyType enum value
25882	OriginRequestPolicyTypeManaged = "managed"
25883
25884	// OriginRequestPolicyTypeCustom is a OriginRequestPolicyType enum value
25885	OriginRequestPolicyTypeCustom = "custom"
25886)
25887
25888// OriginRequestPolicyType_Values returns all elements of the OriginRequestPolicyType enum
25889func OriginRequestPolicyType_Values() []string {
25890	return []string{
25891		OriginRequestPolicyTypeManaged,
25892		OriginRequestPolicyTypeCustom,
25893	}
25894}
25895
25896const (
25897	// PriceClassPriceClass100 is a PriceClass enum value
25898	PriceClassPriceClass100 = "PriceClass_100"
25899
25900	// PriceClassPriceClass200 is a PriceClass enum value
25901	PriceClassPriceClass200 = "PriceClass_200"
25902
25903	// PriceClassPriceClassAll is a PriceClass enum value
25904	PriceClassPriceClassAll = "PriceClass_All"
25905)
25906
25907// PriceClass_Values returns all elements of the PriceClass enum
25908func PriceClass_Values() []string {
25909	return []string{
25910		PriceClassPriceClass100,
25911		PriceClassPriceClass200,
25912		PriceClassPriceClassAll,
25913	}
25914}
25915
25916const (
25917	// RealtimeMetricsSubscriptionStatusEnabled is a RealtimeMetricsSubscriptionStatus enum value
25918	RealtimeMetricsSubscriptionStatusEnabled = "Enabled"
25919
25920	// RealtimeMetricsSubscriptionStatusDisabled is a RealtimeMetricsSubscriptionStatus enum value
25921	RealtimeMetricsSubscriptionStatusDisabled = "Disabled"
25922)
25923
25924// RealtimeMetricsSubscriptionStatus_Values returns all elements of the RealtimeMetricsSubscriptionStatus enum
25925func RealtimeMetricsSubscriptionStatus_Values() []string {
25926	return []string{
25927		RealtimeMetricsSubscriptionStatusEnabled,
25928		RealtimeMetricsSubscriptionStatusDisabled,
25929	}
25930}
25931
25932const (
25933	// SSLSupportMethodSniOnly is a SSLSupportMethod enum value
25934	SSLSupportMethodSniOnly = "sni-only"
25935
25936	// SSLSupportMethodVip is a SSLSupportMethod enum value
25937	SSLSupportMethodVip = "vip"
25938
25939	// SSLSupportMethodStaticIp is a SSLSupportMethod enum value
25940	SSLSupportMethodStaticIp = "static-ip"
25941)
25942
25943// SSLSupportMethod_Values returns all elements of the SSLSupportMethod enum
25944func SSLSupportMethod_Values() []string {
25945	return []string{
25946		SSLSupportMethodSniOnly,
25947		SSLSupportMethodVip,
25948		SSLSupportMethodStaticIp,
25949	}
25950}
25951
25952const (
25953	// SslProtocolSslv3 is a SslProtocol enum value
25954	SslProtocolSslv3 = "SSLv3"
25955
25956	// SslProtocolTlsv1 is a SslProtocol enum value
25957	SslProtocolTlsv1 = "TLSv1"
25958
25959	// SslProtocolTlsv11 is a SslProtocol enum value
25960	SslProtocolTlsv11 = "TLSv1.1"
25961
25962	// SslProtocolTlsv12 is a SslProtocol enum value
25963	SslProtocolTlsv12 = "TLSv1.2"
25964)
25965
25966// SslProtocol_Values returns all elements of the SslProtocol enum
25967func SslProtocol_Values() []string {
25968	return []string{
25969		SslProtocolSslv3,
25970		SslProtocolTlsv1,
25971		SslProtocolTlsv11,
25972		SslProtocolTlsv12,
25973	}
25974}
25975
25976const (
25977	// ViewerProtocolPolicyAllowAll is a ViewerProtocolPolicy enum value
25978	ViewerProtocolPolicyAllowAll = "allow-all"
25979
25980	// ViewerProtocolPolicyHttpsOnly is a ViewerProtocolPolicy enum value
25981	ViewerProtocolPolicyHttpsOnly = "https-only"
25982
25983	// ViewerProtocolPolicyRedirectToHttps is a ViewerProtocolPolicy enum value
25984	ViewerProtocolPolicyRedirectToHttps = "redirect-to-https"
25985)
25986
25987// ViewerProtocolPolicy_Values returns all elements of the ViewerProtocolPolicy enum
25988func ViewerProtocolPolicy_Values() []string {
25989	return []string{
25990		ViewerProtocolPolicyAllowAll,
25991		ViewerProtocolPolicyHttpsOnly,
25992		ViewerProtocolPolicyRedirectToHttps,
25993	}
25994}
25995