| 
									
										
										
										
											2022-05-12 09:58:17 -04:00
										 |  |  | # Example distribution config used in tests in both test_cloudfront.py | 
					
						
							|  |  |  | # as well as test_cloudfront_distributions.py. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def example_distribution_config(ref): | 
					
						
							|  |  |  |     """Return a basic example distribution config for use in tests.""" | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |         "CallerReference": ref, | 
					
						
							|  |  |  |         "Origins": { | 
					
						
							|  |  |  |             "Quantity": 1, | 
					
						
							|  |  |  |             "Items": [ | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     "Id": "origin1", | 
					
						
							|  |  |  |                     "DomainName": "asdf.s3.us-east-1.amazonaws.com", | 
					
						
							| 
									
										
										
										
											2022-12-08 00:02:01 +00:00
										 |  |  |                     "OriginPath": "/example", | 
					
						
							|  |  |  |                     "S3OriginConfig": { | 
					
						
							|  |  |  |                         "OriginAccessIdentity": "origin-access-identity/cloudfront/00000000000001" | 
					
						
							|  |  |  |                     }, | 
					
						
							| 
									
										
										
										
											2022-05-12 09:58:17 -04:00
										 |  |  |                 } | 
					
						
							|  |  |  |             ], | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         "DefaultCacheBehavior": { | 
					
						
							|  |  |  |             "TargetOriginId": "origin1", | 
					
						
							|  |  |  |             "ViewerProtocolPolicy": "allow-all", | 
					
						
							|  |  |  |             "MinTTL": 10, | 
					
						
							|  |  |  |             "ForwardedValues": {"QueryString": False, "Cookies": {"Forward": "none"}}, | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         "Comment": "an optional comment that's not actually optional", | 
					
						
							|  |  |  |         "Enabled": False, | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-06-29 20:12:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def example_dist_config_with_tags(ref): | 
					
						
							|  |  |  |     config = example_distribution_config(ref) | 
					
						
							|  |  |  |     config["Tags"] = { | 
					
						
							|  |  |  |         "Items": [{"Key": "k1", "Value": "v1"}, {"Key": "k2", "Value": "v2"}] | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     return config | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-21 20:33:16 +00:00
										 |  |  | def example_dist_custom_config(ref, ssl_protocols): | 
					
						
							| 
									
										
										
										
											2022-06-29 20:12:56 +00:00
										 |  |  |     return { | 
					
						
							|  |  |  |         "CallerReference": ref, | 
					
						
							|  |  |  |         "Origins": { | 
					
						
							|  |  |  |             "Quantity": 1, | 
					
						
							|  |  |  |             "Items": [ | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     "Id": "origin1", | 
					
						
							|  |  |  |                     "DomainName": "asdf.s3.us-east-1.amazonaws.com", | 
					
						
							|  |  |  |                     "CustomOriginConfig": { | 
					
						
							|  |  |  |                         "HTTPPort": 80, | 
					
						
							|  |  |  |                         "HTTPSPort": 443, | 
					
						
							| 
									
										
										
										
											2023-07-11 09:31:07 +00:00
										 |  |  |                         "OriginKeepaliveTimeout": 10, | 
					
						
							| 
									
										
										
										
											2022-06-29 20:12:56 +00:00
										 |  |  |                         "OriginProtocolPolicy": "http-only", | 
					
						
							| 
									
										
										
										
											2023-07-11 09:31:07 +00:00
										 |  |  |                         "OriginReadTimeout": 15, | 
					
						
							| 
									
										
										
										
											2022-06-29 20:12:56 +00:00
										 |  |  |                         "OriginSslProtocols": { | 
					
						
							|  |  |  |                             "Quantity": 2, | 
					
						
							| 
									
										
										
										
											2023-08-21 20:33:16 +00:00
										 |  |  |                             "Items": ssl_protocols, | 
					
						
							| 
									
										
										
										
											2022-06-29 20:12:56 +00:00
										 |  |  |                         }, | 
					
						
							|  |  |  |                     }, | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             ], | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         "DefaultCacheBehavior": { | 
					
						
							|  |  |  |             "TargetOriginId": "origin1", | 
					
						
							|  |  |  |             "ViewerProtocolPolicy": "allow-all", | 
					
						
							|  |  |  |             "MinTTL": 10, | 
					
						
							|  |  |  |             "ForwardedValues": {"QueryString": False, "Cookies": {"Forward": "none"}}, | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         "Comment": "an optional comment that's not actually optional", | 
					
						
							|  |  |  |         "Enabled": False, | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2023-07-11 09:31:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def minimal_dist_custom_config(ref: str): | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |         "CallerReference": ref, | 
					
						
							|  |  |  |         "Origins": { | 
					
						
							|  |  |  |             "Quantity": 1, | 
					
						
							|  |  |  |             "Items": [ | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     "Id": "my-origin", | 
					
						
							|  |  |  |                     "DomainName": "example.com", | 
					
						
							|  |  |  |                     "CustomOriginConfig": { | 
					
						
							|  |  |  |                         "HTTPPort": 80, | 
					
						
							|  |  |  |                         "HTTPSPort": 443, | 
					
						
							|  |  |  |                         "OriginProtocolPolicy": "http-only", | 
					
						
							|  |  |  |                     }, | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             ], | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         "DefaultCacheBehavior": { | 
					
						
							|  |  |  |             "TargetOriginId": "my-origin", | 
					
						
							|  |  |  |             "ViewerProtocolPolicy": "redirect-to-https", | 
					
						
							|  |  |  |             "DefaultTTL": 86400, | 
					
						
							|  |  |  |             "AllowedMethods": {"Quantity": 2, "Items": ["GET", "HEAD"]}, | 
					
						
							|  |  |  |             "ForwardedValues": { | 
					
						
							|  |  |  |                 "QueryString": False, | 
					
						
							|  |  |  |                 "Cookies": {"Forward": "none"}, | 
					
						
							|  |  |  |                 "Headers": {"Quantity": 0}, | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |             "TrustedSigners": {"Enabled": False, "Quantity": 0}, | 
					
						
							|  |  |  |             "MinTTL": 0, | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         "Comment": "My CloudFront distribution", | 
					
						
							|  |  |  |         "Enabled": True, | 
					
						
							|  |  |  |     } |