capo-cloudfront 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1020) hide show
  1. capo_cloudfront/__init__.py +52 -0
  2. capo_cloudfront/_async.py +25 -0
  3. capo_cloudfront/_auth/_identity.py +16 -0
  4. capo_cloudfront/_auth/_providers.py +318 -0
  5. capo_cloudfront/_auth/_signers.py +84 -0
  6. capo_cloudfront/_auth/_sigv4.py +382 -0
  7. capo_cloudfront/_auth/_zapros_handler.py +62 -0
  8. capo_cloudfront/_iter.py +113 -0
  9. capo_cloudfront/_operations/cloudfront2020_05_31/associate_alias.py +128 -0
  10. capo_cloudfront/_operations/cloudfront2020_05_31/associate_distribution_tenant_web_acl.py +164 -0
  11. capo_cloudfront/_operations/cloudfront2020_05_31/associate_distribution_web_acl.py +161 -0
  12. capo_cloudfront/_operations/cloudfront2020_05_31/copy_distribution.py +464 -0
  13. capo_cloudfront/_operations/cloudfront2020_05_31/create_anycast_ip_list.py +177 -0
  14. capo_cloudfront/_operations/cloudfront2020_05_31/create_cache_policy.py +183 -0
  15. capo_cloudfront/_operations/cloudfront2020_05_31/create_cloud_front_origin_access_identity.py +170 -0
  16. capo_cloudfront/_operations/cloudfront2020_05_31/create_connection_function.py +184 -0
  17. capo_cloudfront/_operations/cloudfront2020_05_31/create_connection_group.py +169 -0
  18. capo_cloudfront/_operations/cloudfront2020_05_31/create_continuous_deployment_policy.py +175 -0
  19. capo_cloudfront/_operations/cloudfront2020_05_31/create_distribution.py +468 -0
  20. capo_cloudfront/_operations/cloudfront2020_05_31/create_distribution_tenant.py +199 -0
  21. capo_cloudfront/_operations/cloudfront2020_05_31/create_distribution_with_tags.py +468 -0
  22. capo_cloudfront/_operations/cloudfront2020_05_31/create_field_level_encryption_config.py +187 -0
  23. capo_cloudfront/_operations/cloudfront2020_05_31/create_field_level_encryption_profile.py +187 -0
  24. capo_cloudfront/_operations/cloudfront2020_05_31/create_function.py +176 -0
  25. capo_cloudfront/_operations/cloudfront2020_05_31/create_invalidation.py +177 -0
  26. capo_cloudfront/_operations/cloudfront2020_05_31/create_invalidation_for_distribution_tenant.py +170 -0
  27. capo_cloudfront/_operations/cloudfront2020_05_31/create_key_group.py +163 -0
  28. capo_cloudfront/_operations/cloudfront2020_05_31/create_key_value_store.py +178 -0
  29. capo_cloudfront/_operations/cloudfront2020_05_31/create_monitoring_subscription.py +163 -0
  30. capo_cloudfront/_operations/cloudfront2020_05_31/create_origin_access_control.py +162 -0
  31. capo_cloudfront/_operations/cloudfront2020_05_31/create_origin_request_policy.py +185 -0
  32. capo_cloudfront/_operations/cloudfront2020_05_31/create_public_key.py +160 -0
  33. capo_cloudfront/_operations/cloudfront2020_05_31/create_realtime_log_config.py +156 -0
  34. capo_cloudfront/_operations/cloudfront2020_05_31/create_response_headers_policy.py +185 -0
  35. capo_cloudfront/_operations/cloudfront2020_05_31/create_streaming_distribution.py +206 -0
  36. capo_cloudfront/_operations/cloudfront2020_05_31/create_streaming_distribution_with_tags.py +209 -0
  37. capo_cloudfront/_operations/cloudfront2020_05_31/create_trust_store.py +172 -0
  38. capo_cloudfront/_operations/cloudfront2020_05_31/create_vpc_origin.py +177 -0
  39. capo_cloudfront/_operations/cloudfront2020_05_31/delete_anycast_ip_list.py +136 -0
  40. capo_cloudfront/_operations/cloudfront2020_05_31/delete_cache_policy.py +130 -0
  41. capo_cloudfront/_operations/cloudfront2020_05_31/delete_cloud_front_origin_access_identity.py +129 -0
  42. capo_cloudfront/_operations/cloudfront2020_05_31/delete_connection_function.py +133 -0
  43. capo_cloudfront/_operations/cloudfront2020_05_31/delete_connection_group.py +130 -0
  44. capo_cloudfront/_operations/cloudfront2020_05_31/delete_continuous_deployment_policy.py +130 -0
  45. capo_cloudfront/_operations/cloudfront2020_05_31/delete_distribution.py +130 -0
  46. capo_cloudfront/_operations/cloudfront2020_05_31/delete_distribution_tenant.py +125 -0
  47. capo_cloudfront/_operations/cloudfront2020_05_31/delete_field_level_encryption_config.py +127 -0
  48. capo_cloudfront/_operations/cloudfront2020_05_31/delete_field_level_encryption_profile.py +127 -0
  49. capo_cloudfront/_operations/cloudfront2020_05_31/delete_function.py +127 -0
  50. capo_cloudfront/_operations/cloudfront2020_05_31/delete_key_group.py +120 -0
  51. capo_cloudfront/_operations/cloudfront2020_05_31/delete_key_value_store.py +130 -0
  52. capo_cloudfront/_operations/cloudfront2020_05_31/delete_monitoring_subscription.py +146 -0
  53. capo_cloudfront/_operations/cloudfront2020_05_31/delete_origin_access_control.py +127 -0
  54. capo_cloudfront/_operations/cloudfront2020_05_31/delete_origin_request_policy.py +130 -0
  55. capo_cloudfront/_operations/cloudfront2020_05_31/delete_public_key.py +125 -0
  56. capo_cloudfront/_operations/cloudfront2020_05_31/delete_realtime_log_config.py +122 -0
  57. capo_cloudfront/_operations/cloudfront2020_05_31/delete_resource_policy.py +126 -0
  58. capo_cloudfront/_operations/cloudfront2020_05_31/delete_response_headers_policy.py +130 -0
  59. capo_cloudfront/_operations/cloudfront2020_05_31/delete_streaming_distribution.py +127 -0
  60. capo_cloudfront/_operations/cloudfront2020_05_31/delete_trust_store.py +128 -0
  61. capo_cloudfront/_operations/cloudfront2020_05_31/delete_vpc_origin.py +170 -0
  62. capo_cloudfront/_operations/cloudfront2020_05_31/describe_connection_function.py +156 -0
  63. capo_cloudfront/_operations/cloudfront2020_05_31/describe_function.py +149 -0
  64. capo_cloudfront/_operations/cloudfront2020_05_31/describe_key_value_store.py +150 -0
  65. capo_cloudfront/_operations/cloudfront2020_05_31/disassociate_distribution_tenant_web_acl.py +155 -0
  66. capo_cloudfront/_operations/cloudfront2020_05_31/disassociate_distribution_web_acl.py +154 -0
  67. capo_cloudfront/_operations/cloudfront2020_05_31/get_anycast_ip_list.py +150 -0
  68. capo_cloudfront/_operations/cloudfront2020_05_31/get_cache_policy.py +142 -0
  69. capo_cloudfront/_operations/cloudfront2020_05_31/get_cache_policy_config.py +144 -0
  70. capo_cloudfront/_operations/cloudfront2020_05_31/get_cloud_front_origin_access_identity.py +146 -0
  71. capo_cloudfront/_operations/cloudfront2020_05_31/get_cloud_front_origin_access_identity_config.py +147 -0
  72. capo_cloudfront/_operations/cloudfront2020_05_31/get_connection_function.py +154 -0
  73. capo_cloudfront/_operations/cloudfront2020_05_31/get_connection_group.py +142 -0
  74. capo_cloudfront/_operations/cloudfront2020_05_31/get_connection_group_by_routing_endpoint.py +142 -0
  75. capo_cloudfront/_operations/cloudfront2020_05_31/get_continuous_deployment_policy.py +144 -0
  76. capo_cloudfront/_operations/cloudfront2020_05_31/get_continuous_deployment_policy_config.py +147 -0
  77. capo_cloudfront/_operations/cloudfront2020_05_31/get_distribution.py +142 -0
  78. capo_cloudfront/_operations/cloudfront2020_05_31/get_distribution_config.py +144 -0
  79. capo_cloudfront/_operations/cloudfront2020_05_31/get_distribution_tenant.py +142 -0
  80. capo_cloudfront/_operations/cloudfront2020_05_31/get_distribution_tenant_by_domain.py +142 -0
  81. capo_cloudfront/_operations/cloudfront2020_05_31/get_field_level_encryption.py +144 -0
  82. capo_cloudfront/_operations/cloudfront2020_05_31/get_field_level_encryption_config.py +144 -0
  83. capo_cloudfront/_operations/cloudfront2020_05_31/get_field_level_encryption_profile.py +144 -0
  84. capo_cloudfront/_operations/cloudfront2020_05_31/get_field_level_encryption_profile_config.py +147 -0
  85. capo_cloudfront/_operations/cloudfront2020_05_31/get_function.py +151 -0
  86. capo_cloudfront/_operations/cloudfront2020_05_31/get_invalidation.py +149 -0
  87. capo_cloudfront/_operations/cloudfront2020_05_31/get_invalidation_for_distribution_tenant.py +149 -0
  88. capo_cloudfront/_operations/cloudfront2020_05_31/get_key_group.py +137 -0
  89. capo_cloudfront/_operations/cloudfront2020_05_31/get_key_group_config.py +139 -0
  90. capo_cloudfront/_operations/cloudfront2020_05_31/get_managed_certificate_details.py +138 -0
  91. capo_cloudfront/_operations/cloudfront2020_05_31/get_monitoring_subscription.py +155 -0
  92. capo_cloudfront/_operations/cloudfront2020_05_31/get_origin_access_control.py +148 -0
  93. capo_cloudfront/_operations/cloudfront2020_05_31/get_origin_access_control_config.py +144 -0
  94. capo_cloudfront/_operations/cloudfront2020_05_31/get_origin_request_policy.py +148 -0
  95. capo_cloudfront/_operations/cloudfront2020_05_31/get_origin_request_policy_config.py +144 -0
  96. capo_cloudfront/_operations/cloudfront2020_05_31/get_public_key.py +142 -0
  97. capo_cloudfront/_operations/cloudfront2020_05_31/get_public_key_config.py +144 -0
  98. capo_cloudfront/_operations/cloudfront2020_05_31/get_realtime_log_config.py +143 -0
  99. capo_cloudfront/_operations/cloudfront2020_05_31/get_resource_policy.py +147 -0
  100. capo_cloudfront/_operations/cloudfront2020_05_31/get_response_headers_policy.py +144 -0
  101. capo_cloudfront/_operations/cloudfront2020_05_31/get_response_headers_policy_config.py +144 -0
  102. capo_cloudfront/_operations/cloudfront2020_05_31/get_streaming_distribution.py +144 -0
  103. capo_cloudfront/_operations/cloudfront2020_05_31/get_streaming_distribution_config.py +144 -0
  104. capo_cloudfront/_operations/cloudfront2020_05_31/get_trust_store.py +143 -0
  105. capo_cloudfront/_operations/cloudfront2020_05_31/get_vpc_origin.py +148 -0
  106. capo_cloudfront/_operations/cloudfront2020_05_31/list_anycast_ip_lists.py +148 -0
  107. capo_cloudfront/_operations/cloudfront2020_05_31/list_cache_policies.py +148 -0
  108. capo_cloudfront/_operations/cloudfront2020_05_31/list_cloud_front_origin_access_identities.py +137 -0
  109. capo_cloudfront/_operations/cloudfront2020_05_31/list_conflicting_aliases.py +146 -0
  110. capo_cloudfront/_operations/cloudfront2020_05_31/list_connection_functions.py +152 -0
  111. capo_cloudfront/_operations/cloudfront2020_05_31/list_connection_groups.py +146 -0
  112. capo_cloudfront/_operations/cloudfront2020_05_31/list_continuous_deployment_policies.py +145 -0
  113. capo_cloudfront/_operations/cloudfront2020_05_31/list_distribution_tenants.py +150 -0
  114. capo_cloudfront/_operations/cloudfront2020_05_31/list_distribution_tenants_by_customization.py +145 -0
  115. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions.py +137 -0
  116. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_anycast_ip_list_id.py +155 -0
  117. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_cache_policy_id.py +150 -0
  118. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_connection_function.py +147 -0
  119. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_connection_mode.py +148 -0
  120. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_key_group.py +144 -0
  121. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_origin_request_policy_id.py +153 -0
  122. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_owned_resource.py +153 -0
  123. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_realtime_log_config.py +147 -0
  124. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_response_headers_policy_id.py +153 -0
  125. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_trust_store.py +145 -0
  126. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_vpc_origin_id.py +153 -0
  127. capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_web_acl_id.py +144 -0
  128. capo_cloudfront/_operations/cloudfront2020_05_31/list_domain_conflicts.py +150 -0
  129. capo_cloudfront/_operations/cloudfront2020_05_31/list_field_level_encryption_configs.py +137 -0
  130. capo_cloudfront/_operations/cloudfront2020_05_31/list_field_level_encryption_profiles.py +137 -0
  131. capo_cloudfront/_operations/cloudfront2020_05_31/list_functions.py +143 -0
  132. capo_cloudfront/_operations/cloudfront2020_05_31/list_invalidations.py +152 -0
  133. capo_cloudfront/_operations/cloudfront2020_05_31/list_invalidations_for_distribution_tenant.py +145 -0
  134. capo_cloudfront/_operations/cloudfront2020_05_31/list_key_groups.py +135 -0
  135. capo_cloudfront/_operations/cloudfront2020_05_31/list_key_value_stores.py +147 -0
  136. capo_cloudfront/_operations/cloudfront2020_05_31/list_origin_access_controls.py +137 -0
  137. capo_cloudfront/_operations/cloudfront2020_05_31/list_origin_request_policies.py +148 -0
  138. capo_cloudfront/_operations/cloudfront2020_05_31/list_public_keys.py +135 -0
  139. capo_cloudfront/_operations/cloudfront2020_05_31/list_realtime_log_configs.py +149 -0
  140. capo_cloudfront/_operations/cloudfront2020_05_31/list_response_headers_policies.py +148 -0
  141. capo_cloudfront/_operations/cloudfront2020_05_31/list_streaming_distributions.py +137 -0
  142. capo_cloudfront/_operations/cloudfront2020_05_31/list_tags_for_resource.py +142 -0
  143. capo_cloudfront/_operations/cloudfront2020_05_31/list_trust_stores.py +145 -0
  144. capo_cloudfront/_operations/cloudfront2020_05_31/list_vpc_origins.py +146 -0
  145. capo_cloudfront/_operations/cloudfront2020_05_31/publish_connection_function.py +158 -0
  146. capo_cloudfront/_operations/cloudfront2020_05_31/publish_function.py +155 -0
  147. capo_cloudfront/_operations/cloudfront2020_05_31/put_resource_policy.py +157 -0
  148. capo_cloudfront/_operations/cloudfront2020_05_31/tag_resource.py +121 -0
  149. capo_cloudfront/_operations/cloudfront2020_05_31/test_connection_function.py +172 -0
  150. capo_cloudfront/_operations/cloudfront2020_05_31/test_function.py +167 -0
  151. capo_cloudfront/_operations/cloudfront2020_05_31/untag_resource.py +123 -0
  152. capo_cloudfront/_operations/cloudfront2020_05_31/update_anycast_ip_list.py +174 -0
  153. capo_cloudfront/_operations/cloudfront2020_05_31/update_cache_policy.py +196 -0
  154. capo_cloudfront/_operations/cloudfront2020_05_31/update_cloud_front_origin_access_identity.py +184 -0
  155. capo_cloudfront/_operations/cloudfront2020_05_31/update_connection_function.py +179 -0
  156. capo_cloudfront/_operations/cloudfront2020_05_31/update_connection_group.py +178 -0
  157. capo_cloudfront/_operations/cloudfront2020_05_31/update_continuous_deployment_policy.py +180 -0
  158. capo_cloudfront/_operations/cloudfront2020_05_31/update_distribution.py +468 -0
  159. capo_cloudfront/_operations/cloudfront2020_05_31/update_distribution_tenant.py +205 -0
  160. capo_cloudfront/_operations/cloudfront2020_05_31/update_distribution_with_staging_config.py +444 -0
  161. capo_cloudfront/_operations/cloudfront2020_05_31/update_domain_association.py +166 -0
  162. capo_cloudfront/_operations/cloudfront2020_05_31/update_field_level_encryption_config.py +198 -0
  163. capo_cloudfront/_operations/cloudfront2020_05_31/update_field_level_encryption_profile.py +206 -0
  164. capo_cloudfront/_operations/cloudfront2020_05_31/update_function.py +176 -0
  165. capo_cloudfront/_operations/cloudfront2020_05_31/update_key_group.py +171 -0
  166. capo_cloudfront/_operations/cloudfront2020_05_31/update_key_value_store.py +166 -0
  167. capo_cloudfront/_operations/cloudfront2020_05_31/update_origin_access_control.py +178 -0
  168. capo_cloudfront/_operations/cloudfront2020_05_31/update_origin_request_policy.py +198 -0
  169. capo_cloudfront/_operations/cloudfront2020_05_31/update_public_key.py +176 -0
  170. capo_cloudfront/_operations/cloudfront2020_05_31/update_realtime_log_config.py +153 -0
  171. capo_cloudfront/_operations/cloudfront2020_05_31/update_response_headers_policy.py +198 -0
  172. capo_cloudfront/_operations/cloudfront2020_05_31/update_streaming_distribution.py +211 -0
  173. capo_cloudfront/_operations/cloudfront2020_05_31/update_trust_store.py +172 -0
  174. capo_cloudfront/_operations/cloudfront2020_05_31/update_vpc_origin.py +196 -0
  175. capo_cloudfront/_operations/cloudfront2020_05_31/verify_dns_configuration.py +141 -0
  176. capo_cloudfront/_pagination.py +21 -0
  177. capo_cloudfront/_protocol/__init__.py +1 -0
  178. capo_cloudfront/_protocol/errors.py +59 -0
  179. capo_cloudfront/_protocol/eventstream.py +238 -0
  180. capo_cloudfront/_protocol/xml.py +27 -0
  181. capo_cloudfront/_rule_engine/__init__.py +0 -0
  182. capo_cloudfront/_rule_engine/_aws_partition.py +160 -0
  183. capo_cloudfront/_rule_engine/_endpoint_rule_set.py +272 -0
  184. capo_cloudfront/_rule_engine/_endpoint_runtime.py +389 -0
  185. capo_cloudfront/_services/_aws_config.py +152 -0
  186. capo_cloudfront/_services/_pipeline.py +198 -0
  187. capo_cloudfront/_services/async_cloud_front.py +9719 -0
  188. capo_cloudfront/_services/cloud_front.py +9540 -0
  189. capo_cloudfront/errors/__init__.py +377 -0
  190. capo_cloudfront/errors/_base.py +94 -0
  191. capo_cloudfront/errors/access_denied.py +46 -0
  192. capo_cloudfront/errors/batch_too_large.py +49 -0
  193. capo_cloudfront/errors/cache_policy_already_exists.py +49 -0
  194. capo_cloudfront/errors/cache_policy_in_use.py +49 -0
  195. capo_cloudfront/errors/cannot_change_immutable_public_key_fields.py +51 -0
  196. capo_cloudfront/errors/cannot_delete_entity_while_in_use.py +51 -0
  197. capo_cloudfront/errors/cannot_update_entity_while_in_use.py +51 -0
  198. capo_cloudfront/errors/cloud_front_origin_access_identity_already_exists.py +51 -0
  199. capo_cloudfront/errors/cloud_front_origin_access_identity_in_use.py +51 -0
  200. capo_cloudfront/errors/cname_already_exists.py +49 -0
  201. capo_cloudfront/errors/continuous_deployment_policy_already_exists.py +51 -0
  202. capo_cloudfront/errors/continuous_deployment_policy_in_use.py +51 -0
  203. capo_cloudfront/errors/distribution_already_exists.py +49 -0
  204. capo_cloudfront/errors/distribution_not_disabled.py +49 -0
  205. capo_cloudfront/errors/entity_already_exists.py +49 -0
  206. capo_cloudfront/errors/entity_limit_exceeded.py +49 -0
  207. capo_cloudfront/errors/entity_not_found.py +49 -0
  208. capo_cloudfront/errors/entity_size_limit_exceeded.py +49 -0
  209. capo_cloudfront/errors/field_level_encryption_config_already_exists.py +51 -0
  210. capo_cloudfront/errors/field_level_encryption_config_in_use.py +51 -0
  211. capo_cloudfront/errors/field_level_encryption_profile_already_exists.py +51 -0
  212. capo_cloudfront/errors/field_level_encryption_profile_in_use.py +51 -0
  213. capo_cloudfront/errors/field_level_encryption_profile_size_exceeded.py +51 -0
  214. capo_cloudfront/errors/function_already_exists.py +49 -0
  215. capo_cloudfront/errors/function_in_use.py +49 -0
  216. capo_cloudfront/errors/function_size_limit_exceeded.py +49 -0
  217. capo_cloudfront/errors/illegal_delete.py +49 -0
  218. capo_cloudfront/errors/illegal_field_level_encryption_config_association_with_cache_behavior.py +61 -0
  219. capo_cloudfront/errors/illegal_origin_access_configuration.py +51 -0
  220. capo_cloudfront/errors/illegal_update.py +49 -0
  221. capo_cloudfront/errors/inconsistent_quantities.py +49 -0
  222. capo_cloudfront/errors/invalid_argument.py +49 -0
  223. capo_cloudfront/errors/invalid_association.py +49 -0
  224. capo_cloudfront/errors/invalid_default_root_object.py +49 -0
  225. capo_cloudfront/errors/invalid_domain_name_for_origin_access_control.py +51 -0
  226. capo_cloudfront/errors/invalid_error_code.py +49 -0
  227. capo_cloudfront/errors/invalid_forward_cookies.py +49 -0
  228. capo_cloudfront/errors/invalid_function_association.py +51 -0
  229. capo_cloudfront/errors/invalid_geo_restriction_parameter.py +51 -0
  230. capo_cloudfront/errors/invalid_headers_for_s3_origin.py +49 -0
  231. capo_cloudfront/errors/invalid_if_match_version.py +49 -0
  232. capo_cloudfront/errors/invalid_lambda_function_association.py +51 -0
  233. capo_cloudfront/errors/invalid_location_code.py +49 -0
  234. capo_cloudfront/errors/invalid_minimum_protocol_version.py +51 -0
  235. capo_cloudfront/errors/invalid_origin.py +49 -0
  236. capo_cloudfront/errors/invalid_origin_access_control.py +51 -0
  237. capo_cloudfront/errors/invalid_origin_access_identity.py +51 -0
  238. capo_cloudfront/errors/invalid_origin_keepalive_timeout.py +51 -0
  239. capo_cloudfront/errors/invalid_origin_read_timeout.py +49 -0
  240. capo_cloudfront/errors/invalid_protocol_settings.py +49 -0
  241. capo_cloudfront/errors/invalid_query_string_parameters.py +51 -0
  242. capo_cloudfront/errors/invalid_relative_path.py +49 -0
  243. capo_cloudfront/errors/invalid_required_protocol.py +49 -0
  244. capo_cloudfront/errors/invalid_response_code.py +49 -0
  245. capo_cloudfront/errors/invalid_tagging.py +49 -0
  246. capo_cloudfront/errors/invalid_ttl_order.py +49 -0
  247. capo_cloudfront/errors/invalid_viewer_certificate.py +49 -0
  248. capo_cloudfront/errors/invalid_web_acl_id.py +49 -0
  249. capo_cloudfront/errors/key_group_already_exists.py +49 -0
  250. capo_cloudfront/errors/missing_body.py +46 -0
  251. capo_cloudfront/errors/monitoring_subscription_already_exists.py +51 -0
  252. capo_cloudfront/errors/no_such_cache_policy.py +49 -0
  253. capo_cloudfront/errors/no_such_cloud_front_origin_access_identity.py +51 -0
  254. capo_cloudfront/errors/no_such_continuous_deployment_policy.py +51 -0
  255. capo_cloudfront/errors/no_such_distribution.py +49 -0
  256. capo_cloudfront/errors/no_such_field_level_encryption_config.py +51 -0
  257. capo_cloudfront/errors/no_such_field_level_encryption_profile.py +51 -0
  258. capo_cloudfront/errors/no_such_function_exists.py +49 -0
  259. capo_cloudfront/errors/no_such_invalidation.py +49 -0
  260. capo_cloudfront/errors/no_such_monitoring_subscription.py +51 -0
  261. capo_cloudfront/errors/no_such_origin.py +46 -0
  262. capo_cloudfront/errors/no_such_origin_access_control.py +49 -0
  263. capo_cloudfront/errors/no_such_origin_request_policy.py +49 -0
  264. capo_cloudfront/errors/no_such_public_key.py +49 -0
  265. capo_cloudfront/errors/no_such_realtime_log_config.py +49 -0
  266. capo_cloudfront/errors/no_such_resource.py +49 -0
  267. capo_cloudfront/errors/no_such_response_headers_policy.py +51 -0
  268. capo_cloudfront/errors/no_such_streaming_distribution.py +51 -0
  269. capo_cloudfront/errors/origin_access_control_already_exists.py +51 -0
  270. capo_cloudfront/errors/origin_access_control_in_use.py +49 -0
  271. capo_cloudfront/errors/origin_request_policy_already_exists.py +51 -0
  272. capo_cloudfront/errors/origin_request_policy_in_use.py +49 -0
  273. capo_cloudfront/errors/precondition_failed.py +49 -0
  274. capo_cloudfront/errors/public_key_already_exists.py +49 -0
  275. capo_cloudfront/errors/public_key_in_use.py +49 -0
  276. capo_cloudfront/errors/query_arg_profile_empty.py +49 -0
  277. capo_cloudfront/errors/realtime_log_config_already_exists.py +51 -0
  278. capo_cloudfront/errors/realtime_log_config_in_use.py +49 -0
  279. capo_cloudfront/errors/realtime_log_config_owner_mismatch.py +51 -0
  280. capo_cloudfront/errors/resource_in_use.py +49 -0
  281. capo_cloudfront/errors/resource_not_disabled.py +49 -0
  282. capo_cloudfront/errors/response_headers_policy_already_exists.py +51 -0
  283. capo_cloudfront/errors/response_headers_policy_in_use.py +51 -0
  284. capo_cloudfront/errors/staging_distribution_in_use.py +49 -0
  285. capo_cloudfront/errors/streaming_distribution_already_exists.py +51 -0
  286. capo_cloudfront/errors/streaming_distribution_not_disabled.py +51 -0
  287. capo_cloudfront/errors/test_function_failed.py +49 -0
  288. capo_cloudfront/errors/too_long_csp_in_response_headers_policy.py +51 -0
  289. capo_cloudfront/errors/too_many_cache_behaviors.py +49 -0
  290. capo_cloudfront/errors/too_many_cache_policies.py +49 -0
  291. capo_cloudfront/errors/too_many_certificates.py +49 -0
  292. capo_cloudfront/errors/too_many_cloud_front_origin_access_identities.py +51 -0
  293. capo_cloudfront/errors/too_many_continuous_deployment_policies.py +51 -0
  294. capo_cloudfront/errors/too_many_cookie_names_in_white_list.py +51 -0
  295. capo_cloudfront/errors/too_many_cookies_in_cache_policy.py +51 -0
  296. capo_cloudfront/errors/too_many_cookies_in_origin_request_policy.py +51 -0
  297. capo_cloudfront/errors/too_many_custom_headers_in_response_headers_policy.py +51 -0
  298. capo_cloudfront/errors/too_many_distribution_cnam_es.py +49 -0
  299. capo_cloudfront/errors/too_many_distributions.py +49 -0
  300. capo_cloudfront/errors/too_many_distributions_associated_to_cache_policy.py +51 -0
  301. capo_cloudfront/errors/too_many_distributions_associated_to_field_level_encryption_config.py +61 -0
  302. capo_cloudfront/errors/too_many_distributions_associated_to_key_group.py +51 -0
  303. capo_cloudfront/errors/too_many_distributions_associated_to_origin_access_control.py +57 -0
  304. capo_cloudfront/errors/too_many_distributions_associated_to_origin_request_policy.py +57 -0
  305. capo_cloudfront/errors/too_many_distributions_associated_to_response_headers_policy.py +57 -0
  306. capo_cloudfront/errors/too_many_distributions_with_function_associations.py +51 -0
  307. capo_cloudfront/errors/too_many_distributions_with_lambda_associations.py +51 -0
  308. capo_cloudfront/errors/too_many_distributions_with_single_function_arn.py +51 -0
  309. capo_cloudfront/errors/too_many_field_level_encryption_configs.py +51 -0
  310. capo_cloudfront/errors/too_many_field_level_encryption_content_type_profiles.py +51 -0
  311. capo_cloudfront/errors/too_many_field_level_encryption_encryption_entities.py +51 -0
  312. capo_cloudfront/errors/too_many_field_level_encryption_field_patterns.py +51 -0
  313. capo_cloudfront/errors/too_many_field_level_encryption_profiles.py +51 -0
  314. capo_cloudfront/errors/too_many_field_level_encryption_query_arg_profiles.py +51 -0
  315. capo_cloudfront/errors/too_many_function_associations.py +51 -0
  316. capo_cloudfront/errors/too_many_functions.py +49 -0
  317. capo_cloudfront/errors/too_many_headers_in_cache_policy.py +51 -0
  318. capo_cloudfront/errors/too_many_headers_in_forwarded_values.py +51 -0
  319. capo_cloudfront/errors/too_many_headers_in_origin_request_policy.py +51 -0
  320. capo_cloudfront/errors/too_many_invalidations_in_progress.py +51 -0
  321. capo_cloudfront/errors/too_many_key_groups.py +49 -0
  322. capo_cloudfront/errors/too_many_key_groups_associated_to_distribution.py +51 -0
  323. capo_cloudfront/errors/too_many_lambda_function_associations.py +51 -0
  324. capo_cloudfront/errors/too_many_origin_access_controls.py +51 -0
  325. capo_cloudfront/errors/too_many_origin_custom_headers.py +51 -0
  326. capo_cloudfront/errors/too_many_origin_groups_per_distribution.py +51 -0
  327. capo_cloudfront/errors/too_many_origin_request_policies.py +51 -0
  328. capo_cloudfront/errors/too_many_origins.py +49 -0
  329. capo_cloudfront/errors/too_many_public_keys.py +49 -0
  330. capo_cloudfront/errors/too_many_public_keys_in_key_group.py +51 -0
  331. capo_cloudfront/errors/too_many_query_string_parameters.py +51 -0
  332. capo_cloudfront/errors/too_many_query_strings_in_cache_policy.py +51 -0
  333. capo_cloudfront/errors/too_many_query_strings_in_origin_request_policy.py +51 -0
  334. capo_cloudfront/errors/too_many_realtime_log_configs.py +49 -0
  335. capo_cloudfront/errors/too_many_remove_headers_in_response_headers_policy.py +51 -0
  336. capo_cloudfront/errors/too_many_response_headers_policies.py +51 -0
  337. capo_cloudfront/errors/too_many_streaming_distribution_cnam_es.py +51 -0
  338. capo_cloudfront/errors/too_many_streaming_distributions.py +51 -0
  339. capo_cloudfront/errors/too_many_trusted_signers.py +49 -0
  340. capo_cloudfront/errors/trusted_key_group_does_not_exist.py +51 -0
  341. capo_cloudfront/errors/trusted_signer_does_not_exist.py +49 -0
  342. capo_cloudfront/errors/unsupported_operation.py +49 -0
  343. capo_cloudfront/py.typed +0 -0
  344. capo_cloudfront/types/_prelude/blob.py +22 -0
  345. capo_cloudfront/types/_prelude/timestamp.py +22 -0
  346. capo_cloudfront/types/access_control_allow_headers_list.py +41 -0
  347. capo_cloudfront/types/access_control_allow_methods_list.py +63 -0
  348. capo_cloudfront/types/access_control_allow_origins_list.py +41 -0
  349. capo_cloudfront/types/access_control_expose_headers_list.py +41 -0
  350. capo_cloudfront/types/active_trusted_key_groups.py +57 -0
  351. capo_cloudfront/types/active_trusted_signers.py +53 -0
  352. capo_cloudfront/types/alias_icp_recordal.py +50 -0
  353. capo_cloudfront/types/alias_icp_recordals.py +49 -0
  354. capo_cloudfront/types/alias_list.py +37 -0
  355. capo_cloudfront/types/alias_string.py +5 -0
  356. capo_cloudfront/types/aliases.py +44 -0
  357. capo_cloudfront/types/allowed_methods.py +60 -0
  358. capo_cloudfront/types/anycast_ip_list.py +132 -0
  359. capo_cloudfront/types/anycast_ip_list_collection.py +83 -0
  360. capo_cloudfront/types/anycast_ip_list_name.py +5 -0
  361. capo_cloudfront/types/anycast_ip_list_summaries.py +51 -0
  362. capo_cloudfront/types/anycast_ip_list_summary.py +122 -0
  363. capo_cloudfront/types/anycast_ips.py +37 -0
  364. capo_cloudfront/types/associate_alias_request.py +27 -0
  365. capo_cloudfront/types/associate_distribution_tenant_web_acl_request.py +40 -0
  366. capo_cloudfront/types/associate_distribution_tenant_web_acl_result.py +41 -0
  367. capo_cloudfront/types/associate_distribution_web_acl_request.py +40 -0
  368. capo_cloudfront/types/associate_distribution_web_acl_result.py +41 -0
  369. capo_cloudfront/types/aws_account_number_list.py +37 -0
  370. capo_cloudfront/types/boolean.py +5 -0
  371. capo_cloudfront/types/ca_certificates_bundle_s3_location.py +57 -0
  372. capo_cloudfront/types/ca_certificates_bundle_source.py +52 -0
  373. capo_cloudfront/types/cache_behavior.py +274 -0
  374. capo_cloudfront/types/cache_behavior_list.py +47 -0
  375. capo_cloudfront/types/cache_behaviors.py +48 -0
  376. capo_cloudfront/types/cache_policy.py +68 -0
  377. capo_cloudfront/types/cache_policy_config.py +86 -0
  378. capo_cloudfront/types/cache_policy_cookie_behavior.py +29 -0
  379. capo_cloudfront/types/cache_policy_cookies_config.py +59 -0
  380. capo_cloudfront/types/cache_policy_header_behavior.py +27 -0
  381. capo_cloudfront/types/cache_policy_headers_config.py +55 -0
  382. capo_cloudfront/types/cache_policy_list.py +66 -0
  383. capo_cloudfront/types/cache_policy_query_string_behavior.py +31 -0
  384. capo_cloudfront/types/cache_policy_query_strings_config.py +64 -0
  385. capo_cloudfront/types/cache_policy_summary.py +55 -0
  386. capo_cloudfront/types/cache_policy_summary_list.py +51 -0
  387. capo_cloudfront/types/cache_policy_type.py +27 -0
  388. capo_cloudfront/types/cache_tag_config.py +32 -0
  389. capo_cloudfront/types/cached_methods.py +45 -0
  390. capo_cloudfront/types/certificate.py +32 -0
  391. capo_cloudfront/types/certificate_source.py +28 -0
  392. capo_cloudfront/types/certificate_transparency_logging_preference.py +29 -0
  393. capo_cloudfront/types/cloud_front_origin_access_identity.py +68 -0
  394. capo_cloudfront/types/cloud_front_origin_access_identity_config.py +46 -0
  395. capo_cloudfront/types/cloud_front_origin_access_identity_list.py +93 -0
  396. capo_cloudfront/types/cloud_front_origin_access_identity_summary.py +54 -0
  397. capo_cloudfront/types/cloud_front_origin_access_identity_summary_list.py +65 -0
  398. capo_cloudfront/types/comment_type.py +5 -0
  399. capo_cloudfront/types/conflicting_alias.py +44 -0
  400. capo_cloudfront/types/conflicting_aliases.py +49 -0
  401. capo_cloudfront/types/conflicting_aliases_list.py +61 -0
  402. capo_cloudfront/types/connection_function_association.py +34 -0
  403. capo_cloudfront/types/connection_function_summary.py +128 -0
  404. capo_cloudfront/types/connection_function_summary_list.py +59 -0
  405. capo_cloudfront/types/connection_function_test_result.py +103 -0
  406. capo_cloudfront/types/connection_group.py +131 -0
  407. capo_cloudfront/types/connection_group_association_filter.py +32 -0
  408. capo_cloudfront/types/connection_group_summary.py +126 -0
  409. capo_cloudfront/types/connection_group_summary_list.py +55 -0
  410. capo_cloudfront/types/connection_mode.py +27 -0
  411. capo_cloudfront/types/content_type_profile.py +52 -0
  412. capo_cloudfront/types/content_type_profile_config.py +60 -0
  413. capo_cloudfront/types/content_type_profile_list.py +51 -0
  414. capo_cloudfront/types/content_type_profiles.py +50 -0
  415. capo_cloudfront/types/continuous_deployment_policy.py +75 -0
  416. capo_cloudfront/types/continuous_deployment_policy_config.py +71 -0
  417. capo_cloudfront/types/continuous_deployment_policy_list.py +70 -0
  418. capo_cloudfront/types/continuous_deployment_policy_summary.py +48 -0
  419. capo_cloudfront/types/continuous_deployment_policy_summary_list.py +65 -0
  420. capo_cloudfront/types/continuous_deployment_policy_type.py +29 -0
  421. capo_cloudfront/types/continuous_deployment_single_header_config.py +46 -0
  422. capo_cloudfront/types/continuous_deployment_single_weight_config.py +55 -0
  423. capo_cloudfront/types/cookie_name_list.py +37 -0
  424. capo_cloudfront/types/cookie_names.py +48 -0
  425. capo_cloudfront/types/cookie_preference.py +54 -0
  426. capo_cloudfront/types/copy_distribution_request.py +46 -0
  427. capo_cloudfront/types/copy_distribution_result.py +42 -0
  428. capo_cloudfront/types/create_anycast_ip_list_request.py +88 -0
  429. capo_cloudfront/types/create_anycast_ip_list_result.py +41 -0
  430. capo_cloudfront/types/create_cache_policy_request.py +44 -0
  431. capo_cloudfront/types/create_cache_policy_result.py +43 -0
  432. capo_cloudfront/types/create_cloud_front_origin_access_identity_request.py +50 -0
  433. capo_cloudfront/types/create_cloud_front_origin_access_identity_result.py +51 -0
  434. capo_cloudfront/types/create_connection_function_request.py +86 -0
  435. capo_cloudfront/types/create_connection_function_result.py +49 -0
  436. capo_cloudfront/types/create_connection_group_request.py +69 -0
  437. capo_cloudfront/types/create_connection_group_result.py +47 -0
  438. capo_cloudfront/types/create_continuous_deployment_policy_request.py +50 -0
  439. capo_cloudfront/types/create_continuous_deployment_policy_result.py +49 -0
  440. capo_cloudfront/types/create_distribution_request.py +44 -0
  441. capo_cloudfront/types/create_distribution_result.py +43 -0
  442. capo_cloudfront/types/create_distribution_tenant_request.py +137 -0
  443. capo_cloudfront/types/create_distribution_tenant_result.py +47 -0
  444. capo_cloudfront/types/create_distribution_with_tags_request.py +48 -0
  445. capo_cloudfront/types/create_distribution_with_tags_result.py +45 -0
  446. capo_cloudfront/types/create_field_level_encryption_config_request.py +48 -0
  447. capo_cloudfront/types/create_field_level_encryption_config_result.py +49 -0
  448. capo_cloudfront/types/create_field_level_encryption_profile_request.py +50 -0
  449. capo_cloudfront/types/create_field_level_encryption_profile_result.py +49 -0
  450. capo_cloudfront/types/create_function_request.py +77 -0
  451. capo_cloudfront/types/create_function_result.py +47 -0
  452. capo_cloudfront/types/create_invalidation_for_distribution_tenant_request.py +48 -0
  453. capo_cloudfront/types/create_invalidation_for_distribution_tenant_result.py +42 -0
  454. capo_cloudfront/types/create_invalidation_request.py +47 -0
  455. capo_cloudfront/types/create_invalidation_result.py +41 -0
  456. capo_cloudfront/types/create_key_group_request.py +42 -0
  457. capo_cloudfront/types/create_key_group_result.py +43 -0
  458. capo_cloudfront/types/create_key_value_store_request.py +69 -0
  459. capo_cloudfront/types/create_key_value_store_result.py +43 -0
  460. capo_cloudfront/types/create_monitoring_subscription_request.py +51 -0
  461. capo_cloudfront/types/create_monitoring_subscription_result.py +44 -0
  462. capo_cloudfront/types/create_origin_access_control_request.py +48 -0
  463. capo_cloudfront/types/create_origin_access_control_result.py +49 -0
  464. capo_cloudfront/types/create_origin_request_policy_request.py +48 -0
  465. capo_cloudfront/types/create_origin_request_policy_result.py +49 -0
  466. capo_cloudfront/types/create_public_key_request.py +42 -0
  467. capo_cloudfront/types/create_public_key_result.py +43 -0
  468. capo_cloudfront/types/create_realtime_log_config_request.py +75 -0
  469. capo_cloudfront/types/create_realtime_log_config_result.py +44 -0
  470. capo_cloudfront/types/create_response_headers_policy_request.py +46 -0
  471. capo_cloudfront/types/create_response_headers_policy_result.py +49 -0
  472. capo_cloudfront/types/create_streaming_distribution_request.py +46 -0
  473. capo_cloudfront/types/create_streaming_distribution_result.py +49 -0
  474. capo_cloudfront/types/create_streaming_distribution_with_tags_request.py +50 -0
  475. capo_cloudfront/types/create_streaming_distribution_with_tags_result.py +49 -0
  476. capo_cloudfront/types/create_trust_store_request.py +82 -0
  477. capo_cloudfront/types/create_trust_store_result.py +41 -0
  478. capo_cloudfront/types/create_vpc_origin_request.py +57 -0
  479. capo_cloudfront/types/create_vpc_origin_result.py +43 -0
  480. capo_cloudfront/types/custom_error_response.py +55 -0
  481. capo_cloudfront/types/custom_error_response_list.py +51 -0
  482. capo_cloudfront/types/custom_error_responses.py +50 -0
  483. capo_cloudfront/types/custom_headers.py +50 -0
  484. capo_cloudfront/types/custom_origin_config.py +133 -0
  485. capo_cloudfront/types/customization_action_type.py +27 -0
  486. capo_cloudfront/types/customizations.py +76 -0
  487. capo_cloudfront/types/default_cache_behavior.py +268 -0
  488. capo_cloudfront/types/delete_anycast_ip_list_request.py +27 -0
  489. capo_cloudfront/types/delete_cache_policy_request.py +27 -0
  490. capo_cloudfront/types/delete_cloud_front_origin_access_identity_request.py +29 -0
  491. capo_cloudfront/types/delete_connection_function_request.py +30 -0
  492. capo_cloudfront/types/delete_connection_group_request.py +29 -0
  493. capo_cloudfront/types/delete_continuous_deployment_policy_request.py +29 -0
  494. capo_cloudfront/types/delete_distribution_request.py +27 -0
  495. capo_cloudfront/types/delete_distribution_tenant_request.py +29 -0
  496. capo_cloudfront/types/delete_field_level_encryption_config_request.py +29 -0
  497. capo_cloudfront/types/delete_field_level_encryption_profile_request.py +29 -0
  498. capo_cloudfront/types/delete_function_request.py +28 -0
  499. capo_cloudfront/types/delete_key_group_request.py +27 -0
  500. capo_cloudfront/types/delete_key_value_store_request.py +28 -0
  501. capo_cloudfront/types/delete_monitoring_subscription_request.py +27 -0
  502. capo_cloudfront/types/delete_monitoring_subscription_result.py +21 -0
  503. capo_cloudfront/types/delete_origin_access_control_request.py +29 -0
  504. capo_cloudfront/types/delete_origin_request_policy_request.py +29 -0
  505. capo_cloudfront/types/delete_public_key_request.py +27 -0
  506. capo_cloudfront/types/delete_realtime_log_config_request.py +39 -0
  507. capo_cloudfront/types/delete_resource_policy_request.py +34 -0
  508. capo_cloudfront/types/delete_response_headers_policy_request.py +29 -0
  509. capo_cloudfront/types/delete_streaming_distribution_request.py +29 -0
  510. capo_cloudfront/types/delete_trust_store_request.py +28 -0
  511. capo_cloudfront/types/delete_vpc_origin_request.py +27 -0
  512. capo_cloudfront/types/delete_vpc_origin_result.py +41 -0
  513. capo_cloudfront/types/describe_connection_function_request.py +30 -0
  514. capo_cloudfront/types/describe_connection_function_result.py +47 -0
  515. capo_cloudfront/types/describe_function_request.py +28 -0
  516. capo_cloudfront/types/describe_function_result.py +45 -0
  517. capo_cloudfront/types/describe_key_value_store_request.py +27 -0
  518. capo_cloudfront/types/describe_key_value_store_result.py +43 -0
  519. capo_cloudfront/types/disassociate_distribution_tenant_web_acl_request.py +29 -0
  520. capo_cloudfront/types/disassociate_distribution_tenant_web_acl_result.py +34 -0
  521. capo_cloudfront/types/disassociate_distribution_web_acl_request.py +29 -0
  522. capo_cloudfront/types/disassociate_distribution_web_acl_result.py +34 -0
  523. capo_cloudfront/types/distribution.py +167 -0
  524. capo_cloudfront/types/distribution_config.py +374 -0
  525. capo_cloudfront/types/distribution_config_with_tags.py +57 -0
  526. capo_cloudfront/types/distribution_id_list.py +85 -0
  527. capo_cloudfront/types/distribution_id_list_summary.py +39 -0
  528. capo_cloudfront/types/distribution_id_owner.py +40 -0
  529. capo_cloudfront/types/distribution_id_owner_item_list.py +53 -0
  530. capo_cloudfront/types/distribution_id_owner_list.py +85 -0
  531. capo_cloudfront/types/distribution_id_string.py +5 -0
  532. capo_cloudfront/types/distribution_list.py +83 -0
  533. capo_cloudfront/types/distribution_resource_id.py +39 -0
  534. capo_cloudfront/types/distribution_resource_type.py +27 -0
  535. capo_cloudfront/types/distribution_summary.py +384 -0
  536. capo_cloudfront/types/distribution_summary_list.py +51 -0
  537. capo_cloudfront/types/distribution_tenant.py +163 -0
  538. capo_cloudfront/types/distribution_tenant_association_filter.py +39 -0
  539. capo_cloudfront/types/distribution_tenant_list.py +57 -0
  540. capo_cloudfront/types/distribution_tenant_summary.py +154 -0
  541. capo_cloudfront/types/dns_configuration.py +56 -0
  542. capo_cloudfront/types/dns_configuration_list.py +49 -0
  543. capo_cloudfront/types/dns_configuration_status.py +28 -0
  544. capo_cloudfront/types/domain_conflict.py +69 -0
  545. capo_cloudfront/types/domain_conflicts_list.py +47 -0
  546. capo_cloudfront/types/domain_item.py +32 -0
  547. capo_cloudfront/types/domain_list.py +45 -0
  548. capo_cloudfront/types/domain_result.py +46 -0
  549. capo_cloudfront/types/domain_result_list.py +45 -0
  550. capo_cloudfront/types/domain_status.py +27 -0
  551. capo_cloudfront/types/encryption_entities.py +50 -0
  552. capo_cloudfront/types/encryption_entity.py +57 -0
  553. capo_cloudfront/types/encryption_entity_list.py +49 -0
  554. capo_cloudfront/types/end_point.py +52 -0
  555. capo_cloudfront/types/end_point_list.py +45 -0
  556. capo_cloudfront/types/event_type.py +29 -0
  557. capo_cloudfront/types/field_level_encryption.py +72 -0
  558. capo_cloudfront/types/field_level_encryption_config.py +81 -0
  559. capo_cloudfront/types/field_level_encryption_list.py +68 -0
  560. capo_cloudfront/types/field_level_encryption_profile.py +78 -0
  561. capo_cloudfront/types/field_level_encryption_profile_config.py +72 -0
  562. capo_cloudfront/types/field_level_encryption_profile_list.py +70 -0
  563. capo_cloudfront/types/field_level_encryption_profile_summary.py +89 -0
  564. capo_cloudfront/types/field_level_encryption_profile_summary_list.py +65 -0
  565. capo_cloudfront/types/field_level_encryption_summary.py +100 -0
  566. capo_cloudfront/types/field_level_encryption_summary_list.py +59 -0
  567. capo_cloudfront/types/field_list.py +37 -0
  568. capo_cloudfront/types/field_pattern_list.py +37 -0
  569. capo_cloudfront/types/field_patterns.py +48 -0
  570. capo_cloudfront/types/float.py +5 -0
  571. capo_cloudfront/types/format.py +24 -0
  572. capo_cloudfront/types/forwarded_values.py +81 -0
  573. capo_cloudfront/types/frame_options_list.py +27 -0
  574. capo_cloudfront/types/function_arn.py +5 -0
  575. capo_cloudfront/types/function_association.py +47 -0
  576. capo_cloudfront/types/function_association_list.py +51 -0
  577. capo_cloudfront/types/function_associations.py +50 -0
  578. capo_cloudfront/types/function_blob.py +25 -0
  579. capo_cloudfront/types/function_config.py +69 -0
  580. capo_cloudfront/types/function_event_object.py +25 -0
  581. capo_cloudfront/types/function_execution_log_list.py +39 -0
  582. capo_cloudfront/types/function_list.py +66 -0
  583. capo_cloudfront/types/function_metadata.py +76 -0
  584. capo_cloudfront/types/function_name.py +5 -0
  585. capo_cloudfront/types/function_runtime.py +27 -0
  586. capo_cloudfront/types/function_stage.py +27 -0
  587. capo_cloudfront/types/function_summary.py +76 -0
  588. capo_cloudfront/types/function_summary_list.py +49 -0
  589. capo_cloudfront/types/geo_restriction.py +63 -0
  590. capo_cloudfront/types/geo_restriction_customization.py +62 -0
  591. capo_cloudfront/types/geo_restriction_type.py +28 -0
  592. capo_cloudfront/types/get_anycast_ip_list_request.py +25 -0
  593. capo_cloudfront/types/get_anycast_ip_list_result.py +41 -0
  594. capo_cloudfront/types/get_cache_policy_config_request.py +27 -0
  595. capo_cloudfront/types/get_cache_policy_config_result.py +45 -0
  596. capo_cloudfront/types/get_cache_policy_request.py +25 -0
  597. capo_cloudfront/types/get_cache_policy_result.py +41 -0
  598. capo_cloudfront/types/get_cloud_front_origin_access_identity_config_request.py +27 -0
  599. capo_cloudfront/types/get_cloud_front_origin_access_identity_config_result.py +51 -0
  600. capo_cloudfront/types/get_cloud_front_origin_access_identity_request.py +27 -0
  601. capo_cloudfront/types/get_cloud_front_origin_access_identity_result.py +49 -0
  602. capo_cloudfront/types/get_connection_function_request.py +30 -0
  603. capo_cloudfront/types/get_connection_function_result.py +49 -0
  604. capo_cloudfront/types/get_connection_group_by_routing_endpoint_request.py +27 -0
  605. capo_cloudfront/types/get_connection_group_by_routing_endpoint_result.py +46 -0
  606. capo_cloudfront/types/get_connection_group_request.py +25 -0
  607. capo_cloudfront/types/get_connection_group_result.py +45 -0
  608. capo_cloudfront/types/get_continuous_deployment_policy_config_request.py +27 -0
  609. capo_cloudfront/types/get_continuous_deployment_policy_config_result.py +50 -0
  610. capo_cloudfront/types/get_continuous_deployment_policy_request.py +27 -0
  611. capo_cloudfront/types/get_continuous_deployment_policy_result.py +47 -0
  612. capo_cloudfront/types/get_distribution_config_request.py +27 -0
  613. capo_cloudfront/types/get_distribution_config_result.py +47 -0
  614. capo_cloudfront/types/get_distribution_request.py +25 -0
  615. capo_cloudfront/types/get_distribution_result.py +41 -0
  616. capo_cloudfront/types/get_distribution_tenant_by_domain_request.py +27 -0
  617. capo_cloudfront/types/get_distribution_tenant_by_domain_result.py +46 -0
  618. capo_cloudfront/types/get_distribution_tenant_request.py +27 -0
  619. capo_cloudfront/types/get_distribution_tenant_result.py +47 -0
  620. capo_cloudfront/types/get_field_level_encryption_config_request.py +27 -0
  621. capo_cloudfront/types/get_field_level_encryption_config_result.py +47 -0
  622. capo_cloudfront/types/get_field_level_encryption_profile_config_request.py +27 -0
  623. capo_cloudfront/types/get_field_level_encryption_profile_config_result.py +51 -0
  624. capo_cloudfront/types/get_field_level_encryption_profile_request.py +27 -0
  625. capo_cloudfront/types/get_field_level_encryption_profile_result.py +47 -0
  626. capo_cloudfront/types/get_field_level_encryption_request.py +27 -0
  627. capo_cloudfront/types/get_field_level_encryption_result.py +47 -0
  628. capo_cloudfront/types/get_function_request.py +28 -0
  629. capo_cloudfront/types/get_function_result.py +43 -0
  630. capo_cloudfront/types/get_invalidation_for_distribution_tenant_request.py +29 -0
  631. capo_cloudfront/types/get_invalidation_for_distribution_tenant_result.py +39 -0
  632. capo_cloudfront/types/get_invalidation_request.py +27 -0
  633. capo_cloudfront/types/get_invalidation_result.py +38 -0
  634. capo_cloudfront/types/get_key_group_config_request.py +25 -0
  635. capo_cloudfront/types/get_key_group_config_result.py +45 -0
  636. capo_cloudfront/types/get_key_group_request.py +25 -0
  637. capo_cloudfront/types/get_key_group_result.py +41 -0
  638. capo_cloudfront/types/get_managed_certificate_details_request.py +27 -0
  639. capo_cloudfront/types/get_managed_certificate_details_result.py +44 -0
  640. capo_cloudfront/types/get_monitoring_subscription_request.py +27 -0
  641. capo_cloudfront/types/get_monitoring_subscription_result.py +44 -0
  642. capo_cloudfront/types/get_origin_access_control_config_request.py +27 -0
  643. capo_cloudfront/types/get_origin_access_control_config_result.py +47 -0
  644. capo_cloudfront/types/get_origin_access_control_request.py +27 -0
  645. capo_cloudfront/types/get_origin_access_control_result.py +47 -0
  646. capo_cloudfront/types/get_origin_request_policy_config_request.py +27 -0
  647. capo_cloudfront/types/get_origin_request_policy_config_result.py +47 -0
  648. capo_cloudfront/types/get_origin_request_policy_request.py +27 -0
  649. capo_cloudfront/types/get_origin_request_policy_result.py +47 -0
  650. capo_cloudfront/types/get_public_key_config_request.py +25 -0
  651. capo_cloudfront/types/get_public_key_config_result.py +45 -0
  652. capo_cloudfront/types/get_public_key_request.py +25 -0
  653. capo_cloudfront/types/get_public_key_result.py +41 -0
  654. capo_cloudfront/types/get_realtime_log_config_request.py +39 -0
  655. capo_cloudfront/types/get_realtime_log_config_result.py +42 -0
  656. capo_cloudfront/types/get_resource_policy_request.py +32 -0
  657. capo_cloudfront/types/get_resource_policy_result.py +37 -0
  658. capo_cloudfront/types/get_response_headers_policy_config_request.py +27 -0
  659. capo_cloudfront/types/get_response_headers_policy_config_result.py +47 -0
  660. capo_cloudfront/types/get_response_headers_policy_request.py +27 -0
  661. capo_cloudfront/types/get_response_headers_policy_result.py +47 -0
  662. capo_cloudfront/types/get_streaming_distribution_config_request.py +27 -0
  663. capo_cloudfront/types/get_streaming_distribution_config_result.py +47 -0
  664. capo_cloudfront/types/get_streaming_distribution_request.py +27 -0
  665. capo_cloudfront/types/get_streaming_distribution_result.py +47 -0
  666. capo_cloudfront/types/get_trust_store_request.py +25 -0
  667. capo_cloudfront/types/get_trust_store_result.py +41 -0
  668. capo_cloudfront/types/get_vpc_origin_request.py +25 -0
  669. capo_cloudfront/types/get_vpc_origin_result.py +41 -0
  670. capo_cloudfront/types/grpc_config.py +32 -0
  671. capo_cloudfront/types/header_list.py +37 -0
  672. capo_cloudfront/types/headers.py +44 -0
  673. capo_cloudfront/types/http_version.py +29 -0
  674. capo_cloudfront/types/icp_recordal_status.py +28 -0
  675. capo_cloudfront/types/import_source.py +49 -0
  676. capo_cloudfront/types/import_source_type.py +24 -0
  677. capo_cloudfront/types/integer.py +5 -0
  678. capo_cloudfront/types/invalidation.py +76 -0
  679. capo_cloudfront/types/invalidation_batch.py +45 -0
  680. capo_cloudfront/types/invalidation_list.py +83 -0
  681. capo_cloudfront/types/invalidation_summary.py +57 -0
  682. capo_cloudfront/types/invalidation_summary_list.py +51 -0
  683. capo_cloudfront/types/ip_address_type.py +28 -0
  684. capo_cloudfront/types/ipam_cidr_config.py +63 -0
  685. capo_cloudfront/types/ipam_cidr_config_list.py +47 -0
  686. capo_cloudfront/types/ipam_cidr_status.py +37 -0
  687. capo_cloudfront/types/ipam_config.py +51 -0
  688. capo_cloudfront/types/item_selection.py +28 -0
  689. capo_cloudfront/types/key_group.py +68 -0
  690. capo_cloudfront/types/key_group_config.py +54 -0
  691. capo_cloudfront/types/key_group_list.py +66 -0
  692. capo_cloudfront/types/key_group_summary.py +38 -0
  693. capo_cloudfront/types/key_group_summary_list.py +49 -0
  694. capo_cloudfront/types/key_pair_id_list.py +37 -0
  695. capo_cloudfront/types/key_pair_ids.py +48 -0
  696. capo_cloudfront/types/key_value_store.py +80 -0
  697. capo_cloudfront/types/key_value_store_arn.py +5 -0
  698. capo_cloudfront/types/key_value_store_association.py +34 -0
  699. capo_cloudfront/types/key_value_store_association_list.py +59 -0
  700. capo_cloudfront/types/key_value_store_associations.py +52 -0
  701. capo_cloudfront/types/key_value_store_comment.py +5 -0
  702. capo_cloudfront/types/key_value_store_list.py +68 -0
  703. capo_cloudfront/types/key_value_store_name.py +5 -0
  704. capo_cloudfront/types/key_value_store_summary_list.py +49 -0
  705. capo_cloudfront/types/kg_key_pair_ids.py +45 -0
  706. capo_cloudfront/types/kg_key_pair_ids_list.py +45 -0
  707. capo_cloudfront/types/kinesis_stream_config.py +40 -0
  708. capo_cloudfront/types/lambda_function_arn.py +5 -0
  709. capo_cloudfront/types/lambda_function_association.py +59 -0
  710. capo_cloudfront/types/lambda_function_association_list.py +59 -0
  711. capo_cloudfront/types/lambda_function_associations.py +52 -0
  712. capo_cloudfront/types/list_anycast_ip_lists_request.py +28 -0
  713. capo_cloudfront/types/list_anycast_ip_lists_result.py +42 -0
  714. capo_cloudfront/types/list_cache_policies_request.py +31 -0
  715. capo_cloudfront/types/list_cache_policies_result.py +42 -0
  716. capo_cloudfront/types/list_cloud_front_origin_access_identities_request.py +30 -0
  717. capo_cloudfront/types/list_cloud_front_origin_access_identities_result.py +48 -0
  718. capo_cloudfront/types/list_conflicting_aliases_max_items_integer.py +5 -0
  719. capo_cloudfront/types/list_conflicting_aliases_request.py +38 -0
  720. capo_cloudfront/types/list_conflicting_aliases_result.py +44 -0
  721. capo_cloudfront/types/list_connection_functions_request.py +52 -0
  722. capo_cloudfront/types/list_connection_functions_result.py +52 -0
  723. capo_cloudfront/types/list_connection_groups_request.py +60 -0
  724. capo_cloudfront/types/list_connection_groups_result.py +50 -0
  725. capo_cloudfront/types/list_continuous_deployment_policies_request.py +30 -0
  726. capo_cloudfront/types/list_continuous_deployment_policies_result.py +46 -0
  727. capo_cloudfront/types/list_distribution_tenants_by_customization_request.py +54 -0
  728. capo_cloudfront/types/list_distribution_tenants_by_customization_result.py +52 -0
  729. capo_cloudfront/types/list_distribution_tenants_request.py +59 -0
  730. capo_cloudfront/types/list_distribution_tenants_result.py +52 -0
  731. capo_cloudfront/types/list_distributions_by_anycast_ip_list_id_request.py +32 -0
  732. capo_cloudfront/types/list_distributions_by_anycast_ip_list_id_result.py +43 -0
  733. capo_cloudfront/types/list_distributions_by_cache_policy_id_request.py +32 -0
  734. capo_cloudfront/types/list_distributions_by_cache_policy_id_result.py +44 -0
  735. capo_cloudfront/types/list_distributions_by_connection_function_request.py +32 -0
  736. capo_cloudfront/types/list_distributions_by_connection_function_result.py +43 -0
  737. capo_cloudfront/types/list_distributions_by_connection_mode_request.py +33 -0
  738. capo_cloudfront/types/list_distributions_by_connection_mode_result.py +43 -0
  739. capo_cloudfront/types/list_distributions_by_key_group_request.py +32 -0
  740. capo_cloudfront/types/list_distributions_by_key_group_result.py +43 -0
  741. capo_cloudfront/types/list_distributions_by_origin_request_policy_id_request.py +32 -0
  742. capo_cloudfront/types/list_distributions_by_origin_request_policy_id_result.py +44 -0
  743. capo_cloudfront/types/list_distributions_by_owned_resource_request.py +32 -0
  744. capo_cloudfront/types/list_distributions_by_owned_resource_result.py +44 -0
  745. capo_cloudfront/types/list_distributions_by_realtime_log_config_request.py +58 -0
  746. capo_cloudfront/types/list_distributions_by_realtime_log_config_result.py +43 -0
  747. capo_cloudfront/types/list_distributions_by_response_headers_policy_id_request.py +32 -0
  748. capo_cloudfront/types/list_distributions_by_response_headers_policy_id_result.py +43 -0
  749. capo_cloudfront/types/list_distributions_by_trust_store_request.py +32 -0
  750. capo_cloudfront/types/list_distributions_by_trust_store_result.py +43 -0
  751. capo_cloudfront/types/list_distributions_by_vpc_origin_id_request.py +32 -0
  752. capo_cloudfront/types/list_distributions_by_vpc_origin_id_result.py +43 -0
  753. capo_cloudfront/types/list_distributions_by_web_acl_id_request.py +32 -0
  754. capo_cloudfront/types/list_distributions_by_web_acl_id_result.py +44 -0
  755. capo_cloudfront/types/list_distributions_request.py +28 -0
  756. capo_cloudfront/types/list_distributions_result.py +42 -0
  757. capo_cloudfront/types/list_domain_conflicts_request.py +74 -0
  758. capo_cloudfront/types/list_domain_conflicts_result.py +50 -0
  759. capo_cloudfront/types/list_field_level_encryption_configs_request.py +30 -0
  760. capo_cloudfront/types/list_field_level_encryption_configs_result.py +44 -0
  761. capo_cloudfront/types/list_field_level_encryption_profiles_request.py +30 -0
  762. capo_cloudfront/types/list_field_level_encryption_profiles_result.py +48 -0
  763. capo_cloudfront/types/list_functions_request.py +31 -0
  764. capo_cloudfront/types/list_functions_result.py +38 -0
  765. capo_cloudfront/types/list_invalidations_for_distribution_tenant_request.py +32 -0
  766. capo_cloudfront/types/list_invalidations_for_distribution_tenant_result.py +43 -0
  767. capo_cloudfront/types/list_invalidations_request.py +30 -0
  768. capo_cloudfront/types/list_invalidations_result.py +42 -0
  769. capo_cloudfront/types/list_key_groups_request.py +28 -0
  770. capo_cloudfront/types/list_key_groups_result.py +38 -0
  771. capo_cloudfront/types/list_key_value_stores_request.py +30 -0
  772. capo_cloudfront/types/list_key_value_stores_result.py +42 -0
  773. capo_cloudfront/types/list_origin_access_controls_request.py +30 -0
  774. capo_cloudfront/types/list_origin_access_controls_result.py +44 -0
  775. capo_cloudfront/types/list_origin_request_policies_request.py +35 -0
  776. capo_cloudfront/types/list_origin_request_policies_result.py +44 -0
  777. capo_cloudfront/types/list_public_keys_request.py +28 -0
  778. capo_cloudfront/types/list_public_keys_result.py +38 -0
  779. capo_cloudfront/types/list_realtime_log_configs_request.py +30 -0
  780. capo_cloudfront/types/list_realtime_log_configs_result.py +44 -0
  781. capo_cloudfront/types/list_response_headers_policies_request.py +35 -0
  782. capo_cloudfront/types/list_response_headers_policies_result.py +44 -0
  783. capo_cloudfront/types/list_streaming_distributions_request.py +30 -0
  784. capo_cloudfront/types/list_streaming_distributions_result.py +44 -0
  785. capo_cloudfront/types/list_tags_for_resource_request.py +25 -0
  786. capo_cloudfront/types/list_tags_for_resource_result.py +36 -0
  787. capo_cloudfront/types/list_trust_stores_request.py +38 -0
  788. capo_cloudfront/types/list_trust_stores_result.py +50 -0
  789. capo_cloudfront/types/list_vpc_origins_request.py +28 -0
  790. capo_cloudfront/types/list_vpc_origins_result.py +38 -0
  791. capo_cloudfront/types/location_list.py +37 -0
  792. capo_cloudfront/types/logging_config.py +58 -0
  793. capo_cloudfront/types/long.py +5 -0
  794. capo_cloudfront/types/managed_certificate_details.py +90 -0
  795. capo_cloudfront/types/managed_certificate_request.py +78 -0
  796. capo_cloudfront/types/managed_certificate_status.py +32 -0
  797. capo_cloudfront/types/method.py +32 -0
  798. capo_cloudfront/types/methods_list.py +45 -0
  799. capo_cloudfront/types/minimum_protocol_version.py +34 -0
  800. capo_cloudfront/types/monitoring_subscription.py +46 -0
  801. capo_cloudfront/types/origin.py +174 -0
  802. capo_cloudfront/types/origin_access_control.py +52 -0
  803. capo_cloudfront/types/origin_access_control_config.py +102 -0
  804. capo_cloudfront/types/origin_access_control_list.py +85 -0
  805. capo_cloudfront/types/origin_access_control_origin_types.py +31 -0
  806. capo_cloudfront/types/origin_access_control_signing_behaviors.py +30 -0
  807. capo_cloudfront/types/origin_access_control_signing_protocols.py +26 -0
  808. capo_cloudfront/types/origin_access_control_summary.py +111 -0
  809. capo_cloudfront/types/origin_access_control_summary_list.py +59 -0
  810. capo_cloudfront/types/origin_custom_header.py +41 -0
  811. capo_cloudfront/types/origin_custom_headers_list.py +51 -0
  812. capo_cloudfront/types/origin_group.py +88 -0
  813. capo_cloudfront/types/origin_group_failover_criteria.py +42 -0
  814. capo_cloudfront/types/origin_group_list.py +45 -0
  815. capo_cloudfront/types/origin_group_member.py +32 -0
  816. capo_cloudfront/types/origin_group_member_list.py +49 -0
  817. capo_cloudfront/types/origin_group_members.py +49 -0
  818. capo_cloudfront/types/origin_group_selection_criteria.py +29 -0
  819. capo_cloudfront/types/origin_groups.py +48 -0
  820. capo_cloudfront/types/origin_list.py +45 -0
  821. capo_cloudfront/types/origin_mtls_config.py +32 -0
  822. capo_cloudfront/types/origin_protocol_policy.py +28 -0
  823. capo_cloudfront/types/origin_request_policy.py +72 -0
  824. capo_cloudfront/types/origin_request_policy_config.py +98 -0
  825. capo_cloudfront/types/origin_request_policy_cookie_behavior.py +31 -0
  826. capo_cloudfront/types/origin_request_policy_cookies_config.py +61 -0
  827. capo_cloudfront/types/origin_request_policy_header_behavior.py +32 -0
  828. capo_cloudfront/types/origin_request_policy_headers_config.py +57 -0
  829. capo_cloudfront/types/origin_request_policy_list.py +68 -0
  830. capo_cloudfront/types/origin_request_policy_query_string_behavior.py +31 -0
  831. capo_cloudfront/types/origin_request_policy_query_strings_config.py +64 -0
  832. capo_cloudfront/types/origin_request_policy_summary.py +63 -0
  833. capo_cloudfront/types/origin_request_policy_summary_list.py +59 -0
  834. capo_cloudfront/types/origin_request_policy_type.py +27 -0
  835. capo_cloudfront/types/origin_shield.py +42 -0
  836. capo_cloudfront/types/origin_shield_region.py +5 -0
  837. capo_cloudfront/types/origin_ssl_protocols.py +47 -0
  838. capo_cloudfront/types/origins.py +45 -0
  839. capo_cloudfront/types/parameter.py +41 -0
  840. capo_cloudfront/types/parameter_definition.py +53 -0
  841. capo_cloudfront/types/parameter_definition_schema.py +42 -0
  842. capo_cloudfront/types/parameter_definitions.py +47 -0
  843. capo_cloudfront/types/parameter_name.py +5 -0
  844. capo_cloudfront/types/parameter_value.py +5 -0
  845. capo_cloudfront/types/parameters.py +45 -0
  846. capo_cloudfront/types/parameters_in_cache_key_and_forwarded_to_origin.py +118 -0
  847. capo_cloudfront/types/path_list.py +37 -0
  848. capo_cloudfront/types/paths.py +44 -0
  849. capo_cloudfront/types/price_class.py +29 -0
  850. capo_cloudfront/types/public_key.py +68 -0
  851. capo_cloudfront/types/public_key_config.py +55 -0
  852. capo_cloudfront/types/public_key_id_list.py +37 -0
  853. capo_cloudfront/types/public_key_list.py +66 -0
  854. capo_cloudfront/types/public_key_summary.py +72 -0
  855. capo_cloudfront/types/public_key_summary_list.py +49 -0
  856. capo_cloudfront/types/publish_connection_function_request.py +30 -0
  857. capo_cloudfront/types/publish_connection_function_result.py +44 -0
  858. capo_cloudfront/types/publish_function_request.py +28 -0
  859. capo_cloudfront/types/publish_function_result.py +42 -0
  860. capo_cloudfront/types/put_resource_policy_request.py +40 -0
  861. capo_cloudfront/types/put_resource_policy_result.py +30 -0
  862. capo_cloudfront/types/query_arg_profile.py +40 -0
  863. capo_cloudfront/types/query_arg_profile_config.py +60 -0
  864. capo_cloudfront/types/query_arg_profile_list.py +49 -0
  865. capo_cloudfront/types/query_arg_profiles.py +50 -0
  866. capo_cloudfront/types/query_string_cache_keys.py +52 -0
  867. capo_cloudfront/types/query_string_cache_keys_list.py +39 -0
  868. capo_cloudfront/types/query_string_names.py +50 -0
  869. capo_cloudfront/types/query_string_names_list.py +37 -0
  870. capo_cloudfront/types/realtime_log_config.py +79 -0
  871. capo_cloudfront/types/realtime_log_config_list.py +47 -0
  872. capo_cloudfront/types/realtime_log_configs.py +75 -0
  873. capo_cloudfront/types/realtime_metrics_subscription_config.py +50 -0
  874. capo_cloudfront/types/realtime_metrics_subscription_status.py +29 -0
  875. capo_cloudfront/types/referrer_policy_list.py +33 -0
  876. capo_cloudfront/types/resource_arn.py +5 -0
  877. capo_cloudfront/types/resource_id.py +5 -0
  878. capo_cloudfront/types/response_headers_policy.py +70 -0
  879. capo_cloudfront/types/response_headers_policy_access_control_allow_headers.py +57 -0
  880. capo_cloudfront/types/response_headers_policy_access_control_allow_methods.py +57 -0
  881. capo_cloudfront/types/response_headers_policy_access_control_allow_methods_values.py +39 -0
  882. capo_cloudfront/types/response_headers_policy_access_control_allow_origins.py +57 -0
  883. capo_cloudfront/types/response_headers_policy_access_control_expose_headers.py +56 -0
  884. capo_cloudfront/types/response_headers_policy_config.py +141 -0
  885. capo_cloudfront/types/response_headers_policy_content_security_policy.py +47 -0
  886. capo_cloudfront/types/response_headers_policy_content_type_options.py +36 -0
  887. capo_cloudfront/types/response_headers_policy_cors_config.py +147 -0
  888. capo_cloudfront/types/response_headers_policy_custom_header.py +53 -0
  889. capo_cloudfront/types/response_headers_policy_custom_header_list.py +65 -0
  890. capo_cloudfront/types/response_headers_policy_custom_headers_config.py +56 -0
  891. capo_cloudfront/types/response_headers_policy_frame_options.py +55 -0
  892. capo_cloudfront/types/response_headers_policy_list.py +68 -0
  893. capo_cloudfront/types/response_headers_policy_referrer_policy.py +57 -0
  894. capo_cloudfront/types/response_headers_policy_remove_header.py +34 -0
  895. capo_cloudfront/types/response_headers_policy_remove_header_list.py +65 -0
  896. capo_cloudfront/types/response_headers_policy_remove_headers_config.py +56 -0
  897. capo_cloudfront/types/response_headers_policy_security_headers_config.py +144 -0
  898. capo_cloudfront/types/response_headers_policy_server_timing_headers_config.py +44 -0
  899. capo_cloudfront/types/response_headers_policy_strict_transport_security.py +69 -0
  900. capo_cloudfront/types/response_headers_policy_summary.py +67 -0
  901. capo_cloudfront/types/response_headers_policy_summary_list.py +59 -0
  902. capo_cloudfront/types/response_headers_policy_type.py +27 -0
  903. capo_cloudfront/types/response_headers_policy_xss_protection.py +61 -0
  904. capo_cloudfront/types/restrictions.py +40 -0
  905. capo_cloudfront/types/s3_origin.py +40 -0
  906. capo_cloudfront/types/s3_origin_config.py +41 -0
  907. capo_cloudfront/types/sampling_rate.py +5 -0
  908. capo_cloudfront/types/sensitive_string_type.py +5 -0
  909. capo_cloudfront/types/server_certificate_id.py +5 -0
  910. capo_cloudfront/types/session_stickiness_config.py +40 -0
  911. capo_cloudfront/types/signer.py +46 -0
  912. capo_cloudfront/types/signer_list.py +45 -0
  913. capo_cloudfront/types/ssl_protocol.py +29 -0
  914. capo_cloudfront/types/ssl_protocols_list.py +45 -0
  915. capo_cloudfront/types/ssl_support_method.py +28 -0
  916. capo_cloudfront/types/staging_distribution_dns_name_list.py +41 -0
  917. capo_cloudfront/types/staging_distribution_dns_names.py +54 -0
  918. capo_cloudfront/types/status_code_list.py +37 -0
  919. capo_cloudfront/types/status_codes.py +47 -0
  920. capo_cloudfront/types/streaming_distribution.py +116 -0
  921. capo_cloudfront/types/streaming_distribution_config.py +133 -0
  922. capo_cloudfront/types/streaming_distribution_config_with_tags.py +59 -0
  923. capo_cloudfront/types/streaming_distribution_list.py +85 -0
  924. capo_cloudfront/types/streaming_distribution_summary.py +158 -0
  925. capo_cloudfront/types/streaming_distribution_summary_list.py +59 -0
  926. capo_cloudfront/types/streaming_logging_config.py +49 -0
  927. capo_cloudfront/types/string.py +5 -0
  928. capo_cloudfront/types/string_schema_config.py +50 -0
  929. capo_cloudfront/types/tag.py +40 -0
  930. capo_cloudfront/types/tag_key.py +6 -0
  931. capo_cloudfront/types/tag_key_list.py +37 -0
  932. capo_cloudfront/types/tag_keys.py +34 -0
  933. capo_cloudfront/types/tag_list.py +45 -0
  934. capo_cloudfront/types/tag_resource_request.py +39 -0
  935. capo_cloudfront/types/tag_value.py +5 -0
  936. capo_cloudfront/types/tags.py +34 -0
  937. capo_cloudfront/types/tenant_config.py +42 -0
  938. capo_cloudfront/types/test_connection_function_request.py +64 -0
  939. capo_cloudfront/types/test_connection_function_result.py +44 -0
  940. capo_cloudfront/types/test_function_request.py +60 -0
  941. capo_cloudfront/types/test_function_result.py +38 -0
  942. capo_cloudfront/types/test_result.py +91 -0
  943. capo_cloudfront/types/timestamp.py +25 -0
  944. capo_cloudfront/types/traffic_config.py +82 -0
  945. capo_cloudfront/types/trust_store.py +111 -0
  946. capo_cloudfront/types/trust_store_config.py +55 -0
  947. capo_cloudfront/types/trust_store_list.py +49 -0
  948. capo_cloudfront/types/trust_store_status.py +28 -0
  949. capo_cloudfront/types/trust_store_summary.py +112 -0
  950. capo_cloudfront/types/trusted_key_group_id_list.py +37 -0
  951. capo_cloudfront/types/trusted_key_groups.py +59 -0
  952. capo_cloudfront/types/trusted_signers.py +59 -0
  953. capo_cloudfront/types/untag_resource_request.py +39 -0
  954. capo_cloudfront/types/update_anycast_ip_list_request.py +63 -0
  955. capo_cloudfront/types/update_anycast_ip_list_result.py +40 -0
  956. capo_cloudfront/types/update_cache_policy_request.py +49 -0
  957. capo_cloudfront/types/update_cache_policy_result.py +41 -0
  958. capo_cloudfront/types/update_cloud_front_origin_access_identity_request.py +55 -0
  959. capo_cloudfront/types/update_cloud_front_origin_access_identity_result.py +49 -0
  960. capo_cloudfront/types/update_connection_function_request.py +72 -0
  961. capo_cloudfront/types/update_connection_function_result.py +47 -0
  962. capo_cloudfront/types/update_connection_group_request.py +53 -0
  963. capo_cloudfront/types/update_connection_group_result.py +47 -0
  964. capo_cloudfront/types/update_continuous_deployment_policy_request.py +55 -0
  965. capo_cloudfront/types/update_continuous_deployment_policy_result.py +47 -0
  966. capo_cloudfront/types/update_distribution_request.py +49 -0
  967. capo_cloudfront/types/update_distribution_result.py +41 -0
  968. capo_cloudfront/types/update_distribution_tenant_request.py +117 -0
  969. capo_cloudfront/types/update_distribution_tenant_result.py +47 -0
  970. capo_cloudfront/types/update_distribution_with_staging_config_request.py +31 -0
  971. capo_cloudfront/types/update_distribution_with_staging_config_result.py +42 -0
  972. capo_cloudfront/types/update_domain_association_request.py +59 -0
  973. capo_cloudfront/types/update_domain_association_result.py +41 -0
  974. capo_cloudfront/types/update_field_level_encryption_config_request.py +53 -0
  975. capo_cloudfront/types/update_field_level_encryption_config_result.py +47 -0
  976. capo_cloudfront/types/update_field_level_encryption_profile_request.py +55 -0
  977. capo_cloudfront/types/update_field_level_encryption_profile_result.py +47 -0
  978. capo_cloudfront/types/update_function_request.py +63 -0
  979. capo_cloudfront/types/update_function_result.py +45 -0
  980. capo_cloudfront/types/update_key_group_request.py +47 -0
  981. capo_cloudfront/types/update_key_group_result.py +41 -0
  982. capo_cloudfront/types/update_key_value_store_request.py +38 -0
  983. capo_cloudfront/types/update_key_value_store_result.py +41 -0
  984. capo_cloudfront/types/update_origin_access_control_request.py +53 -0
  985. capo_cloudfront/types/update_origin_access_control_result.py +47 -0
  986. capo_cloudfront/types/update_origin_request_policy_request.py +53 -0
  987. capo_cloudfront/types/update_origin_request_policy_result.py +47 -0
  988. capo_cloudfront/types/update_public_key_request.py +47 -0
  989. capo_cloudfront/types/update_public_key_result.py +41 -0
  990. capo_cloudfront/types/update_realtime_log_config_request.py +75 -0
  991. capo_cloudfront/types/update_realtime_log_config_result.py +44 -0
  992. capo_cloudfront/types/update_response_headers_policy_request.py +51 -0
  993. capo_cloudfront/types/update_response_headers_policy_result.py +47 -0
  994. capo_cloudfront/types/update_streaming_distribution_request.py +51 -0
  995. capo_cloudfront/types/update_streaming_distribution_result.py +47 -0
  996. capo_cloudfront/types/update_trust_store_request.py +53 -0
  997. capo_cloudfront/types/update_trust_store_result.py +41 -0
  998. capo_cloudfront/types/update_vpc_origin_request.py +51 -0
  999. capo_cloudfront/types/update_vpc_origin_result.py +41 -0
  1000. capo_cloudfront/types/validation_token_detail.py +46 -0
  1001. capo_cloudfront/types/validation_token_detail_list.py +49 -0
  1002. capo_cloudfront/types/validation_token_host.py +27 -0
  1003. capo_cloudfront/types/verify_dns_configuration_request.py +41 -0
  1004. capo_cloudfront/types/verify_dns_configuration_result.py +44 -0
  1005. capo_cloudfront/types/viewer_certificate.py +121 -0
  1006. capo_cloudfront/types/viewer_mtls_config.py +57 -0
  1007. capo_cloudfront/types/viewer_mtls_mode.py +28 -0
  1008. capo_cloudfront/types/viewer_protocol_policy.py +28 -0
  1009. capo_cloudfront/types/vpc_origin.py +109 -0
  1010. capo_cloudfront/types/vpc_origin_config.py +56 -0
  1011. capo_cloudfront/types/vpc_origin_endpoint_config.py +99 -0
  1012. capo_cloudfront/types/vpc_origin_list.py +83 -0
  1013. capo_cloudfront/types/vpc_origin_summary.py +104 -0
  1014. capo_cloudfront/types/vpc_origin_summary_list.py +49 -0
  1015. capo_cloudfront/types/web_acl_customization.py +48 -0
  1016. capo_cloudfront-0.2.0.dist-info/METADATA +98 -0
  1017. capo_cloudfront-0.2.0.dist-info/RECORD +1020 -0
  1018. capo_cloudfront-0.2.0.dist-info/WHEEL +5 -0
  1019. capo_cloudfront-0.2.0.dist-info/licenses/LICENSE +21 -0
  1020. capo_cloudfront-0.2.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,389 @@
