-
Notifications
You must be signed in to change notification settings - Fork 112
/
zz_distribution_types.go
executable file
·1180 lines (843 loc) · 67.4 KB
/
zz_distribution_types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*
Copyright 2022 Upbound Inc.
*/
// Code generated by upjet. DO NOT EDIT.
package v1beta1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
v1 "github.com/crossplane/crossplane-runtime/apis/common/v1"
)
type CustomErrorResponseObservation struct {
// Minimum amount of time you want HTTP error codes to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.
ErrorCachingMinTTL *float64 `json:"errorCachingMinTtl,omitempty" tf:"error_caching_min_ttl,omitempty"`
// 4xx or 5xx HTTP status code that you want to customize.
ErrorCode *float64 `json:"errorCode,omitempty" tf:"error_code,omitempty"`
// HTTP status code that you want CloudFront to return with the custom error page to the viewer.
ResponseCode *float64 `json:"responseCode,omitempty" tf:"response_code,omitempty"`
// Path of the custom error page (for example, /custom_404.html).
ResponsePagePath *string `json:"responsePagePath,omitempty" tf:"response_page_path,omitempty"`
}
type CustomErrorResponseParameters struct {
// Minimum amount of time you want HTTP error codes to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.
// +kubebuilder:validation:Optional
ErrorCachingMinTTL *float64 `json:"errorCachingMinTtl,omitempty" tf:"error_caching_min_ttl,omitempty"`
// 4xx or 5xx HTTP status code that you want to customize.
// +kubebuilder:validation:Required
ErrorCode *float64 `json:"errorCode" tf:"error_code,omitempty"`
// HTTP status code that you want CloudFront to return with the custom error page to the viewer.
// +kubebuilder:validation:Optional
ResponseCode *float64 `json:"responseCode,omitempty" tf:"response_code,omitempty"`
// Path of the custom error page (for example, /custom_404.html).
// +kubebuilder:validation:Optional
ResponsePagePath *string `json:"responsePagePath,omitempty" tf:"response_page_path,omitempty"`
}
type CustomHeaderObservation struct {
Name *string `json:"name,omitempty" tf:"name,omitempty"`
Value *string `json:"value,omitempty" tf:"value,omitempty"`
}
type CustomHeaderParameters struct {
// +kubebuilder:validation:Required
Name *string `json:"name" tf:"name,omitempty"`
// +kubebuilder:validation:Required
Value *string `json:"value" tf:"value,omitempty"`
}
type CustomOriginConfigObservation struct {
// HTTP port the custom origin listens on.
HTTPPort *float64 `json:"httpPort,omitempty" tf:"http_port,omitempty"`
// HTTPS port the custom origin listens on.
HTTPSPort *float64 `json:"httpsPort,omitempty" tf:"https_port,omitempty"`
// The Custom KeepAlive timeout, in seconds. By default, AWS enforces a limit of 60. But you can request an increase.
OriginKeepaliveTimeout *float64 `json:"originKeepaliveTimeout,omitempty" tf:"origin_keepalive_timeout,omitempty"`
// Origin protocol policy to apply to your origin. One of http-only, https-only, or match-viewer.
OriginProtocolPolicy *string `json:"originProtocolPolicy,omitempty" tf:"origin_protocol_policy,omitempty"`
// The Custom Read timeout, in seconds. By default, AWS enforces a limit of 60. But you can request an increase.
OriginReadTimeout *float64 `json:"originReadTimeout,omitempty" tf:"origin_read_timeout,omitempty"`
// SSL/TLS protocols that you want CloudFront to use when communicating with your origin over HTTPS. A list of one or more of SSLv3, TLSv1, TLSv1.1, and TLSv1.2.
OriginSSLProtocols []*string `json:"originSslProtocols,omitempty" tf:"origin_ssl_protocols,omitempty"`
}
type CustomOriginConfigParameters struct {
// HTTP port the custom origin listens on.
// +kubebuilder:validation:Required
HTTPPort *float64 `json:"httpPort" tf:"http_port,omitempty"`
// HTTPS port the custom origin listens on.
// +kubebuilder:validation:Required
HTTPSPort *float64 `json:"httpsPort" tf:"https_port,omitempty"`
// The Custom KeepAlive timeout, in seconds. By default, AWS enforces a limit of 60. But you can request an increase.
// +kubebuilder:validation:Optional
OriginKeepaliveTimeout *float64 `json:"originKeepaliveTimeout,omitempty" tf:"origin_keepalive_timeout,omitempty"`
// Origin protocol policy to apply to your origin. One of http-only, https-only, or match-viewer.
// +kubebuilder:validation:Required
OriginProtocolPolicy *string `json:"originProtocolPolicy" tf:"origin_protocol_policy,omitempty"`
// The Custom Read timeout, in seconds. By default, AWS enforces a limit of 60. But you can request an increase.
// +kubebuilder:validation:Optional
OriginReadTimeout *float64 `json:"originReadTimeout,omitempty" tf:"origin_read_timeout,omitempty"`
// SSL/TLS protocols that you want CloudFront to use when communicating with your origin over HTTPS. A list of one or more of SSLv3, TLSv1, TLSv1.1, and TLSv1.2.
// +kubebuilder:validation:Required
OriginSSLProtocols []*string `json:"originSslProtocols" tf:"origin_ssl_protocols,omitempty"`
}
type DefaultCacheBehaviorObservation struct {
// Controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin.
AllowedMethods []*string `json:"allowedMethods,omitempty" tf:"allowed_methods,omitempty"`
// Unique identifier of the cache policy that is attached to the cache behavior. If configuring the default_cache_behavior either cache_policy_id or forwarded_values must be set.
CachePolicyID *string `json:"cachePolicyId,omitempty" tf:"cache_policy_id,omitempty"`
// Controls whether CloudFront caches the response to requests using the specified HTTP methods.
CachedMethods []*string `json:"cachedMethods,omitempty" tf:"cached_methods,omitempty"`
// Whether you want CloudFront to automatically compress content for web requests that include Accept-Encoding: gzip in the request header (default: false).
Compress *bool `json:"compress,omitempty" tf:"compress,omitempty"`
// Default amount of time (in seconds) that an object is in a CloudFront cache before CloudFront forwards another request in the absence of an Cache-Control max-age or Expires header.
DefaultTTL *float64 `json:"defaultTtl,omitempty" tf:"default_ttl,omitempty"`
// Field level encryption configuration ID.
FieldLevelEncryptionID *string `json:"fieldLevelEncryptionId,omitempty" tf:"field_level_encryption_id,omitempty"`
// The forwarded values configuration that specifies how CloudFront handles query strings, cookies and headers (maximum one).
ForwardedValues []ForwardedValuesObservation `json:"forwardedValues,omitempty" tf:"forwarded_values,omitempty"`
// A config block that triggers a cloudfront function with specific actions (maximum 2).
FunctionAssociation []FunctionAssociationObservation `json:"functionAssociation,omitempty" tf:"function_association,omitempty"`
// A config block that triggers a lambda function with specific actions (maximum 4).
LambdaFunctionAssociation []LambdaFunctionAssociationObservation `json:"lambdaFunctionAssociation,omitempty" tf:"lambda_function_association,omitempty"`
// Maximum amount of time (in seconds) that an object is in a CloudFront cache before CloudFront forwards another request to your origin to determine whether the object has been updated. Only effective in the presence of Cache-Control max-age, Cache-Control s-maxage, and Expires headers.
MaxTTL *float64 `json:"maxTtl,omitempty" tf:"max_ttl,omitempty"`
// Minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated. Defaults to 0 seconds.
MinTTL *float64 `json:"minTtl,omitempty" tf:"min_ttl,omitempty"`
// Unique identifier of the origin request policy that is attached to the behavior.
OriginRequestPolicyID *string `json:"originRequestPolicyId,omitempty" tf:"origin_request_policy_id,omitempty"`
// ARN of the real-time log configuration that is attached to this cache behavior.
RealtimeLogConfigArn *string `json:"realtimeLogConfigArn,omitempty" tf:"realtime_log_config_arn,omitempty"`
// Identifier for a response headers policy.
ResponseHeadersPolicyID *string `json:"responseHeadersPolicyId,omitempty" tf:"response_headers_policy_id,omitempty"`
// Indicates whether you want to distribute media files in Microsoft Smooth Streaming format using the origin that is associated with this cache behavior.
SmoothStreaming *bool `json:"smoothStreaming,omitempty" tf:"smooth_streaming,omitempty"`
// Value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.
TargetOriginID *string `json:"targetOriginId,omitempty" tf:"target_origin_id,omitempty"`
// List of key group IDs that CloudFront can use to validate signed URLs or signed cookies. See the CloudFront User Guide for more information about this feature.
TrustedKeyGroups []*string `json:"trustedKeyGroups,omitempty" tf:"trusted_key_groups,omitempty"`
// List of AWS account IDs (or self) that you want to allow to create signed URLs for private content. See the CloudFront User Guide for more information about this feature.
TrustedSigners []*string `json:"trustedSigners,omitempty" tf:"trusted_signers,omitempty"`
// Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. One of allow-all, https-only, or redirect-to-https.
ViewerProtocolPolicy *string `json:"viewerProtocolPolicy,omitempty" tf:"viewer_protocol_policy,omitempty"`
}
type DefaultCacheBehaviorParameters struct {
// Controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin.
// +kubebuilder:validation:Required
AllowedMethods []*string `json:"allowedMethods" tf:"allowed_methods,omitempty"`
// Unique identifier of the cache policy that is attached to the cache behavior. If configuring the default_cache_behavior either cache_policy_id or forwarded_values must be set.
// +kubebuilder:validation:Optional
CachePolicyID *string `json:"cachePolicyId,omitempty" tf:"cache_policy_id,omitempty"`
// Controls whether CloudFront caches the response to requests using the specified HTTP methods.
// +kubebuilder:validation:Required
CachedMethods []*string `json:"cachedMethods" tf:"cached_methods,omitempty"`
// Whether you want CloudFront to automatically compress content for web requests that include Accept-Encoding: gzip in the request header (default: false).
// +kubebuilder:validation:Optional
Compress *bool `json:"compress,omitempty" tf:"compress,omitempty"`
// Default amount of time (in seconds) that an object is in a CloudFront cache before CloudFront forwards another request in the absence of an Cache-Control max-age or Expires header.
// +kubebuilder:validation:Optional
DefaultTTL *float64 `json:"defaultTtl,omitempty" tf:"default_ttl,omitempty"`
// Field level encryption configuration ID.
// +kubebuilder:validation:Optional
FieldLevelEncryptionID *string `json:"fieldLevelEncryptionId,omitempty" tf:"field_level_encryption_id,omitempty"`
// The forwarded values configuration that specifies how CloudFront handles query strings, cookies and headers (maximum one).
// +kubebuilder:validation:Optional
ForwardedValues []ForwardedValuesParameters `json:"forwardedValues,omitempty" tf:"forwarded_values,omitempty"`
// A config block that triggers a cloudfront function with specific actions (maximum 2).
// +kubebuilder:validation:Optional
FunctionAssociation []FunctionAssociationParameters `json:"functionAssociation,omitempty" tf:"function_association,omitempty"`
// A config block that triggers a lambda function with specific actions (maximum 4).
// +kubebuilder:validation:Optional
LambdaFunctionAssociation []LambdaFunctionAssociationParameters `json:"lambdaFunctionAssociation,omitempty" tf:"lambda_function_association,omitempty"`
// Maximum amount of time (in seconds) that an object is in a CloudFront cache before CloudFront forwards another request to your origin to determine whether the object has been updated. Only effective in the presence of Cache-Control max-age, Cache-Control s-maxage, and Expires headers.
// +kubebuilder:validation:Optional
MaxTTL *float64 `json:"maxTtl,omitempty" tf:"max_ttl,omitempty"`
// Minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated. Defaults to 0 seconds.
// +kubebuilder:validation:Optional
MinTTL *float64 `json:"minTtl,omitempty" tf:"min_ttl,omitempty"`
// Unique identifier of the origin request policy that is attached to the behavior.
// +kubebuilder:validation:Optional
OriginRequestPolicyID *string `json:"originRequestPolicyId,omitempty" tf:"origin_request_policy_id,omitempty"`
// ARN of the real-time log configuration that is attached to this cache behavior.
// +kubebuilder:validation:Optional
RealtimeLogConfigArn *string `json:"realtimeLogConfigArn,omitempty" tf:"realtime_log_config_arn,omitempty"`
// Identifier for a response headers policy.
// +kubebuilder:validation:Optional
ResponseHeadersPolicyID *string `json:"responseHeadersPolicyId,omitempty" tf:"response_headers_policy_id,omitempty"`
// Indicates whether you want to distribute media files in Microsoft Smooth Streaming format using the origin that is associated with this cache behavior.
// +kubebuilder:validation:Optional
SmoothStreaming *bool `json:"smoothStreaming,omitempty" tf:"smooth_streaming,omitempty"`
// Value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.
// +kubebuilder:validation:Required
TargetOriginID *string `json:"targetOriginId" tf:"target_origin_id,omitempty"`
// List of key group IDs that CloudFront can use to validate signed URLs or signed cookies. See the CloudFront User Guide for more information about this feature.
// +kubebuilder:validation:Optional
TrustedKeyGroups []*string `json:"trustedKeyGroups,omitempty" tf:"trusted_key_groups,omitempty"`
// List of AWS account IDs (or self) that you want to allow to create signed URLs for private content. See the CloudFront User Guide for more information about this feature.
// +kubebuilder:validation:Optional
TrustedSigners []*string `json:"trustedSigners,omitempty" tf:"trusted_signers,omitempty"`
// Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. One of allow-all, https-only, or redirect-to-https.
// +kubebuilder:validation:Required
ViewerProtocolPolicy *string `json:"viewerProtocolPolicy" tf:"viewer_protocol_policy,omitempty"`
}
type DistributionObservation struct {
// Extra CNAMEs (alternate domain names), if any, for this distribution.
Aliases []*string `json:"aliases,omitempty" tf:"aliases,omitempty"`
// ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
Arn *string `json:"arn,omitempty" tf:"arn,omitempty"`
// Internal value used by CloudFront to allow future updates to the distribution configuration.
CallerReference *string `json:"callerReference,omitempty" tf:"caller_reference,omitempty"`
// Any comments you want to include about the distribution.
Comment *string `json:"comment,omitempty" tf:"comment,omitempty"`
// One or more custom error response elements (multiples allowed).
CustomErrorResponse []CustomErrorResponseObservation `json:"customErrorResponse,omitempty" tf:"custom_error_response,omitempty"`
// Default cache behavior for this distribution (maximum one). Requires either cache_policy_id (preferred) or forwarded_values (deprecated) be set.
DefaultCacheBehavior []DefaultCacheBehaviorObservation `json:"defaultCacheBehavior,omitempty" tf:"default_cache_behavior,omitempty"`
// Object that you want CloudFront to return (for example, index.html) when an end user requests the root URL.
DefaultRootObject *string `json:"defaultRootObject,omitempty" tf:"default_root_object,omitempty"`
// DNS domain name of either the S3 bucket, or web site of your custom origin.
DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"`
// Whether the distribution is enabled to accept end user requests for content.
Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"`
// Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
Etag *string `json:"etag,omitempty" tf:"etag,omitempty"`
// Maximum HTTP version to support on the distribution. Allowed values are http1.1, http2, http2and3 and http3. The default is http2.
HTTPVersion *string `json:"httpVersion,omitempty" tf:"http_version,omitempty"`
// CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"`
// Identifier for the distribution. For example: EDFDVBD632BHDS5.
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// Number of invalidation batches currently in progress.
InProgressValidationBatches *float64 `json:"inProgressValidationBatches,omitempty" tf:"in_progress_validation_batches,omitempty"`
// Whether the IPv6 is enabled for the distribution.
IsIPv6Enabled *bool `json:"isIpv6Enabled,omitempty" tf:"is_ipv6_enabled,omitempty"`
// Date and time the distribution was last modified.
LastModifiedTime *string `json:"lastModifiedTime,omitempty" tf:"last_modified_time,omitempty"`
// The logging configuration that controls how logs are written to your distribution (maximum one).
LoggingConfig []LoggingConfigObservation `json:"loggingConfig,omitempty" tf:"logging_config,omitempty"`
// Ordered list of cache behaviors resource for this distribution. List from top to bottom in order of precedence. The topmost cache behavior will have precedence 0.
OrderedCacheBehavior []OrderedCacheBehaviorObservation `json:"orderedCacheBehavior,omitempty" tf:"ordered_cache_behavior,omitempty"`
// One or more origins for this distribution (multiples allowed).
Origin []OriginObservation `json:"origin,omitempty" tf:"origin,omitempty"`
// One or more origin_group for this distribution (multiples allowed).
OriginGroup []OriginGroupObservation `json:"originGroup,omitempty" tf:"origin_group,omitempty"`
// Price class for this distribution. One of PriceClass_All, PriceClass_200, PriceClass_100.
PriceClass *string `json:"priceClass,omitempty" tf:"price_class,omitempty"`
// The restriction configuration for this distribution (maximum one).
Restrictions []RestrictionsObservation `json:"restrictions,omitempty" tf:"restrictions,omitempty"`
// If this is set, the distribution needs to be deleted manually afterwards. Default: false.
RetainOnDelete *bool `json:"retainOnDelete,omitempty" tf:"retain_on_delete,omitempty"`
// Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
Status *string `json:"status,omitempty" tf:"status,omitempty"`
// Key-value map of resource tags.
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"`
// List of key group IDs that CloudFront can use to validate signed URLs or signed cookies. See the CloudFront User Guide for more information about this feature.
TrustedKeyGroups []TrustedKeyGroupsObservation `json:"trustedKeyGroups,omitempty" tf:"trusted_key_groups,omitempty"`
// List of AWS account IDs (or self) that you want to allow to create signed URLs for private content. See the CloudFront User Guide for more information about this feature.
TrustedSigners []TrustedSignersObservation `json:"trustedSigners,omitempty" tf:"trusted_signers,omitempty"`
// The SSL configuration for this distribution (maximum one).
ViewerCertificate []ViewerCertificateObservation `json:"viewerCertificate,omitempty" tf:"viewer_certificate,omitempty"`
// If enabled, the resource will wait for the distribution status to change from InProgress to Deployed. Setting this tofalse will skip the process. Default: true.
WaitForDeployment *bool `json:"waitForDeployment,omitempty" tf:"wait_for_deployment,omitempty"`
// Unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of AWS WAF (WAFv2), use the ACL ARN, for example aws_wafv2_web_acl.example.arn. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example aws_waf_web_acl.example.id. The WAF Web ACL must exist in the WAF Global (CloudFront) region and the credentials configuring this argument must have waf:GetWebACL permissions assigned.
WebACLID *string `json:"webAclId,omitempty" tf:"web_acl_id,omitempty"`
}
type DistributionParameters struct {
// Extra CNAMEs (alternate domain names), if any, for this distribution.
// +kubebuilder:validation:Optional
Aliases []*string `json:"aliases,omitempty" tf:"aliases,omitempty"`
// Any comments you want to include about the distribution.
// +kubebuilder:validation:Optional
Comment *string `json:"comment,omitempty" tf:"comment,omitempty"`
// One or more custom error response elements (multiples allowed).
// +kubebuilder:validation:Optional
CustomErrorResponse []CustomErrorResponseParameters `json:"customErrorResponse,omitempty" tf:"custom_error_response,omitempty"`
// Default cache behavior for this distribution (maximum one). Requires either cache_policy_id (preferred) or forwarded_values (deprecated) be set.
// +kubebuilder:validation:Optional
DefaultCacheBehavior []DefaultCacheBehaviorParameters `json:"defaultCacheBehavior,omitempty" tf:"default_cache_behavior,omitempty"`
// Object that you want CloudFront to return (for example, index.html) when an end user requests the root URL.
// +kubebuilder:validation:Optional
DefaultRootObject *string `json:"defaultRootObject,omitempty" tf:"default_root_object,omitempty"`
// Whether the distribution is enabled to accept end user requests for content.
// +kubebuilder:validation:Optional
Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"`
// Maximum HTTP version to support on the distribution. Allowed values are http1.1, http2, http2and3 and http3. The default is http2.
// +kubebuilder:validation:Optional
HTTPVersion *string `json:"httpVersion,omitempty" tf:"http_version,omitempty"`
// Whether the IPv6 is enabled for the distribution.
// +kubebuilder:validation:Optional
IsIPv6Enabled *bool `json:"isIpv6Enabled,omitempty" tf:"is_ipv6_enabled,omitempty"`
// The logging configuration that controls how logs are written to your distribution (maximum one).
// +kubebuilder:validation:Optional
LoggingConfig []LoggingConfigParameters `json:"loggingConfig,omitempty" tf:"logging_config,omitempty"`
// Ordered list of cache behaviors resource for this distribution. List from top to bottom in order of precedence. The topmost cache behavior will have precedence 0.
// +kubebuilder:validation:Optional
OrderedCacheBehavior []OrderedCacheBehaviorParameters `json:"orderedCacheBehavior,omitempty" tf:"ordered_cache_behavior,omitempty"`
// One or more origins for this distribution (multiples allowed).
// +kubebuilder:validation:Optional
Origin []OriginParameters `json:"origin,omitempty" tf:"origin,omitempty"`
// One or more origin_group for this distribution (multiples allowed).
// +kubebuilder:validation:Optional
OriginGroup []OriginGroupParameters `json:"originGroup,omitempty" tf:"origin_group,omitempty"`
// Price class for this distribution. One of PriceClass_All, PriceClass_200, PriceClass_100.
// +kubebuilder:validation:Optional
PriceClass *string `json:"priceClass,omitempty" tf:"price_class,omitempty"`
// Region is the region you'd like your resource to be created in.
// +upjet:crd:field:TFTag=-
// +kubebuilder:validation:Required
Region *string `json:"region" tf:"-"`
// The restriction configuration for this distribution (maximum one).
// +kubebuilder:validation:Optional
Restrictions []RestrictionsParameters `json:"restrictions,omitempty" tf:"restrictions,omitempty"`
// If this is set, the distribution needs to be deleted manually afterwards. Default: false.
// +kubebuilder:validation:Optional
RetainOnDelete *bool `json:"retainOnDelete,omitempty" tf:"retain_on_delete,omitempty"`
// Key-value map of resource tags.
// +kubebuilder:validation:Optional
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
// The SSL configuration for this distribution (maximum one).
// +kubebuilder:validation:Optional
ViewerCertificate []ViewerCertificateParameters `json:"viewerCertificate,omitempty" tf:"viewer_certificate,omitempty"`
// If enabled, the resource will wait for the distribution status to change from InProgress to Deployed. Setting this tofalse will skip the process. Default: true.
// +kubebuilder:validation:Optional
WaitForDeployment *bool `json:"waitForDeployment,omitempty" tf:"wait_for_deployment,omitempty"`
// Unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of AWS WAF (WAFv2), use the ACL ARN, for example aws_wafv2_web_acl.example.arn. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example aws_waf_web_acl.example.id. The WAF Web ACL must exist in the WAF Global (CloudFront) region and the credentials configuring this argument must have waf:GetWebACL permissions assigned.
// +kubebuilder:validation:Optional
WebACLID *string `json:"webAclId,omitempty" tf:"web_acl_id,omitempty"`
}
type FailoverCriteriaObservation struct {
// List of HTTP status codes for the origin group.
StatusCodes []*float64 `json:"statusCodes,omitempty" tf:"status_codes,omitempty"`
}
type FailoverCriteriaParameters struct {
// List of HTTP status codes for the origin group.
// +kubebuilder:validation:Required
StatusCodes []*float64 `json:"statusCodes" tf:"status_codes,omitempty"`
}
type ForwardedValuesCookiesObservation struct {
// Whether you want CloudFront to forward cookies to the origin that is associated with this cache behavior. You can specify all, none or whitelist. If whitelist, you must include the subsequent whitelisted_names.
Forward *string `json:"forward,omitempty" tf:"forward,omitempty"`
// If you have specified whitelist to forward, the whitelisted cookies that you want CloudFront to forward to your origin.
WhitelistedNames []*string `json:"whitelistedNames,omitempty" tf:"whitelisted_names,omitempty"`
}
type ForwardedValuesCookiesParameters struct {
// Whether you want CloudFront to forward cookies to the origin that is associated with this cache behavior. You can specify all, none or whitelist. If whitelist, you must include the subsequent whitelisted_names.
// +kubebuilder:validation:Required
Forward *string `json:"forward" tf:"forward,omitempty"`
// If you have specified whitelist to forward, the whitelisted cookies that you want CloudFront to forward to your origin.
// +kubebuilder:validation:Optional
WhitelistedNames []*string `json:"whitelistedNames,omitempty" tf:"whitelisted_names,omitempty"`
}
type ForwardedValuesObservation struct {
// The forwarded values cookies that specifies how CloudFront handles cookies (maximum one).
Cookies []ForwardedValuesCookiesObservation `json:"cookies,omitempty" tf:"cookies,omitempty"`
// Headers, if any, that you want CloudFront to vary upon for this cache behavior. Specify * to include all headers.
Headers []*string `json:"headers,omitempty" tf:"headers,omitempty"`
// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior.
QueryString *bool `json:"queryString,omitempty" tf:"query_string,omitempty"`
// When specified, along with a value of true for query_string, all query strings are forwarded, however only the query string keys listed in this argument are cached. When omitted with a value of true for query_string, all query string keys are cached.
QueryStringCacheKeys []*string `json:"queryStringCacheKeys,omitempty" tf:"query_string_cache_keys,omitempty"`
}
type ForwardedValuesParameters struct {
// The forwarded values cookies that specifies how CloudFront handles cookies (maximum one).
// +kubebuilder:validation:Required
Cookies []ForwardedValuesCookiesParameters `json:"cookies" tf:"cookies,omitempty"`
// Headers, if any, that you want CloudFront to vary upon for this cache behavior. Specify * to include all headers.
// +kubebuilder:validation:Optional
Headers []*string `json:"headers,omitempty" tf:"headers,omitempty"`
// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior.
// +kubebuilder:validation:Required
QueryString *bool `json:"queryString" tf:"query_string,omitempty"`
// When specified, along with a value of true for query_string, all query strings are forwarded, however only the query string keys listed in this argument are cached. When omitted with a value of true for query_string, all query string keys are cached.
// +kubebuilder:validation:Optional
QueryStringCacheKeys []*string `json:"queryStringCacheKeys,omitempty" tf:"query_string_cache_keys,omitempty"`
}
type FunctionAssociationObservation struct {
// Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
EventType *string `json:"eventType,omitempty" tf:"event_type,omitempty"`
// ARN of the CloudFront function.
FunctionArn *string `json:"functionArn,omitempty" tf:"function_arn,omitempty"`
}
type FunctionAssociationParameters struct {
// Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
// +kubebuilder:validation:Required
EventType *string `json:"eventType" tf:"event_type,omitempty"`
// ARN of the CloudFront function.
// +kubebuilder:validation:Required
FunctionArn *string `json:"functionArn" tf:"function_arn,omitempty"`
}
type GeoRestrictionObservation struct {
// ISO 3166-1-alpha-2 codes for which you want CloudFront either to distribute your content (whitelist) or not distribute your content (blacklist). If the type is specified as none an empty array can be used.
Locations []*string `json:"locations,omitempty" tf:"locations,omitempty"`
// Method that you want to use to restrict distribution of your content by country: none, whitelist, or blacklist.
RestrictionType *string `json:"restrictionType,omitempty" tf:"restriction_type,omitempty"`
}
type GeoRestrictionParameters struct {
// ISO 3166-1-alpha-2 codes for which you want CloudFront either to distribute your content (whitelist) or not distribute your content (blacklist). If the type is specified as none an empty array can be used.
// +kubebuilder:validation:Optional
Locations []*string `json:"locations,omitempty" tf:"locations,omitempty"`
// Method that you want to use to restrict distribution of your content by country: none, whitelist, or blacklist.
// +kubebuilder:validation:Required
RestrictionType *string `json:"restrictionType" tf:"restriction_type,omitempty"`
}
type ItemsObservation struct {
// ID of the key group that contains the public keys.
KeyGroupID *string `json:"keyGroupId,omitempty" tf:"key_group_id,omitempty"`
// Set of CloudFront key pair IDs.
KeyPairIds []*string `json:"keyPairIds,omitempty" tf:"key_pair_ids,omitempty"`
}
type ItemsParameters struct {
}
type LambdaFunctionAssociationObservation struct {
// Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
EventType *string `json:"eventType,omitempty" tf:"event_type,omitempty"`
// When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
IncludeBody *bool `json:"includeBody,omitempty" tf:"include_body,omitempty"`
// ARN of the Lambda function.
LambdaArn *string `json:"lambdaArn,omitempty" tf:"lambda_arn,omitempty"`
}
type LambdaFunctionAssociationParameters struct {
// Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
// +kubebuilder:validation:Required
EventType *string `json:"eventType" tf:"event_type,omitempty"`
// When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
// +kubebuilder:validation:Optional
IncludeBody *bool `json:"includeBody,omitempty" tf:"include_body,omitempty"`
// ARN of the Lambda function.
// +kubebuilder:validation:Required
LambdaArn *string `json:"lambdaArn" tf:"lambda_arn,omitempty"`
}
type LoggingConfigObservation struct {
// Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.
Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"`
// Whether to include cookies in access logs (default: false).
IncludeCookies *bool `json:"includeCookies,omitempty" tf:"include_cookies,omitempty"`
// Prefix to the access log filenames for this distribution, for example, myprefix/.
Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"`
}
type LoggingConfigParameters struct {
// Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.
// +kubebuilder:validation:Required
Bucket *string `json:"bucket" tf:"bucket,omitempty"`
// Whether to include cookies in access logs (default: false).
// +kubebuilder:validation:Optional
IncludeCookies *bool `json:"includeCookies,omitempty" tf:"include_cookies,omitempty"`
// Prefix to the access log filenames for this distribution, for example, myprefix/.
// +kubebuilder:validation:Optional
Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"`
}
type MemberObservation struct {
// Unique identifier for the origin.
OriginID *string `json:"originId,omitempty" tf:"origin_id,omitempty"`
}
type MemberParameters struct {
// Unique identifier for the origin.
// +kubebuilder:validation:Required
OriginID *string `json:"originId" tf:"origin_id,omitempty"`
}
type OrderedCacheBehaviorForwardedValuesCookiesObservation struct {
// Whether you want CloudFront to forward cookies to the origin that is associated with this cache behavior. You can specify all, none or whitelist. If whitelist, you must include the subsequent whitelisted_names.
Forward *string `json:"forward,omitempty" tf:"forward,omitempty"`
// If you have specified whitelist to forward, the whitelisted cookies that you want CloudFront to forward to your origin.
WhitelistedNames []*string `json:"whitelistedNames,omitempty" tf:"whitelisted_names,omitempty"`
}
type OrderedCacheBehaviorForwardedValuesCookiesParameters struct {
// Whether you want CloudFront to forward cookies to the origin that is associated with this cache behavior. You can specify all, none or whitelist. If whitelist, you must include the subsequent whitelisted_names.
// +kubebuilder:validation:Required
Forward *string `json:"forward" tf:"forward,omitempty"`
// If you have specified whitelist to forward, the whitelisted cookies that you want CloudFront to forward to your origin.
// +kubebuilder:validation:Optional
WhitelistedNames []*string `json:"whitelistedNames,omitempty" tf:"whitelisted_names,omitempty"`
}
type OrderedCacheBehaviorForwardedValuesObservation struct {
// The forwarded values cookies that specifies how CloudFront handles cookies (maximum one).
Cookies []OrderedCacheBehaviorForwardedValuesCookiesObservation `json:"cookies,omitempty" tf:"cookies,omitempty"`
// Headers, if any, that you want CloudFront to vary upon for this cache behavior. Specify * to include all headers.
Headers []*string `json:"headers,omitempty" tf:"headers,omitempty"`
// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior.
QueryString *bool `json:"queryString,omitempty" tf:"query_string,omitempty"`
// When specified, along with a value of true for query_string, all query strings are forwarded, however only the query string keys listed in this argument are cached. When omitted with a value of true for query_string, all query string keys are cached.
QueryStringCacheKeys []*string `json:"queryStringCacheKeys,omitempty" tf:"query_string_cache_keys,omitempty"`
}
type OrderedCacheBehaviorForwardedValuesParameters struct {
// The forwarded values cookies that specifies how CloudFront handles cookies (maximum one).
// +kubebuilder:validation:Required
Cookies []OrderedCacheBehaviorForwardedValuesCookiesParameters `json:"cookies" tf:"cookies,omitempty"`
// Headers, if any, that you want CloudFront to vary upon for this cache behavior. Specify * to include all headers.
// +kubebuilder:validation:Optional
Headers []*string `json:"headers,omitempty" tf:"headers,omitempty"`
// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior.
// +kubebuilder:validation:Required
QueryString *bool `json:"queryString" tf:"query_string,omitempty"`
// When specified, along with a value of true for query_string, all query strings are forwarded, however only the query string keys listed in this argument are cached. When omitted with a value of true for query_string, all query string keys are cached.
// +kubebuilder:validation:Optional
QueryStringCacheKeys []*string `json:"queryStringCacheKeys,omitempty" tf:"query_string_cache_keys,omitempty"`
}
type OrderedCacheBehaviorFunctionAssociationObservation struct {
// Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
EventType *string `json:"eventType,omitempty" tf:"event_type,omitempty"`
// ARN of the CloudFront function.
FunctionArn *string `json:"functionArn,omitempty" tf:"function_arn,omitempty"`
}
type OrderedCacheBehaviorFunctionAssociationParameters struct {
// Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
// +kubebuilder:validation:Required
EventType *string `json:"eventType" tf:"event_type,omitempty"`
// ARN of the CloudFront function.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/cloudfront/v1beta1.Function
// +crossplane:generate:reference:extractor=github.com/upbound/upjet/pkg/resource.ExtractParamPath("arn",true)
// +kubebuilder:validation:Optional
FunctionArn *string `json:"functionArn,omitempty" tf:"function_arn,omitempty"`
// Reference to a Function in cloudfront to populate functionArn.
// +kubebuilder:validation:Optional
FunctionArnRef *v1.Reference `json:"functionArnRef,omitempty" tf:"-"`
// Selector for a Function in cloudfront to populate functionArn.
// +kubebuilder:validation:Optional
FunctionArnSelector *v1.Selector `json:"functionArnSelector,omitempty" tf:"-"`
}
type OrderedCacheBehaviorLambdaFunctionAssociationObservation struct {
// Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
EventType *string `json:"eventType,omitempty" tf:"event_type,omitempty"`
// When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
IncludeBody *bool `json:"includeBody,omitempty" tf:"include_body,omitempty"`
// ARN of the Lambda function.
LambdaArn *string `json:"lambdaArn,omitempty" tf:"lambda_arn,omitempty"`
}
type OrderedCacheBehaviorLambdaFunctionAssociationParameters struct {
// Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
// +kubebuilder:validation:Required
EventType *string `json:"eventType" tf:"event_type,omitempty"`
// When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
// +kubebuilder:validation:Optional
IncludeBody *bool `json:"includeBody,omitempty" tf:"include_body,omitempty"`
// ARN of the Lambda function.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/lambda/v1beta1.Function
// +crossplane:generate:reference:extractor=github.com/upbound/upjet/pkg/resource.ExtractParamPath("qualified_arn",true)
// +kubebuilder:validation:Optional
LambdaArn *string `json:"lambdaArn,omitempty" tf:"lambda_arn,omitempty"`
// Reference to a Function in lambda to populate lambdaArn.
// +kubebuilder:validation:Optional
LambdaArnRef *v1.Reference `json:"lambdaArnRef,omitempty" tf:"-"`
// Selector for a Function in lambda to populate lambdaArn.
// +kubebuilder:validation:Optional
LambdaArnSelector *v1.Selector `json:"lambdaArnSelector,omitempty" tf:"-"`
}
type OrderedCacheBehaviorObservation struct {
// Controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin.
AllowedMethods []*string `json:"allowedMethods,omitempty" tf:"allowed_methods,omitempty"`
// Unique identifier of the cache policy that is attached to the cache behavior. If configuring the default_cache_behavior either cache_policy_id or forwarded_values must be set.
CachePolicyID *string `json:"cachePolicyId,omitempty" tf:"cache_policy_id,omitempty"`
// Controls whether CloudFront caches the response to requests using the specified HTTP methods.
CachedMethods []*string `json:"cachedMethods,omitempty" tf:"cached_methods,omitempty"`
// Whether you want CloudFront to automatically compress content for web requests that include Accept-Encoding: gzip in the request header (default: false).
Compress *bool `json:"compress,omitempty" tf:"compress,omitempty"`
// Default amount of time (in seconds) that an object is in a CloudFront cache before CloudFront forwards another request in the absence of an Cache-Control max-age or Expires header.
DefaultTTL *float64 `json:"defaultTtl,omitempty" tf:"default_ttl,omitempty"`
// Field level encryption configuration ID.
FieldLevelEncryptionID *string `json:"fieldLevelEncryptionId,omitempty" tf:"field_level_encryption_id,omitempty"`
// The forwarded values configuration that specifies how CloudFront handles query strings, cookies and headers (maximum one).
ForwardedValues []OrderedCacheBehaviorForwardedValuesObservation `json:"forwardedValues,omitempty" tf:"forwarded_values,omitempty"`
// A config block that triggers a cloudfront function with specific actions (maximum 2).
FunctionAssociation []OrderedCacheBehaviorFunctionAssociationObservation `json:"functionAssociation,omitempty" tf:"function_association,omitempty"`
// A config block that triggers a lambda function with specific actions (maximum 4).
LambdaFunctionAssociation []OrderedCacheBehaviorLambdaFunctionAssociationObservation `json:"lambdaFunctionAssociation,omitempty" tf:"lambda_function_association,omitempty"`
// Maximum amount of time (in seconds) that an object is in a CloudFront cache before CloudFront forwards another request to your origin to determine whether the object has been updated. Only effective in the presence of Cache-Control max-age, Cache-Control s-maxage, and Expires headers.
MaxTTL *float64 `json:"maxTtl,omitempty" tf:"max_ttl,omitempty"`
// Minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated. Defaults to 0 seconds.
MinTTL *float64 `json:"minTtl,omitempty" tf:"min_ttl,omitempty"`
// Unique identifier of the origin request policy that is attached to the behavior.
OriginRequestPolicyID *string `json:"originRequestPolicyId,omitempty" tf:"origin_request_policy_id,omitempty"`
// Pattern (for example, images/*.jpg) that specifies which requests you want this cache behavior to apply to.
PathPattern *string `json:"pathPattern,omitempty" tf:"path_pattern,omitempty"`
// ARN of the real-time log configuration that is attached to this cache behavior.
RealtimeLogConfigArn *string `json:"realtimeLogConfigArn,omitempty" tf:"realtime_log_config_arn,omitempty"`
// Identifier for a response headers policy.
ResponseHeadersPolicyID *string `json:"responseHeadersPolicyId,omitempty" tf:"response_headers_policy_id,omitempty"`
// Indicates whether you want to distribute media files in Microsoft Smooth Streaming format using the origin that is associated with this cache behavior.
SmoothStreaming *bool `json:"smoothStreaming,omitempty" tf:"smooth_streaming,omitempty"`
// Value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.
TargetOriginID *string `json:"targetOriginId,omitempty" tf:"target_origin_id,omitempty"`
// List of key group IDs that CloudFront can use to validate signed URLs or signed cookies. See the CloudFront User Guide for more information about this feature.
TrustedKeyGroups []*string `json:"trustedKeyGroups,omitempty" tf:"trusted_key_groups,omitempty"`
// List of AWS account IDs (or self) that you want to allow to create signed URLs for private content. See the CloudFront User Guide for more information about this feature.
TrustedSigners []*string `json:"trustedSigners,omitempty" tf:"trusted_signers,omitempty"`
// Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. One of allow-all, https-only, or redirect-to-https.
ViewerProtocolPolicy *string `json:"viewerProtocolPolicy,omitempty" tf:"viewer_protocol_policy,omitempty"`
}
type OrderedCacheBehaviorParameters struct {
// Controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin.
// +kubebuilder:validation:Required
AllowedMethods []*string `json:"allowedMethods" tf:"allowed_methods,omitempty"`
// Unique identifier of the cache policy that is attached to the cache behavior. If configuring the default_cache_behavior either cache_policy_id or forwarded_values must be set.
// +kubebuilder:validation:Optional
CachePolicyID *string `json:"cachePolicyId,omitempty" tf:"cache_policy_id,omitempty"`
// Controls whether CloudFront caches the response to requests using the specified HTTP methods.
// +kubebuilder:validation:Required
CachedMethods []*string `json:"cachedMethods" tf:"cached_methods,omitempty"`
// Whether you want CloudFront to automatically compress content for web requests that include Accept-Encoding: gzip in the request header (default: false).
// +kubebuilder:validation:Optional
Compress *bool `json:"compress,omitempty" tf:"compress,omitempty"`
// Default amount of time (in seconds) that an object is in a CloudFront cache before CloudFront forwards another request in the absence of an Cache-Control max-age or Expires header.
// +kubebuilder:validation:Optional
DefaultTTL *float64 `json:"defaultTtl,omitempty" tf:"default_ttl,omitempty"`
// Field level encryption configuration ID.
// +kubebuilder:validation:Optional
FieldLevelEncryptionID *string `json:"fieldLevelEncryptionId,omitempty" tf:"field_level_encryption_id,omitempty"`
// The forwarded values configuration that specifies how CloudFront handles query strings, cookies and headers (maximum one).
// +kubebuilder:validation:Optional
ForwardedValues []OrderedCacheBehaviorForwardedValuesParameters `json:"forwardedValues,omitempty" tf:"forwarded_values,omitempty"`
// A config block that triggers a cloudfront function with specific actions (maximum 2).
// +kubebuilder:validation:Optional
FunctionAssociation []OrderedCacheBehaviorFunctionAssociationParameters `json:"functionAssociation,omitempty" tf:"function_association,omitempty"`
// A config block that triggers a lambda function with specific actions (maximum 4).
// +kubebuilder:validation:Optional
LambdaFunctionAssociation []OrderedCacheBehaviorLambdaFunctionAssociationParameters `json:"lambdaFunctionAssociation,omitempty" tf:"lambda_function_association,omitempty"`
// Maximum amount of time (in seconds) that an object is in a CloudFront cache before CloudFront forwards another request to your origin to determine whether the object has been updated. Only effective in the presence of Cache-Control max-age, Cache-Control s-maxage, and Expires headers.
// +kubebuilder:validation:Optional
MaxTTL *float64 `json:"maxTtl,omitempty" tf:"max_ttl,omitempty"`
// Minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated. Defaults to 0 seconds.
// +kubebuilder:validation:Optional
MinTTL *float64 `json:"minTtl,omitempty" tf:"min_ttl,omitempty"`
// Unique identifier of the origin request policy that is attached to the behavior.
// +kubebuilder:validation:Optional
OriginRequestPolicyID *string `json:"originRequestPolicyId,omitempty" tf:"origin_request_policy_id,omitempty"`
// Pattern (for example, images/*.jpg) that specifies which requests you want this cache behavior to apply to.
// +kubebuilder:validation:Required
PathPattern *string `json:"pathPattern" tf:"path_pattern,omitempty"`
// ARN of the real-time log configuration that is attached to this cache behavior.
// +kubebuilder:validation:Optional
RealtimeLogConfigArn *string `json:"realtimeLogConfigArn,omitempty" tf:"realtime_log_config_arn,omitempty"`
// Identifier for a response headers policy.
// +kubebuilder:validation:Optional
ResponseHeadersPolicyID *string `json:"responseHeadersPolicyId,omitempty" tf:"response_headers_policy_id,omitempty"`
// Indicates whether you want to distribute media files in Microsoft Smooth Streaming format using the origin that is associated with this cache behavior.
// +kubebuilder:validation:Optional
SmoothStreaming *bool `json:"smoothStreaming,omitempty" tf:"smooth_streaming,omitempty"`
// Value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.
// +kubebuilder:validation:Required
TargetOriginID *string `json:"targetOriginId" tf:"target_origin_id,omitempty"`
// List of key group IDs that CloudFront can use to validate signed URLs or signed cookies. See the CloudFront User Guide for more information about this feature.
// +kubebuilder:validation:Optional
TrustedKeyGroups []*string `json:"trustedKeyGroups,omitempty" tf:"trusted_key_groups,omitempty"`
// List of AWS account IDs (or self) that you want to allow to create signed URLs for private content. See the CloudFront User Guide for more information about this feature.
// +kubebuilder:validation:Optional
TrustedSigners []*string `json:"trustedSigners,omitempty" tf:"trusted_signers,omitempty"`
// Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. One of allow-all, https-only, or redirect-to-https.
// +kubebuilder:validation:Required
ViewerProtocolPolicy *string `json:"viewerProtocolPolicy" tf:"viewer_protocol_policy,omitempty"`
}
type OriginGroupObservation struct {
// The failover criteria for when to failover to the secondary origin.
FailoverCriteria []FailoverCriteriaObservation `json:"failoverCriteria,omitempty" tf:"failover_criteria,omitempty"`
// Ordered member configuration blocks assigned to the origin group, where the first member is the primary origin. You must specify two members.
Member []MemberObservation `json:"member,omitempty" tf:"member,omitempty"`
// Unique identifier for the origin.
OriginID *string `json:"originId,omitempty" tf:"origin_id,omitempty"`
}
type OriginGroupParameters struct {
// The failover criteria for when to failover to the secondary origin.
// +kubebuilder:validation:Required
FailoverCriteria []FailoverCriteriaParameters `json:"failoverCriteria" tf:"failover_criteria,omitempty"`
// Ordered member configuration blocks assigned to the origin group, where the first member is the primary origin. You must specify two members.
// +kubebuilder:validation:Required
Member []MemberParameters `json:"member" tf:"member,omitempty"`
// Unique identifier for the origin.
// +kubebuilder:validation:Required
OriginID *string `json:"originId" tf:"origin_id,omitempty"`
}
type OriginObservation struct {
// Number of times that CloudFront attempts to connect to the origin. Must be between 1-3. Defaults to 3.
ConnectionAttempts *float64 `json:"connectionAttempts,omitempty" tf:"connection_attempts,omitempty"`
// Number of seconds that CloudFront waits when trying to establish a connection to the origin. Must be between 1-10. Defaults to 10.
ConnectionTimeout *float64 `json:"connectionTimeout,omitempty" tf:"connection_timeout,omitempty"`
// One or more sub-resources with name and value parameters that specify header data that will be sent to the origin (multiples allowed).
CustomHeader []CustomHeaderObservation `json:"customHeader,omitempty" tf:"custom_header,omitempty"`
// The CloudFront custom origin configuration information. If an S3 origin is required, use origin_access_control_id or s3_origin_config instead.
CustomOriginConfig []CustomOriginConfigObservation `json:"customOriginConfig,omitempty" tf:"custom_origin_config,omitempty"`
// DNS domain name of either the S3 bucket, or web site of your custom origin.
DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"`
// Unique identifier of a CloudFront origin access control for this origin.
OriginAccessControlID *string `json:"originAccessControlId,omitempty" tf:"origin_access_control_id,omitempty"`
// Unique identifier for the origin.
OriginID *string `json:"originId,omitempty" tf:"origin_id,omitempty"`
// Optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin.
OriginPath *string `json:"originPath,omitempty" tf:"origin_path,omitempty"`
// The CloudFront Origin Shield configuration information. Using Origin Shield can help reduce the load on your origin. For more information, see Using Origin Shield in the Amazon CloudFront Developer Guide.
OriginShield []OriginShieldObservation `json:"originShield,omitempty" tf:"origin_shield,omitempty"`
// The CloudFront S3 origin configuration information. If a custom origin is required, use custom_origin_config instead.
S3OriginConfig []S3OriginConfigObservation `json:"s3OriginConfig,omitempty" tf:"s3_origin_config,omitempty"`
}
type OriginParameters struct {
// Number of times that CloudFront attempts to connect to the origin. Must be between 1-3. Defaults to 3.
// +kubebuilder:validation:Optional
ConnectionAttempts *float64 `json:"connectionAttempts,omitempty" tf:"connection_attempts,omitempty"`
// Number of seconds that CloudFront waits when trying to establish a connection to the origin. Must be between 1-10. Defaults to 10.
// +kubebuilder:validation:Optional
ConnectionTimeout *float64 `json:"connectionTimeout,omitempty" tf:"connection_timeout,omitempty"`
// One or more sub-resources with name and value parameters that specify header data that will be sent to the origin (multiples allowed).
// +kubebuilder:validation:Optional
CustomHeader []CustomHeaderParameters `json:"customHeader,omitempty" tf:"custom_header,omitempty"`
// The CloudFront custom origin configuration information. If an S3 origin is required, use origin_access_control_id or s3_origin_config instead.
// +kubebuilder:validation:Optional
CustomOriginConfig []CustomOriginConfigParameters `json:"customOriginConfig,omitempty" tf:"custom_origin_config,omitempty"`
// DNS domain name of either the S3 bucket, or web site of your custom origin.
// +kubebuilder:validation:Required
DomainName *string `json:"domainName" tf:"domain_name,omitempty"`
// Unique identifier of a CloudFront origin access control for this origin.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/cloudfront/v1beta1.OriginAccessControl
// +crossplane:generate:reference:extractor=github.com/upbound/upjet/pkg/resource.ExtractResourceID()
// +kubebuilder:validation:Optional
OriginAccessControlID *string `json:"originAccessControlId,omitempty" tf:"origin_access_control_id,omitempty"`
// Reference to a OriginAccessControl in cloudfront to populate originAccessControlId.
// +kubebuilder:validation:Optional
OriginAccessControlIDRef *v1.Reference `json:"originAccessControlIdRef,omitempty" tf:"-"`
// Selector for a OriginAccessControl in cloudfront to populate originAccessControlId.
// +kubebuilder:validation:Optional
OriginAccessControlIDSelector *v1.Selector `json:"originAccessControlIdSelector,omitempty" tf:"-"`
// Unique identifier for the origin.
// +kubebuilder:validation:Required
OriginID *string `json:"originId" tf:"origin_id,omitempty"`
// Optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin.
// +kubebuilder:validation:Optional
OriginPath *string `json:"originPath,omitempty" tf:"origin_path,omitempty"`
// The CloudFront Origin Shield configuration information. Using Origin Shield can help reduce the load on your origin. For more information, see Using Origin Shield in the Amazon CloudFront Developer Guide.
// +kubebuilder:validation:Optional
OriginShield []OriginShieldParameters `json:"originShield,omitempty" tf:"origin_shield,omitempty"`
// The CloudFront S3 origin configuration information. If a custom origin is required, use custom_origin_config instead.
// +kubebuilder:validation:Optional
S3OriginConfig []S3OriginConfigParameters `json:"s3OriginConfig,omitempty" tf:"s3_origin_config,omitempty"`
}
type OriginShieldObservation struct {
// Whether the distribution is enabled to accept end user requests for content.