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,382 @@
1
+ """AWS Signature Version 4 — single-chunk signing.
2
+
3
+ Reference:
4
+ https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv-create-signed-request.html
5
+
6
+ Verified byte-for-byte against ``botocore.auth.S3SigV4Auth`` / ``SigV4Auth``
7
+ across S3 GET/PUT/POST, query-string, session-token, and non-S3 (IAM)
8
+ canonicalization paths.
9
+ """
10
+
11
+ from __future__ import annotations
12
+
13
+ import datetime as _dt
14
+ import hashlib
15
+ import hmac
16
+ import re
17
+ from typing import Any, Literal, TypedDict
18
+ from urllib.parse import quote, unquote
19
+
20
+ import zapros
21
+ from pywhatwgurl import URLSearchParams
22
+ from zapros import Headers, Request
23
+ from zapros._utils import get_host_header_value
24
+
25
+
26
+ def build_sigv4_auth_scheme(
27
+ signing_name: str, region: str | None
28
+ ) -> dict[str, Any] | None:
29
+ """Return a sigv4 auth scheme dict for the given signing name and region.
30
+
31
+ Returns None when region is not set so callers can use it in an ``or`` chain.
32
+ """
33
+ if region is None:
34
+ return None
35
+ return {
36
+ "name": "sigv4",
37
+ "signingName": signing_name,
38
+ "signingRegion": region,
39
+ "disableDoubleEncoding": False,
40
+ "disableNormalizePath": False,
41
+ }
42
+
43
+
44
+ class SigV4AuthContext(TypedDict):
45
+ type: Literal["sig_v4"]
46
+ access_key_id: str
47
+ secret_access_key: str
48
+ session_token: str | None
49
+ signing_region: str
50
+ signing_name: str
51
+
52
+
53
+ _SIGV4_ALGORITHM = "AWS4-HMAC-SHA256"
54
+ _EMPTY_PAYLOAD_SHA256 = hashlib.sha256(b"").hexdigest()
55
+
56
+ # Headers excluded from the signed-headers set. Mirrors botocore's denylist:
57
+ # these are hop-by-hop / mutable in transit, so signing them would break
58
+ # proxies or duplicate values already added by the transport layer.
59
+ _UNSIGNED_HEADERS = frozenset(
60
+ {
61
+ "authorization",
62
+ "cache-control",
63
+ "connection",
64
+ "expect",
65
+ "from",
66
+ "keep-alive",
67
+ "max-forwards",
68
+ "pragma",
69
+ "referer",
70
+ "te",
71
+ "trailer",
72
+ "transfer-encoding",
73
+ "upgrade",
74
+ "user-agent",
75
+ "x-amzn-trace-id",
76
+ "content-length",
77
+ "accept",
78
+ "accept-encoding",
79
+ }
80
+ )
81
+
82
+ _MULTI_SPACE = re.compile(r" +")
83
+
84
+
85
+ def _uri_encode(value: str) -> str:
86
+ """RFC 3986 percent-encoding using only the unreserved set as safe."""
87
+ return quote(value, safe="-_.~")
88
+
89
+
90
+ def _canonical_path(path: str, *, service: str) -> str:
91
+ """Build CanonicalURI.
92
+
93
+ Per the SigV4 spec, every segment is URI-encoded; for services other
94
+ than S3 each segment is URI-encoded **twice**. S3 keeps the path
95
+ exactly as provided (no normalization, no double-encoding).
96
+ """
97
+ if not path:
98
+ return "/"
99
+ if service == "s3":
100
+ return path if path.startswith("/") else "/" + path
101
+ decoded = unquote(path)
102
+ first = quote(decoded, safe="/~")
103
+ return quote(first, safe="/~")
104
+
105
+
106
+ def _canonical_query(query: str) -> str:
107
+ """Build CanonicalQueryString from a raw query string (with or without ``?``)."""
108
+ if not query:
109
+ return ""
110
+ if query.startswith("?"):
111
+ query = query[1:]
112
+ if not query:
113
+ return ""
114
+ sp = URLSearchParams(query)
115
+ encoded = sorted((_uri_encode(k), _uri_encode(v)) for k, v in sp.entries())
116
+ return "&".join(f"{k}={v}" for k, v in encoded)
117
+
118
+
119
+ def _trim_header_value(value: str) -> str:
120
+ """Trim leading/trailing whitespace and collapse internal whitespace runs.
121
+
122
+ Spec note: the canonical form treats sequential whitespace inside an
123
+ unquoted value as a single space. We do not parse quoted-string syntax;
124
+ the conservative collapse is correct for every header AWS actually signs.
125
+ """
126
+ return _MULTI_SPACE.sub(" ", value.strip())
127
+
128
+
129
+ def _canonical_headers(headers: Headers) -> tuple[str, str]:
130
+ """Return ``(canonical_headers, signed_headers)``."""
131
+ grouped: dict[str, list[str]] = {}
132
+ for name in headers:
133
+ lname = name.lower()
134
+ if lname in _UNSIGNED_HEADERS:
135
+ continue
136
+ grouped[lname] = [_trim_header_value(v) for v in headers.getall(name)]
137
+
138
+ signed = sorted(grouped)
139
+ canonical = "".join(f"{name}:{','.join(grouped[name])}\n" for name in signed)
140
+ return canonical, ";".join(signed)
141
+
142
+
143
+ def _build_canonical_request(
144
+ *,
145
+ method: str,
146
+ path: str,
147
+ query: str,
148
+ headers: Headers,
149
+ payload_hash: str,
150
+ service: str,
151
+ ) -> tuple[str, str]:
152
+ canonical_uri = _canonical_path(path, service=service)
153
+ canonical_query = _canonical_query(query)
154
+ canonical_headers, signed_headers = _canonical_headers(headers)
155
+ canonical_request = (
156
+ f"{method}\n"
157
+ f"{canonical_uri}\n"
158
+ f"{canonical_query}\n"
159
+ f"{canonical_headers}\n"
160
+ f"{signed_headers}\n"
161
+ f"{payload_hash}"
162
+ )
163
+ return canonical_request, signed_headers
164
+
165
+
166
+ def _derive_signing_key(secret: str, date: str, region: str, service: str) -> bytes:
167
+ k_date = hmac.new(
168
+ b"AWS4" + secret.encode("utf-8"), date.encode("ascii"), hashlib.sha256
169
+ ).digest()
170
+ k_region = hmac.new(k_date, region.encode("utf-8"), hashlib.sha256).digest()
171
+ k_service = hmac.new(k_region, service.encode("utf-8"), hashlib.sha256).digest()
172
+ return hmac.new(k_service, b"aws4_request", hashlib.sha256).digest()
173
+
174
+
175
+ def _amz_now() -> _dt.datetime:
176
+ return _dt.datetime.now(_dt.timezone.utc)
177
+
178
+
179
+ def _canonical_query_from_pairs(pairs: list[tuple[str, str]]) -> str:
180
+ """CanonicalQueryString from raw (unencoded) key/value pairs."""
181
+ encoded = sorted((_uri_encode(k), _uri_encode(v)) for k, v in pairs)
182
+ return "&".join(f"{k}={v}" for k, v in encoded)
183
+
184
+
185
+ def sign_sigv4(
186
+ request: Request,
187
+ ctx: SigV4AuthContext,
188
+ body: bytes | None,
189
+ ) -> Request:
190
+ """Return a new ``Request`` carrying SigV4 single-chunk auth headers.
191
+
192
+ Pass ``body=None`` to sign with ``UNSIGNED-PAYLOAD`` (streaming requests).
193
+ The original ``request.body`` is forwarded unchanged in that case.
194
+ """
195
+ service = ctx["signing_name"]
196
+ region = ctx["signing_region"]
197
+
198
+ headers = request.headers.copy()
199
+
200
+ # X-Amz-Date — honor caller-supplied value (allows deterministic tests).
201
+ existing_date = headers.get("X-Amz-Date")
202
+ if existing_date:
203
+ amz_date = existing_date
204
+ date_stamp = amz_date[:8]
205
+ else:
206
+ now = _amz_now()
207
+ amz_date = now.strftime("%Y%m%dT%H%M%SZ")
208
+ date_stamp = now.strftime("%Y%m%d")
209
+ headers["X-Amz-Date"] = amz_date
210
+
211
+ # Payload hash. For S3, x-amz-content-sha256 is mandatory and must be set
212
+ # BEFORE computing the canonical request (it gets signed).
213
+ payload_hash = headers.get("X-Amz-Content-SHA256")
214
+ if payload_hash is None:
215
+ if body is None:
216
+ payload_hash = "UNSIGNED-PAYLOAD"
217
+ else:
218
+ payload_hash = (
219
+ hashlib.sha256(body).hexdigest() if body else _EMPTY_PAYLOAD_SHA256
220
+ )
221
+ if service == "s3":
222
+ headers["X-Amz-Content-SHA256"] = payload_hash
223
+
224
+ # Session token (STS / assumed-role credentials).
225
+ session_token = ctx.get("session_token")
226
+ if session_token:
227
+ headers["X-Amz-Security-Token"] = session_token
228
+
229
+ # Host header is added by Request.__init__ from the URL; defensive fallback.
230
+ if "host" not in headers and request.url.hostname:
231
+ headers["Host"] = get_host_header_value(request.url)
232
+
233
+ canonical_request, signed_headers = _build_canonical_request(
234
+ method=request.method.upper(),
235
+ path=request.url.pathname,
236
+ query=request.url.search,
237
+ headers=headers,
238
+ payload_hash=payload_hash,
239
+ service=service,
240
+ )
241
+
242
+ credential_scope = f"{date_stamp}/{region}/{service}/aws4_request"
243
+ string_to_sign = (
244
+ f"{_SIGV4_ALGORITHM}\n"
245
+ f"{amz_date}\n"
246
+ f"{credential_scope}\n"
247
+ f"{hashlib.sha256(canonical_request.encode('utf-8')).hexdigest()}"
248
+ )
249
+
250
+ signing_key = _derive_signing_key(
251
+ ctx["secret_access_key"], date_stamp, region, service
252
+ )
253
+ signature = hmac.new(
254
+ signing_key, string_to_sign.encode("utf-8"), hashlib.sha256
255
+ ).hexdigest()
256
+
257
+ headers["Authorization"] = (
258
+ f"{_SIGV4_ALGORITHM} "
259
+ f"Credential={ctx['access_key_id']}/{credential_scope},"
260
+ f"SignedHeaders={signed_headers},"
261
+ f"Signature={signature}"
262
+ )
263
+
264
+ effective_body = body if body is not None else request.body
265
+ if effective_body is not None:
266
+ return Request(
267
+ request.url,
268
+ request.method,
269
+ headers,
270
+ body=effective_body,
271
+ context=request.context,
272
+ )
273
+ return Request(request.url, request.method, headers, context=request.context)
274
+
275
+
276
+ def presign_sigv4(
277
+ request: Request,
278
+ ctx: SigV4AuthContext,
279
+ *,
280
+ expires_in: int = 3600,
281
+ now: _dt.datetime | None = None,
282
+ ) -> Request:
283
+ """Return a new ``Request`` whose URL carries SigV4 query-string auth.
284
+
285
+ The signature travels in the URL (``X-Amz-*`` query params), so the result
286
+ is usable standalone (browser, curl). Payload is signed as
287
+ ``UNSIGNED-PAYLOAD``, so the body is not bound by the signature.
288
+
289
+ ``expires_in`` is the validity window in seconds; range 1..604800 (7 days),
290
+ bounded by the max lifetime of the derived signing key.
291
+ """
292
+ if not 1 <= expires_in <= 604800:
293
+ raise ValueError(f"expires_in must be in [1, 604800], got {expires_in}")
294
+
295
+ sign_time = now or _amz_now()
296
+ if sign_time.tzinfo is None:
297
+ raise ValueError("now must be timezone-aware (UTC)")
298
+
299
+ service = ctx["signing_name"]
300
+ region = ctx["signing_region"]
301
+
302
+ amz_date = sign_time.strftime("%Y%m%dT%H%M%SZ")
303
+ date_stamp = sign_time.strftime("%Y%m%d")
304
+ credential_scope = f"{date_stamp}/{region}/{service}/aws4_request"
305
+
306
+ # Canonical headers: host is mandatory; anything else already on the request
307
+ # is signed too (and must then be sent alongside the URL). Strip the headers
308
+ # that belong in the query string to avoid header/query value conflicts
309
+ # (which AWS rejects as InvalidRequest).
310
+ headers = request.headers.copy()
311
+ for h in (
312
+ "Authorization",
313
+ "X-Amz-Date",
314
+ "X-Amz-Content-SHA256",
315
+ "X-Amz-Security-Token",
316
+ ):
317
+ if h in headers:
318
+ del headers[h]
319
+ if "host" not in headers and request.url.hostname:
320
+ headers["Host"] = get_host_header_value(request.url)
321
+
322
+ canonical_headers, signed_headers = _canonical_headers(headers)
323
+
324
+ # Signed query params (raw values). X-Amz-Signature is appended afterwards.
325
+ amz_params: list[tuple[str, str]] = [
326
+ ("X-Amz-Algorithm", _SIGV4_ALGORITHM),
327
+ ("X-Amz-Credential", f"{ctx['access_key_id']}/{credential_scope}"),
328
+ ("X-Amz-Date", amz_date),
329
+ ("X-Amz-Expires", str(expires_in)),
330
+ ("X-Amz-SignedHeaders", signed_headers),
331
+ ]
332
+ session_token = ctx.get("session_token")
333
+ if session_token:
334
+ # S3 and most services require the token inside the canonical query.
335
+ # (A few — e.g. iotdevicegateway — want it appended post-signature
336
+ # instead; handle those as a special case if you ever target them.)
337
+ amz_params.append(("X-Amz-Security-Token", session_token))
338
+
339
+ existing = list(URLSearchParams(request.url.search).entries())
340
+ canonical_query = _canonical_query_from_pairs(existing + amz_params)
341
+
342
+ canonical_request = (
343
+ f"{request.method.upper()}\n"
344
+ f"{_canonical_path(request.url.pathname, service=service)}\n"
345
+ f"{canonical_query}\n"
346
+ f"{canonical_headers}\n"
347
+ f"{signed_headers}\n"
348
+ f"UNSIGNED-PAYLOAD"
349
+ )
350
+
351
+ string_to_sign = (
352
+ f"{_SIGV4_ALGORITHM}\n"
353
+ f"{amz_date}\n"
354
+ f"{credential_scope}\n"
355
+ f"{hashlib.sha256(canonical_request.encode('utf-8')).hexdigest()}"
356
+ )
357
+ signing_key = _derive_signing_key(
358
+ ctx["secret_access_key"], date_stamp, region, service
359
+ )
360
+ signature = hmac.new(
361
+ signing_key, string_to_sign.encode("utf-8"), hashlib.sha256
362
+ ).hexdigest()
363
+
364
+ # X-Amz-Signature is hex (no encoding needed) and is NOT part of the
365
+ # canonical query. The sorted canonical query doubles as the URL query.
366
+ final_query = f"{canonical_query}&X-Amz-Signature={signature}"
367
+
368
+ url = request.url
369
+ fragment = url.hash or ""
370
+ presigned_href = zapros.URL(
371
+ f"{url.protocol}//{url.host}{url.pathname}?{final_query}{fragment}"
372
+ )
373
+
374
+ if request.body is not None:
375
+ return Request(
376
+ presigned_href,
377
+ request.method,
378
+ headers,
379
+ body=request.body,
380
+ context=request.context,
381
+ )
382
+ return Request(presigned_href, request.method, headers, context=request.context)
@@ -0,0 +1,62 @@
1
+ from typing import Optional, cast
2
+
3
+ from zapros import (
4
+ AsyncBaseHandler,
5
+ AsyncBaseMiddleware,
6
+ AsyncSyncMismatchError,
7
+ BaseHandler,
8
+ BaseMiddleware,
9
+ Request,
10
+ )
11
+ from zapros._models import Response
12
+
13
+ from ._signers import Signer
14
+
15
+
16
+ def ensure_async_handler(
17
+ handler: AsyncBaseHandler | BaseHandler,
18
+ ) -> AsyncBaseHandler:
19
+ if isinstance(handler, AsyncBaseHandler):
20
+ return handler
21
+ raise AsyncSyncMismatchError(
22
+ "Handler was expected to be an AsyncBaseHandler, but it is not."
23
+ )
24
+
25
+
26
+ def ensure_sync_handler(
27
+ handler: AsyncBaseHandler | BaseHandler,
28
+ ) -> BaseHandler:
29
+ if isinstance(handler, BaseHandler):
30
+ return handler
31
+ raise AsyncSyncMismatchError(
32
+ "Handler was expected to be a BaseHandler, but it is not."
33
+ )
34
+
35
+
36
+ class AuthMiddleware(BaseMiddleware, AsyncBaseMiddleware):
37
+ """Sign the outgoing request using the Signer placed in ``context["signer"]``.
38
+
39
+ The generated ``get_signer`` in each operation module resolves the
40
+ effective auth scheme to a concrete :class:`Signer` and threads it
41
+ through ``request.context`` before dispatch. This middleware does the
42
+ actual signing; ``None`` means the operation opted out via
43
+ ``@optionalAuth`` and the request passes through untouched.
44
+ """
45
+
46
+ def __init__(self, next_handler: BaseHandler | AsyncBaseHandler) -> None:
47
+ self.next = cast(BaseHandler, next_handler)
48
+ self.async_next = cast(AsyncBaseHandler, next_handler)
49
+
50
+ def handle(self, request: Request) -> Response:
51
+ next_handler = ensure_sync_handler(self.next)
52
+ signer = cast(Optional[Signer], request.context.get("signer"))
53
+ if signer is not None:
54
+ request = signer.sign(request)
55
+ return next_handler.handle(request)
56
+
57
+ async def ahandle(self, request: Request) -> Response:
58
+ next_handler = ensure_async_handler(self.async_next)
59
+ signer = cast(Optional[Signer], request.context.get("signer"))
60
+ if signer is not None:
61
+ request = await signer.asign(request)
62
+ return await next_handler.ahandle(request)
@@ -0,0 +1,113 @@
1
+ """Iterator helpers used by generated streaming operations.
2
+
3
+ Hand-written, not regenerated.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from collections.abc import AsyncIterable, AsyncIterator, Callable, Iterable, Iterator
9
+ from typing import Generic, TypeVar, cast
10
+
11
+ T = TypeVar("T")
12
+ U = TypeVar("U")
13
+
14
+
15
+ class AnyIterator(AsyncIterator[T], Iterator[T], Generic[T]):
16
+ """A type that is both a synchronous and asynchronous iterator.
17
+
18
+ Streaming output fields use this so the same TypedDict type works for
19
+ both sync and async operation variants.
20
+ """
21
+
22
+ ...
23
+
24
+
25
+ class StaticAnyIterator(AnyIterator[T], Generic[T]):
26
+ """An :class:`AnyIterator` backed by static, in-memory content.
27
+
28
+ Used when streaming output is produced from already-materialized bytes
29
+ rather than a live stream. The ``content`` is yielded once and remains
30
+ accessible as a public attribute.
31
+ """
32
+
33
+ def __init__(self, content: T) -> None:
34
+ self.content = content
35
+ self._consumed = False
36
+
37
+ def __next__(self) -> T:
38
+ if self._consumed:
39
+ raise StopIteration
40
+ self._consumed = True
41
+ return self.content
42
+
43
+ async def __anext__(self) -> T:
44
+ if self._consumed:
45
+ raise StopAsyncIteration
46
+ self._consumed = True
47
+ return self.content
48
+
49
+
50
+ def map_sync_iterator(iterable: Iterable[T], fn: Callable[[T], U]) -> Iterator[U]:
51
+ """Map ``fn`` over a synchronous iterable, yielding results lazily."""
52
+ for item in iterable:
53
+ yield fn(item)
54
+
55
+
56
+ async def map_async_iterator(
57
+ async_iterable: AsyncIterable[T], fn: Callable[[T], U]
58
+ ) -> AsyncIterator[U]:
59
+ """Map ``fn`` over an asynchronous iterable, yielding results lazily."""
60
+ async for item in async_iterable:
61
+ yield fn(item)
62
+
63
+
64
+ def chain_sync_iterator(*iterables: Iterable[T]) -> Iterator[T]:
65
+ """Yield items from each iterable in order."""
66
+ for iterable in iterables:
67
+ yield from iterable
68
+
69
+
70
+ async def chain_async_iterator(
71
+ prefix: Iterable[T], rest: AsyncIterable[T]
72
+ ) -> AsyncIterator[T]:
73
+ """Yield the synchronous ``prefix`` items, then the async ``rest`` items."""
74
+ for item in prefix:
75
+ yield item
76
+ async for item in rest:
77
+ yield item
78
+
79
+
80
+ def ensure_async_iterator(value: AsyncIterator[T] | T) -> AnyIterator[T]:
81
+ """Return ``value`` as an :class:`AnyIterator`.
82
+
83
+ An async iterator is returned unchanged; a single value is wrapped in a
84
+ fresh single-item async iterator.
85
+ """
86
+ if isinstance(value, AsyncIterator):
87
+ return cast(AnyIterator[T], value)
88
+
89
+ return StaticAnyIterator(value)
90
+
91
+
92
+ def ensure_sync_iterator(value: Iterator[T] | T) -> AnyIterator[T]:
93
+ """Return ``value`` as an :class:`AnyIterator`.
94
+
95
+ A sync iterator is returned unchanged; a single value is wrapped in a
96
+ fresh single-item sync iterator.
97
+ """
98
+ if isinstance(value, Iterator):
99
+ return cast(AnyIterator[T], value)
100
+
101
+ return StaticAnyIterator(value)
102
+
103
+
104
+ __all__ = [
105
+ "AnyIterator",
106
+ "StaticAnyIterator",
107
+ "chain_async_iterator",
108
+ "chain_sync_iterator",
109
+ "ensure_async_iterator",
110
+ "ensure_sync_iterator",
111
+ "map_async_iterator",
112
+ "map_sync_iterator",
113
+ ]
@@ -0,0 +1,128 @@
1
+ """Generated from Smithy shape ``com.amazonaws.cloudfront#AssociateAlias``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+ from urllib.parse import quote
7
+
8
+ import zapros
9
+ from typing_extensions import Never
10
+
11
+ import capo_cloudfront._auth._signers
12
+ import capo_cloudfront._auth._sigv4
13
+ import capo_cloudfront.errors.access_denied
14
+ import capo_cloudfront.errors.illegal_update
15
+ import capo_cloudfront.errors.invalid_argument
16
+ import capo_cloudfront.errors.no_such_distribution
17
+ import capo_cloudfront.errors.too_many_distribution_cnam_es
18
+ import capo_cloudfront.types.associate_alias_request
19
+ from capo_cloudfront._protocol.errors import parse_error_metadata
20
+ from capo_cloudfront._protocol.xml import fromstring
21
+ from capo_cloudfront._rule_engine._endpoint_rule_set import EndpointParams, resolve
22
+ from capo_cloudfront._services._pipeline import AsyncOperationOptions, OperationOptions
23
+ from capo_cloudfront.errors import UnknownServiceError
24
+
25
+
26
+ def handle_error(response: zapros.Response) -> Never:
27
+ root = fromstring(response.read())
28
+ code, message = parse_error_metadata(root)
29
+ match code:
30
+ case "AccessDenied":
31
+ raise capo_cloudfront.errors.access_denied.AccessDenied.from_xml(root)
32
+ case "IllegalUpdate":
33
+ raise capo_cloudfront.errors.illegal_update.IllegalUpdate.from_xml(root)
34
+ case "InvalidArgument":
35
+ raise capo_cloudfront.errors.invalid_argument.InvalidArgument.from_xml(root)
36
+ case "NoSuchDistribution":
37
+ raise capo_cloudfront.errors.no_such_distribution.NoSuchDistribution.from_xml(
38
+ root
39
+ )
40
+ case "TooManyDistributionCNAMEs":
41
+ raise capo_cloudfront.errors.too_many_distribution_cnam_es.TooManyDistributionCNAMEs.from_xml(
42
+ root
43
+ )
44
+ case _:
45
+ raise UnknownServiceError(code=code, message=message, response=response)
46
+
47
+
48
+ def get_signer(
49
+ options: AsyncOperationOptions | OperationOptions,
50
+ auth_schemes: list[dict[str, Any]] | None = None,
51
+ ) -> capo_cloudfront._auth._signers.Signer | None:
52
+ name_to_schema = {s["name"]: s for s in (auth_schemes or [])} # noqa: F841
53
+ if options.credentials_provider is not None:
54
+ sigv4_config = (
55
+ name_to_schema.get("sigv4")
56
+ or name_to_schema.get("sigv4a")
57
+ or name_to_schema.get("sigv4-s3express")
58
+ or capo_cloudfront._auth._sigv4.build_sigv4_auth_scheme(
59
+ "cloudfront", options.region
60
+ )
61
+ )
62
+ if sigv4_config is not None:
63
+ return capo_cloudfront._auth._signers.SigV4Signer(
64
+ options.credentials_provider, auth_scheme=sigv4_config
65
+ )
66
+ raise RuntimeError("Auth was not resolved")
67
+
68
+
69
+ def build_request(
70
+ options: OperationOptions | AsyncOperationOptions,
71
+ input_: capo_cloudfront.types.associate_alias_request.AssociateAliasRequest,
72
+ ) -> zapros.Request:
73
+ endpoint = resolve(
74
+ EndpointParams(
75
+ UseDualStack=options.use_dual_stack,
76
+ UseFIPS=options.use_fips,
77
+ Endpoint=options.endpoint,
78
+ Region=options.region,
79
+ )
80
+ ) # noqa: F841
81
+ url = (
82
+ endpoint.url.rstrip("/")
83
+ + "/2020-05-31/distribution/{TargetDistributionId}/associate-alias"
84
+ )
85
+ url = url.replace(
86
+ "{TargetDistributionId}", quote(str(input_["target_distribution_id"]), safe="")
87
+ )
88
+ params: dict[str, str] = {}
89
+ if "alias" in input_:
90
+ params["Alias"] = str(input_["alias"])
91
+ headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
92
+ body: bytes | None = b""
93
+ signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
94
+ normalized_url = zapros.URL(url)
95
+ normalized_url.search_params.update(params)
96
+ return zapros.Request(
97
+ normalized_url, "PUT", headers=headers, body=body, context={"signer": signer}
98
+ )
99
+
100
+
101
+ def associate_alias(
102
+ options: OperationOptions,
103
+ input_: capo_cloudfront.types.associate_alias_request.AssociateAliasRequest,
104
+ ) -> tuple[None, zapros.Response]:
105
+ response = options.client.handler.handle(build_request(options, input_))
106
+ try:
107
+ if response.status >= 400:
108
+ response.read()
109
+ handle_error(response)
110
+ return None, response
111
+ except BaseException:
112
+ response.close()
113
+ raise
114
+
115
+
116
+ async def async_associate_alias(
117
+ options: AsyncOperationOptions,
118
+ input_: capo_cloudfront.types.associate_alias_request.AssociateAliasRequest,
119
+ ) -> tuple[None, zapros.Response]:
120
+ response = await options.client.handler.ahandle(build_request(options, input_))
121
+ try:
122
+ if response.status >= 400:
123
+ await response.aread()
124
+ handle_error(response)
125
+ return None, response
126
+ except BaseException:
127
+ await response.aclose()
128
+ raise