1
+ """Endpoint rule-set runtime — hand-written helpers shared by every generated
2
+ ``_endpoint_rule_set.py``. Pure, no third-party deps.
3
+
4
+ Functions mirror the Smithy rules-engine standard library:
5
+ https://smithy.io/2.0/additional-specs/rules-engine/standard-library.html
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import re
11
+ from collections.abc import Mapping
12
+ from dataclasses import dataclass, field
13
+ from typing import Any, TypedDict
14
+ from urllib.parse import quote, urlsplit
15
+
16
+
17
+ @dataclass(frozen=True, slots=True)
18
+ class Endpoint:
19
+ """Resolved endpoint returned by ``resolve()``.
20
+
21
+ Mirrors the rules-engine *Endpoint object*: a ``url`` plus optional
22
+ ``properties`` (arbitrary document values) and ``headers`` (multi-value
23
+ map of header name to list of values).
24
+
25
+ Reference:
26
+ https://smithy.io/2.0/additional-specs/rules-engine/specification.html#endpoint-object
27
+ """
28
+
29
+ url: str
30
+ properties: dict[str, Any] = field(default_factory=dict)
31
+ headers: dict[str, list[str]] = field(default_factory=dict)
32
+
33
+
34
+ class EndpointError(Exception):
35
+ """Raised when no endpoint rule matches or an ``error`` rule fires.
36
+
37
+ Corresponds to the rules-engine *error rule*: terminates evaluation
38
+ with a diagnostic message produced by the rule set.
39
+
40
+ Reference:
41
+ https://smithy.io/2.0/additional-specs/rules-engine/specification.html#error-rule
42
+ """
43
+
44
+
45
+ _PLACEHOLDER = re.compile(r"\{([A-Za-z_][A-Za-z0-9_]*)(?:#([A-Za-z0-9_.\[\]]+))?\}")
46
+
47
+
48
+ def interpolate(template: str, params: object, locals_: dict[str, Any]) -> str:
49
+ """Expand a rules-engine *template string*.
50
+
51
+ Substitutes ``{Name}`` and ``{Name#path.subpath}`` references inside
52
+ ``template``. Names resolve against ``locals_`` first (variables bound
53
+ by ``assign`` conditions), then against ``params`` attributes (any
54
+ object with attribute access — a dataclass, plain class, etc.; not a
55
+ dict).
56
+ ``#path`` segments walk the resolved value via :func:`get_attr`.
57
+
58
+ Raises :class:`EndpointError` if a referenced name resolves to ``None``.
59
+
60
+ Reference:
61
+ https://smithy.io/2.0/additional-specs/rules-engine/specification.html#template-strings
62
+ """
63
+
64
+ def replace(match: re.Match[str]) -> str:
65
+ name, path = match.group(1), match.group(2)
66
+
67
+ if name in locals_:
68
+ value = locals_[name]
69
+ elif hasattr(params, name):
70
+ value = getattr(params, name)
71
+ else:
72
+ raise EndpointError(f"interpolate: unknown reference '{name}'")
73
+
74
+ if value is None:
75
+ raise EndpointError(f"interpolate: '{name}' is None")
76
+
77
+ if path:
78
+ value = get_attr(value, path)
79
+
80
+ if value is None:
81
+ raise EndpointError(f"interpolate: '{name}#{path}' is None")
82
+
83
+ if isinstance(value, bool):
84
+ return "true" if value else "false"
85
+ return str(value)
86
+
87
+ return _PLACEHOLDER.sub(replace, template)
88
+
89
+
90
+ _SEGMENT_RE = re.compile(r"([A-Za-z_][A-Za-z0-9_]*|\[-?\d+\])")
91
+
92
+
93
+ def get_attr(value: Mapping[str, object] | list[str], path: str) -> object:
94
+ """Rules-engine ``getAttr`` — index into a value by a dotted/bracketed path.
95
+
96
+ Walks segments like ``a.b[0].c`` against dicts (key lookup), objects
97
+ (attribute lookup), and indexable sequences (integer index). Any missing
98
+ key, missing attribute, out-of-range index, or non-indexable cursor
99
+ short-circuits to ``None``.
100
+
101
+ Reference:
102
+ https://smithy.io/2.0/additional-specs/rules-engine/standard-library.html#getattr-function
103
+ """
104
+ cursor: object = value
105
+ for segment in _SEGMENT_RE.findall(path):
106
+ if cursor is None:
107
+ return None
108
+
109
+ if segment.startswith("["):
110
+ # Array index
111
+ idx = int(segment[1:-1])
112
+ try:
113
+ cursor = cursor[idx] # type: ignore
114
+ except IndexError:
115
+ return None
116
+ except TypeError:
117
+ return None
118
+ except KeyError:
119
+ return None
120
+ else:
121
+ # Field access
122
+ if isinstance(cursor, dict):
123
+ cursor = cursor.get(segment)
124
+ else:
125
+ cursor = getattr(cursor, segment, None)
126
+
127
+ return cursor
128
+
129
+
130
+ def string_equals(a: Any, b: Any) -> bool:
131
+ """Rules-engine ``stringEquals`` — strict string equality.
132
+
133
+ Both operands must be Python ``str``; any non-str comparand returns
134
+ ``False``.
135
+
136
+ Reference:
137
+ https://smithy.io/2.0/additional-specs/rules-engine/standard-library.html#stringequals-function
138
+ """
139
+ return isinstance(a, str) and isinstance(b, str) and a == b
140
+
141
+
142
+ _HOST_LABEL = re.compile(r"^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$")
143
+
144
+
145
+ def substring(value: Any, start: int, stop: int, reverse: bool) -> str | None:
146
+ """Rules-engine ``substring`` — slice an ASCII string by ``[start, stop)``.
147
+
148
+ Returns ``None`` when ``value`` is not a string, contains non-ASCII
149
+ code points, or the ``start``/``stop`` indices are negative, equal,
150
+ inverted, or past the end. When ``reverse`` is true, indices count
151
+ from the end of the string toward the start.
152
+
153
+ Reference:
154
+ https://smithy.io/2.0/additional-specs/rules-engine/standard-library.html#substring-function
155
+ """
156
+ if not isinstance(value, str):
157
+ return None
158
+ if not value.isascii():
159
+ return None
160
+ if start < 0 or stop < 0 or start >= stop:
161
+ return None
162
+ if stop > len(value):
163
+ return None
164
+ if reverse:
165
+ n = len(value)
166
+ return value[n - stop : n - start]
167
+ return value[start:stop]
168
+
169
+
170
+ def is_valid_host_label(value: Any, allow_subdomains: bool) -> bool:
171
+ """Rules-engine ``isValidHostLabel`` — validate an RFC 1123 host label.
172
+
173
+ A label is 1–63 chars of ``[A-Za-z0-9-]`` that does not start or end
174
+ with a hyphen. When ``allow_subdomains`` is true, ``value`` may be a
175
+ dot-separated sequence of such labels (every label must be valid).
176
+
177
+ Reference:
178
+ https://smithy.io/2.0/additional-specs/rules-engine/standard-library.html#isvalidhostlabel-function
179
+ """
180
+ if not isinstance(value, str) or not value:
181
+ return False
182
+ if allow_subdomains:
183
+ labels = value.split(".")
184
+ return bool(labels) and all(_HOST_LABEL.match(label) for label in labels)
185
+ return _HOST_LABEL.match(value) is not None
186
+
187
+
188
+ def uri_encode(value: str | None) -> str:
189
+ """Rules-engine ``uriEncode`` — percent-encode per RFC 3986 §2.3.
190
+
191
+ Every character outside the unreserved set ``A-Z a-z 0-9 - _ . ~`` is
192
+ percent-encoded, including ``/``. Non-string input yields ``""``.
193
+
194
+ Reference:
195
+ https://smithy.io/2.0/additional-specs/rules-engine/standard-library.html#uriencode-function
196
+ """
197
+ if value is None:
198
+ return ""
199
+ return quote(value, safe="-_.~")
200
+
201
+
202
+ class ParsedUrl(TypedDict):
203
+ scheme: str
204
+ authority: str
205
+ path: str
206
+ normalizedPath: str
207
+ isIp: bool
208
+
209
+
210
+ def parse_url(value: str) -> ParsedUrl | None:
211
+ """Rules-engine ``parseUrl`` — split an HTTP(S) URL into components.
212
+
213
+ Returns a :class:`ParsedUrl` with ``scheme``, ``authority`` (host plus
214
+ optional ``:port``), ``path``, ``normalizedPath`` (``path`` guaranteed
215
+ to end in ``/``), and ``isIp`` (true for IPv4 dotted-quad or IPv6
216
+ hosts). Returns ``None`` when ``value`` is not a string, the scheme is
217
+ not ``http``/``https``, or a query/fragment is present.
218
+
219
+ Reference:
220
+ https://smithy.io/2.0/additional-specs/rules-engine/standard-library.html#parseurl-function
221
+ """
222
+
223
+ try:
224
+ parts = urlsplit(value)
225
+
226
+ if parts.scheme not in ("http", "https"):
227
+ return None
228
+
229
+ # Smithy parseUrl rejects query strings and fragments.
230
+ if parts.query or parts.fragment:
231
+ return None
232
+
233
+ # urlsplit preserves the raw/encoded path.
234
+ path = parts.path
235
+
236
+ normalized_path = path if path.endswith("/") else f"{path}/"
237
+
238
+ return {
239
+ "scheme": parts.scheme,
240
+ "authority": parts.netloc,
241
+ "path": path,
242
+ "normalizedPath": normalized_path,
243
+ "isIp": _looks_like_ip(parts.hostname or ""),
244
+ }
245
+
246
+ except Exception:
247
+ return None
248
+
249
+
250
+ def _looks_like_ip(host: str) -> bool:
251
+ if not host:
252
+ return False
253
+ if ":" in host: # IPv6 (urlsplit strips brackets from hostname)
254
+ return True
255
+ parts = host.split(".")
256
+ return len(parts) == 4 and all(p.isdigit() for p in parts)
257
+
258
+
259
+ class ParsedArn(TypedDict):
260
+ partition: str
261
+ service: str
262
+ region: str
263
+ accountId: str
264
+ resourceId: list[str]
265
+
266
+
267
+ def aws_parse_arn(arn: Any) -> ParsedArn | None:
268
+ """AWS rules-engine ``aws.parseArn`` — split an ARN into components.
269
+
270
+ An ARN has the shape ``arn:<partition>:<service>:<region>:<account>:<resource>``.
271
+ Returns a :class:`ParsedArn` with ``partition``, ``service``, ``region``,
272
+ ``accountId``, and ``resourceId`` (the trailing resource section split
273
+ on ``:`` and ``/``). Returns ``None`` when ``arn`` is not a string, has
274
+ fewer than six ``:``-separated parts, does not begin with ``arn``, or
275
+ has empty ``partition``/``service``/resource sections. ``region`` and
276
+ ``accountId`` may be empty (e.g. IAM ARNs have no region).
277
+
278
+ Reference:
279
+ https://smithy.io/2.0/aws/rules-engine/standard-library.html#aws-parsearn-function
280
+ """
281
+ if not isinstance(arn, str):
282
+ return None
283
+ parts = arn.split(":", 5)
284
+ if len(parts) != 6:
285
+ return None
286
+ prefix, partition, service, region, account_id, resource = parts
287
+ if prefix != "arn" or not partition or not service or not resource:
288
+ return None
289
+ return {
290
+ "partition": partition,
291
+ "service": service,
292
+ "region": region,
293
+ "accountId": account_id,
294
+ "resourceId": re.split(r"[:/]", resource),
295
+ }
296
+
297
+
298
+ _S3_BUCKET_LABEL = re.compile(r"^[a-z0-9][a-z0-9\-]{1,61}[a-z0-9]$")
299
+ _IPV4 = re.compile(r"^(\d{1,3}\.){3}\d{1,3}$")
300
+
301
+
302
+ def aws_is_virtual_hostable_s3_bucket(value: Any, allow_subdomains: Any) -> bool:
303
+ """AWS rules-engine ``aws.isVirtualHostableS3Bucket`` — validate an S3
304
+ bucket name for virtual-hosted-style addressing.
305
+
306
+ Returns ``True`` when ``value`` is a DNS-compliant S3 bucket name
307
+ (3–63 chars, lowercase alphanumeric plus hyphens, no leading/trailing
308
+ hyphen, no IPv4-address shape). When ``allow_subdomains`` is true,
309
+ dotted bucket names are accepted and each dot-separated label must
310
+ independently satisfy the same rules.
311
+
312
+ Reference:
313
+ https://smithy.io/2.0/aws/rules-engine/standard-library.html#aws-isvirtualhostables3bucket-function
314
+ """
315
+ if not isinstance(value, str):
316
+ return False
317
+ if allow_subdomains:
318
+ labels = value.split(".")
319
+ return all(aws_is_virtual_hostable_s3_bucket(label, False) for label in labels)
320
+ if _IPV4.match(value):
321
+ return False
322
+ return _S3_BUCKET_LABEL.match(value) is not None
323
+
324
+
325
+ def apply_label(url: str, placeholder: str, value: str) -> str:
326
+ """Substitute ``placeholder`` in ``url`` with ``value`` — except when the
327
+ rule engine has already embedded ``value`` as a whole host label or path
328
+ segment. In that case, strip the placeholder and collapse any resulting
329
+ ``//`` or trailing ``/`` in the path.
330
+
331
+ "Part" = host label (split on ``.``) or path segment (split on ``/``).
332
+ Match is case-sensitive, whole-part only. An empty ``value`` always
333
+ substitutes (never matches).
334
+ """
335
+ if placeholder not in url:
336
+ return url
337
+
338
+ if not value:
339
+ return url.replace(placeholder, "")
340
+
341
+ try:
342
+ parsed = urlsplit(url)
343
+ # urlsplit.hostname lowercases the value, which would break the
344
+ # case-sensitive membership test below. Extract from netloc manually
345
+ # to preserve the original casing.
346
+ netloc = parsed.netloc or ""
347
+ host = (
348
+ netloc.rsplit(":", 1)[0]
349
+ if ":" in netloc and not netloc.startswith("[")
350
+ else netloc
351
+ )
352
+ path = parsed.path or ""
353
+ except Exception:
354
+ # Parse failure -> fall back to substitution (defensive).
355
+ return url.replace(placeholder, quote(value, safe=""))
356
+
357
+ host_labels = host.split(".") if host and not host.startswith("[") else []
358
+ path_segments = [seg for seg in path.split("/") if seg]
359
+
360
+ # Guard: only strip when the placeholder is in the path portion. If the
361
+ # placeholder appears only in a query string or fragment, a coincidental
362
+ # host/path match must not trigger the strip branch.
363
+ scheme_sep = url.find("://")
364
+ head_end = url.find("/", scheme_sep + 3) if scheme_sep != -1 else -1
365
+ path_portion = url[head_end:] if head_end != -1 else ""
366
+ # Strip query and fragment off the path portion for the placeholder check.
367
+ for sep in ("?", "#"):
368
+ idx = path_portion.find(sep)
369
+ if idx != -1:
370
+ path_portion = path_portion[:idx]
371
+ if placeholder not in path_portion:
372
+ return url.replace(placeholder, quote(value, safe=""))
373
+
374
+ if value in host_labels or value in path_segments:
375
+ # Splice the placeholder out, then collapse the one seam slash our
376
+ # removal may have created. Pre-existing slash duplicates in the
377
+ # URI template are not our concern — we only fix what we caused.
378
+ idx = url.find(placeholder)
379
+ stripped = url[:idx] + url[idx + len(placeholder) :]
380
+ before = stripped[idx - 1] if idx > 0 else ""
381
+ after = stripped[idx] if idx < len(stripped) else ""
382
+ if before == "/" and after == "/":
383
+ stripped = stripped[:idx] + stripped[idx + 1 :]
384
+ # Placeholder at the path's tail leaves a stray trailing ``/``.
385
+ if stripped.endswith("/"):
386
+ stripped = stripped[:-1]
387
+ return stripped
388
+
389
+ return url.replace(placeholder, quote(value, safe=""))
@@ -0,0 +1,152 @@
1
+ from __future__ import annotations
2
+
3
+ import configparser
4
+ import functools
5
+ import os
6
+ from dataclasses import dataclass
7
+ from pathlib import Path
8
+ from typing import TypeVar
9
+
10
+ from capo_cloudfront._services._pipeline import (
11
+ AsyncInterceptor,
12
+ AsyncNextFn,
13
+ AsyncOperationRequest,
14
+ AsyncOperationResponse,
15
+ Interceptor,
16
+ NextFn,
17
+ OperationRequest,
18
+ OperationResponse,
19
+ )
20
+
21
+ ENDPOINT_ENV_VAR = "AWS_ENDPOINT_URL_CLOUD_FRONT"
22
+ SERVICE_ID = "cloud_front"
23
+ TInput = TypeVar("TInput")
24
+ TOutput = TypeVar("TOutput")
25
+
26
+
27
+ @dataclass(frozen=True)
28
+ class AwsSettings:
29
+ region: str | None
30
+ endpoint: str | None
31
+ use_fips: bool
32
+ use_dual_stack: bool
33
+ max_attempts: int
34
+
35
+
36
+ def _env_bool(name: str) -> bool | None:
37
+ val = os.environ.get(name)
38
+ if val is None:
39
+ return None
40
+ return val.strip().lower() in ("true", "1")
41
+
42
+
43
+ def _profile_bool(section: dict[str, str], key: str) -> bool | None:
44
+ val = section.get(key)
45
+ if val is None:
46
+ return None
47
+ return val.strip().lower() in ("true", "1")
48
+
49
+
50
+ def _load_profile() -> tuple[dict[str, str], dict[str, dict[str, str]]]:
51
+ profile = (
52
+ os.environ.get("AWS_PROFILE")
53
+ or os.environ.get("AWS_DEFAULT_PROFILE")
54
+ or "default"
55
+ )
56
+ raw_cfg = os.environ.get("AWS_CONFIG_FILE")
57
+ cfg_file = (
58
+ Path(raw_cfg).expanduser() if raw_cfg else Path.home() / ".aws" / "config"
59
+ )
60
+ merged: dict[str, str] = {}
61
+ services: dict[str, dict[str, str]] = {}
62
+ if cfg_file.is_file():
63
+ cfg = configparser.ConfigParser(interpolation=None)
64
+ cfg.read(cfg_file)
65
+ key = "default" if profile == "default" else f"profile {profile}"
66
+ if cfg.has_section(key):
67
+ merged.update(dict(cfg.items(key)))
68
+ services_name = merged.get("services")
69
+ if services_name and cfg.has_section(f"services {services_name}"):
70
+ raw = dict(cfg.items(f"services {services_name}"))
71
+ for svc, block in raw.items():
72
+ parsed: dict[str, str] = {}
73
+ for line in block.splitlines():
74
+ stripped = line.strip()
75
+ if "=" in stripped:
76
+ k, _, val = stripped.partition("=")
77
+ parsed[k.strip()] = val.strip()
78
+ services[svc] = parsed
79
+ return merged, services
80
+
81
+
82
+ @functools.cache
83
+ def load_aws_settings() -> AwsSettings:
84
+ profile, services = _load_profile()
85
+ region = os.environ.get("AWS_REGION") or profile.get("region")
86
+ endpoint = (
87
+ os.environ.get(ENDPOINT_ENV_VAR)
88
+ or os.environ.get("AWS_ENDPOINT_URL")
89
+ or services.get(SERVICE_ID, {}).get("endpoint_url")
90
+ or profile.get("endpoint_url")
91
+ )
92
+ use_fips: bool | None = _env_bool("AWS_USE_FIPS_ENDPOINT")
93
+ if use_fips is None:
94
+ use_fips = _profile_bool(profile, "use_fips_endpoint")
95
+ if use_fips is None:
96
+ use_fips = False
97
+ use_dual_stack: bool | None = _env_bool("AWS_USE_DUALSTACK_ENDPOINT")
98
+ if use_dual_stack is None:
99
+ use_dual_stack = _profile_bool(profile, "use_dualstack_endpoint")
100
+ if use_dual_stack is None:
101
+ use_dual_stack = False
102
+ max_attempts_raw = os.environ.get("AWS_MAX_ATTEMPTS") or profile.get("max_attempts")
103
+ max_attempts = int(max_attempts_raw) if max_attempts_raw else 3
104
+ return AwsSettings(
105
+ region=region,
106
+ endpoint=endpoint,
107
+ use_fips=use_fips,
108
+ use_dual_stack=use_dual_stack,
109
+ max_attempts=max_attempts,
110
+ )
111
+
112
+
113
+ def aws_config() -> Interceptor[TInput, TOutput]:
114
+ def interceptor(
115
+ request: OperationRequest[TInput], next: NextFn[TInput, TOutput]
116
+ ) -> OperationResponse[TOutput]:
117
+ settings = load_aws_settings()
118
+ options = request.options
119
+ if options.region is None:
120
+ options.region = settings.region
121
+ if options.endpoint is None:
122
+ options.endpoint = settings.endpoint
123
+ if options.use_fips is None:
124
+ options.use_fips = settings.use_fips
125
+ if options.use_dual_stack is None:
126
+ options.use_dual_stack = settings.use_dual_stack
127
+ if options.retry_max_attempts is None:
128
+ options.retry_max_attempts = settings.max_attempts
129
+ return next(request)
130
+
131
+ return interceptor
132
+
133
+
134
+ def aaws_config() -> AsyncInterceptor[TInput, TOutput]:
135
+ async def interceptor(
136
+ request: AsyncOperationRequest[TInput], next: AsyncNextFn[TInput, TOutput]
137
+ ) -> AsyncOperationResponse[TOutput]:
138
+ settings = load_aws_settings()
139
+ options = request.options
140
+ if options.region is None:
141
+ options.region = settings.region
142
+ if options.endpoint is None:
143
+ options.endpoint = settings.endpoint
144
+ if options.use_fips is None:
145
+ options.use_fips = settings.use_fips
146
+ if options.use_dual_stack is None:
147
+ options.use_dual_stack = settings.use_dual_stack
148
+ if options.retry_max_attempts is None:
149
+ options.retry_max_attempts = settings.max_attempts
150
+ return await next(request)
151
+
152
+ return interceptor