capo-lambda 0.5.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 (681) hide show
  1. capo_lambda/__init__.py +52 -0
  2. capo_lambda/_async.py +25 -0
  3. capo_lambda/_auth/_identity.py +16 -0
  4. capo_lambda/_auth/_providers.py +318 -0
  5. capo_lambda/_auth/_signers.py +84 -0
  6. capo_lambda/_auth/_sigv4.py +382 -0
  7. capo_lambda/_auth/_zapros_handler.py +62 -0
  8. capo_lambda/_iter.py +113 -0
  9. capo_lambda/_operations/aws_gir_api_service/add_layer_version_permission.py +169 -0
  10. capo_lambda/_operations/aws_gir_api_service/add_permission.py +168 -0
  11. capo_lambda/_operations/aws_gir_api_service/checkpoint_durable_execution.py +150 -0
  12. capo_lambda/_operations/aws_gir_api_service/create_alias.py +152 -0
  13. capo_lambda/_operations/aws_gir_api_service/create_capacity_provider.py +157 -0
  14. capo_lambda/_operations/aws_gir_api_service/create_code_signing_config.py +140 -0
  15. capo_lambda/_operations/aws_gir_api_service/create_event_source_mapping.py +173 -0
  16. capo_lambda/_operations/aws_gir_api_service/create_function.py +208 -0
  17. capo_lambda/_operations/aws_gir_api_service/create_function_url_config.py +158 -0
  18. capo_lambda/_operations/aws_gir_api_service/delete_alias.py +123 -0
  19. capo_lambda/_operations/aws_gir_api_service/delete_capacity_provider.py +156 -0
  20. capo_lambda/_operations/aws_gir_api_service/delete_code_signing_config.py +146 -0
  21. capo_lambda/_operations/aws_gir_api_service/delete_event_source_mapping.py +176 -0
  22. capo_lambda/_operations/aws_gir_api_service/delete_function.py +148 -0
  23. capo_lambda/_operations/aws_gir_api_service/delete_function_code_signing_config.py +133 -0
  24. capo_lambda/_operations/aws_gir_api_service/delete_function_concurrency.py +125 -0
  25. capo_lambda/_operations/aws_gir_api_service/delete_function_event_invoke_config.py +130 -0
  26. capo_lambda/_operations/aws_gir_api_service/delete_function_url_config.py +122 -0
  27. capo_lambda/_operations/aws_gir_api_service/delete_layer_version.py +114 -0
  28. capo_lambda/_operations/aws_gir_api_service/delete_provisioned_concurrency_config.py +130 -0
  29. capo_lambda/_operations/aws_gir_api_service/get_account_settings.py +139 -0
  30. capo_lambda/_operations/aws_gir_api_service/get_alias.py +147 -0
  31. capo_lambda/_operations/aws_gir_api_service/get_capacity_provider.py +151 -0
  32. capo_lambda/_operations/aws_gir_api_service/get_code_signing_config.py +146 -0
  33. capo_lambda/_operations/aws_gir_api_service/get_durable_execution.py +154 -0
  34. capo_lambda/_operations/aws_gir_api_service/get_durable_execution_history.py +158 -0
  35. capo_lambda/_operations/aws_gir_api_service/get_durable_execution_state.py +151 -0
  36. capo_lambda/_operations/aws_gir_api_service/get_event_source_mapping.py +166 -0
  37. capo_lambda/_operations/aws_gir_api_service/get_function.py +154 -0
  38. capo_lambda/_operations/aws_gir_api_service/get_function_code_signing_config.py +148 -0
  39. capo_lambda/_operations/aws_gir_api_service/get_function_concurrency.py +145 -0
  40. capo_lambda/_operations/aws_gir_api_service/get_function_configuration.py +172 -0
  41. capo_lambda/_operations/aws_gir_api_service/get_function_event_invoke_config.py +156 -0
  42. capo_lambda/_operations/aws_gir_api_service/get_function_recursion_config.py +149 -0
  43. capo_lambda/_operations/aws_gir_api_service/get_function_scaling_config.py +151 -0
  44. capo_lambda/_operations/aws_gir_api_service/get_function_url_config.py +150 -0
  45. capo_lambda/_operations/aws_gir_api_service/get_layer_version.py +156 -0
  46. capo_lambda/_operations/aws_gir_api_service/get_layer_version_by_arn.py +152 -0
  47. capo_lambda/_operations/aws_gir_api_service/get_layer_version_policy.py +149 -0
  48. capo_lambda/_operations/aws_gir_api_service/get_policy.py +145 -0
  49. capo_lambda/_operations/aws_gir_api_service/get_provisioned_concurrency_config.py +156 -0
  50. capo_lambda/_operations/aws_gir_api_service/get_runtime_management_config.py +151 -0
  51. capo_lambda/_operations/aws_gir_api_service/invoke.py +342 -0
  52. capo_lambda/_operations/aws_gir_api_service/invoke_async.py +153 -0
  53. capo_lambda/_operations/aws_gir_api_service/invoke_with_response_stream.py +346 -0
  54. capo_lambda/_operations/aws_gir_api_service/list_aliases.py +154 -0
  55. capo_lambda/_operations/aws_gir_api_service/list_capacity_providers.py +146 -0
  56. capo_lambda/_operations/aws_gir_api_service/list_code_signing_configs.py +142 -0
  57. capo_lambda/_operations/aws_gir_api_service/list_durable_executions_by_function.py +166 -0
  58. capo_lambda/_operations/aws_gir_api_service/list_event_source_mappings.py +152 -0
  59. capo_lambda/_operations/aws_gir_api_service/list_function_event_invoke_configs.py +153 -0
  60. capo_lambda/_operations/aws_gir_api_service/list_function_url_configs.py +154 -0
  61. capo_lambda/_operations/aws_gir_api_service/list_function_versions_by_capacity_provider.py +155 -0
  62. capo_lambda/_operations/aws_gir_api_service/list_functions.py +150 -0
  63. capo_lambda/_operations/aws_gir_api_service/list_functions_by_code_signing_config.py +150 -0
  64. capo_lambda/_operations/aws_gir_api_service/list_layer_versions.py +160 -0
  65. capo_lambda/_operations/aws_gir_api_service/list_layers.py +147 -0
  66. capo_lambda/_operations/aws_gir_api_service/list_provisioned_concurrency_configs.py +153 -0
  67. capo_lambda/_operations/aws_gir_api_service/list_tags.py +144 -0
  68. capo_lambda/_operations/aws_gir_api_service/list_versions_by_function.py +154 -0
  69. capo_lambda/_operations/aws_gir_api_service/publish_layer_version.py +157 -0
  70. capo_lambda/_operations/aws_gir_api_service/publish_version.py +192 -0
  71. capo_lambda/_operations/aws_gir_api_service/put_function_code_signing_config.py +163 -0
  72. capo_lambda/_operations/aws_gir_api_service/put_function_concurrency.py +149 -0
  73. capo_lambda/_operations/aws_gir_api_service/put_function_event_invoke_config.py +166 -0
  74. capo_lambda/_operations/aws_gir_api_service/put_function_recursion_config.py +157 -0
  75. capo_lambda/_operations/aws_gir_api_service/put_function_scaling_config.py +160 -0
  76. capo_lambda/_operations/aws_gir_api_service/put_provisioned_concurrency_config.py +161 -0
  77. capo_lambda/_operations/aws_gir_api_service/put_runtime_management_config.py +159 -0
  78. capo_lambda/_operations/aws_gir_api_service/remove_layer_version_permission.py +132 -0
  79. capo_lambda/_operations/aws_gir_api_service/remove_permission.py +133 -0
  80. capo_lambda/_operations/aws_gir_api_service/send_durable_execution_callback_failure.py +151 -0
  81. capo_lambda/_operations/aws_gir_api_service/send_durable_execution_callback_heartbeat.py +144 -0
  82. capo_lambda/_operations/aws_gir_api_service/send_durable_execution_callback_success.py +151 -0
  83. capo_lambda/_operations/aws_gir_api_service/stop_durable_execution.py +158 -0
  84. capo_lambda/_operations/aws_gir_api_service/tag_resource.py +129 -0
  85. capo_lambda/_operations/aws_gir_api_service/untag_resource.py +128 -0
  86. capo_lambda/_operations/aws_gir_api_service/update_alias.py +160 -0
  87. capo_lambda/_operations/aws_gir_api_service/update_capacity_provider.py +160 -0
  88. capo_lambda/_operations/aws_gir_api_service/update_code_signing_config.py +151 -0
  89. capo_lambda/_operations/aws_gir_api_service/update_event_source_mapping.py +179 -0
  90. capo_lambda/_operations/aws_gir_api_service/update_function_code.py +203 -0
  91. capo_lambda/_operations/aws_gir_api_service/update_function_configuration.py +204 -0
  92. capo_lambda/_operations/aws_gir_api_service/update_function_event_invoke_config.py +166 -0
  93. capo_lambda/_operations/aws_gir_api_service/update_function_url_config.py +158 -0
  94. capo_lambda/_pagination.py +21 -0
  95. capo_lambda/_protocol/__init__.py +1 -0
  96. capo_lambda/_protocol/errors.py +59 -0
  97. capo_lambda/_protocol/eventstream.py +238 -0
  98. capo_lambda/_protocol/xml.py +27 -0
  99. capo_lambda/_resources/aws_gir_api_service/capacity_provider_resource.py +713 -0
  100. capo_lambda/_resources/aws_gir_api_service/code_signing_config_resource.py +656 -0
  101. capo_lambda/_resources/aws_gir_api_service/event_source_mapping.py +1163 -0
  102. capo_lambda/_resources/aws_gir_api_service/function.py +3923 -0
  103. capo_lambda/_resources/aws_gir_api_service/function_alias.py +670 -0
  104. capo_lambda/_resources/aws_gir_api_service/function_version_resource.py +303 -0
  105. capo_lambda/_resources/aws_gir_api_service/layer_resource.py +170 -0
  106. capo_lambda/_resources/aws_gir_api_service/layer_version.py +1022 -0
  107. capo_lambda/_resources/aws_gir_api_service/permission.py +389 -0
  108. capo_lambda/_resources/aws_gir_api_service/provisioned_concurrency_config.py +376 -0
  109. capo_lambda/_resources/aws_gir_api_service/resource_policy.py +19 -0
  110. capo_lambda/_rule_engine/__init__.py +0 -0
  111. capo_lambda/_rule_engine/_aws_partition.py +160 -0
  112. capo_lambda/_rule_engine/_endpoint_rule_set.py +136 -0
  113. capo_lambda/_rule_engine/_endpoint_runtime.py +389 -0
  114. capo_lambda/_services/_aws_config.py +152 -0
  115. capo_lambda/_services/_lambda.py +1388 -0
  116. capo_lambda/_services/_pipeline.py +198 -0
  117. capo_lambda/_services/async__lambda.py +1411 -0
  118. capo_lambda/errors/__init__.py +148 -0
  119. capo_lambda/errors/_base.py +94 -0
  120. capo_lambda/errors/callback_timeout_exception.py +54 -0
  121. capo_lambda/errors/capacity_provider_limit_exceeded_exception.py +54 -0
  122. capo_lambda/errors/code_signing_config_not_found_exception.py +53 -0
  123. capo_lambda/errors/code_storage_exceeded_exception.py +54 -0
  124. capo_lambda/errors/code_verification_failed_exception.py +53 -0
  125. capo_lambda/errors/durable_execution_already_started_exception.py +54 -0
  126. capo_lambda/errors/ec2_access_denied_exception.py +53 -0
  127. capo_lambda/errors/ec2_throttled_exception.py +53 -0
  128. capo_lambda/errors/ec2_unexpected_exception.py +58 -0
  129. capo_lambda/errors/efs_mount_connectivity_exception.py +53 -0
  130. capo_lambda/errors/efs_mount_failure_exception.py +53 -0
  131. capo_lambda/errors/efs_mount_timeout_exception.py +53 -0
  132. capo_lambda/errors/efsio_exception.py +53 -0
  133. capo_lambda/errors/eni_limit_reached_exception.py +53 -0
  134. capo_lambda/errors/function_versions_per_capacity_provider_limit_exceeded_exception.py +64 -0
  135. capo_lambda/errors/invalid_code_signature_exception.py +53 -0
  136. capo_lambda/errors/invalid_parameter_value_exception.py +55 -0
  137. capo_lambda/errors/invalid_request_content_exception.py +55 -0
  138. capo_lambda/errors/invalid_runtime_exception.py +53 -0
  139. capo_lambda/errors/invalid_security_group_id_exception.py +53 -0
  140. capo_lambda/errors/invalid_subnet_id_exception.py +53 -0
  141. capo_lambda/errors/invalid_zip_file_exception.py +53 -0
  142. capo_lambda/errors/kms_access_denied_exception.py +53 -0
  143. capo_lambda/errors/kms_disabled_exception.py +53 -0
  144. capo_lambda/errors/kms_invalid_state_exception.py +53 -0
  145. capo_lambda/errors/kms_not_found_exception.py +53 -0
  146. capo_lambda/errors/no_published_version_exception.py +54 -0
  147. capo_lambda/errors/policy_length_exceeded_exception.py +53 -0
  148. capo_lambda/errors/precondition_failed_exception.py +55 -0
  149. capo_lambda/errors/provisioned_concurrency_config_not_found_exception.py +53 -0
  150. capo_lambda/errors/recursive_invocation_exception.py +55 -0
  151. capo_lambda/errors/request_too_large_exception.py +53 -0
  152. capo_lambda/errors/resource_conflict_exception.py +55 -0
  153. capo_lambda/errors/resource_in_use_exception.py +53 -0
  154. capo_lambda/errors/resource_not_found_exception.py +53 -0
  155. capo_lambda/errors/resource_not_ready_exception.py +55 -0
  156. capo_lambda/errors/s3_files_mount_connectivity_exception.py +55 -0
  157. capo_lambda/errors/s3_files_mount_failure_exception.py +55 -0
  158. capo_lambda/errors/s3_files_mount_timeout_exception.py +55 -0
  159. capo_lambda/errors/serialized_request_entity_too_large_exception.py +54 -0
  160. capo_lambda/errors/service_exception.py +53 -0
  161. capo_lambda/errors/snap_start_exception.py +53 -0
  162. capo_lambda/errors/snap_start_not_ready_exception.py +53 -0
  163. capo_lambda/errors/snap_start_timeout_exception.py +53 -0
  164. capo_lambda/errors/subnet_ip_address_limit_reached_exception.py +53 -0
  165. capo_lambda/errors/too_many_requests_exception.py +69 -0
  166. capo_lambda/errors/unsupported_media_type_exception.py +53 -0
  167. capo_lambda/py.typed +0 -0
  168. capo_lambda/types/_prelude/blob.py +12 -0
  169. capo_lambda/types/_prelude/timestamp.py +12 -0
  170. capo_lambda/types/account_limit.py +62 -0
  171. capo_lambda/types/account_usage.py +36 -0
  172. capo_lambda/types/action.py +5 -0
  173. capo_lambda/types/add_layer_version_permission_request.py +69 -0
  174. capo_lambda/types/add_layer_version_permission_response.py +34 -0
  175. capo_lambda/types/add_permission_request.py +122 -0
  176. capo_lambda/types/add_permission_response.py +28 -0
  177. capo_lambda/types/additional_version.py +5 -0
  178. capo_lambda/types/additional_version_weights.py +27 -0
  179. capo_lambda/types/alias.py +5 -0
  180. capo_lambda/types/alias_configuration.py +77 -0
  181. capo_lambda/types/alias_list.py +27 -0
  182. capo_lambda/types/alias_routing_configuration.py +42 -0
  183. capo_lambda/types/allow_credentials.py +5 -0
  184. capo_lambda/types/allow_methods_list.py +17 -0
  185. capo_lambda/types/allow_origins_list.py +17 -0
  186. capo_lambda/types/allowed_publishers.py +47 -0
  187. capo_lambda/types/amazon_managed_kafka_event_source_config.py +49 -0
  188. capo_lambda/types/application_log_level.py +21 -0
  189. capo_lambda/types/architecture.py +17 -0
  190. capo_lambda/types/architectures_list.py +27 -0
  191. capo_lambda/types/arn.py +5 -0
  192. capo_lambda/types/attempt_count.py +5 -0
  193. capo_lambda/types/batch_size.py +5 -0
  194. capo_lambda/types/binary_operation_payload.py +15 -0
  195. capo_lambda/types/bisect_batch_on_function_error.py +5 -0
  196. capo_lambda/types/blob.py +15 -0
  197. capo_lambda/types/blob_stream.py +7 -0
  198. capo_lambda/types/boolean.py +5 -0
  199. capo_lambda/types/callback_details.py +46 -0
  200. capo_lambda/types/callback_failed_details.py +35 -0
  201. capo_lambda/types/callback_id.py +5 -0
  202. capo_lambda/types/callback_options.py +36 -0
  203. capo_lambda/types/callback_started_details.py +44 -0
  204. capo_lambda/types/callback_succeeded_details.py +35 -0
  205. capo_lambda/types/callback_timed_out_details.py +35 -0
  206. capo_lambda/types/capacity_provider.py +143 -0
  207. capo_lambda/types/capacity_provider_arn.py +5 -0
  208. capo_lambda/types/capacity_provider_config.py +45 -0
  209. capo_lambda/types/capacity_provider_max_v_cpu_count.py +5 -0
  210. capo_lambda/types/capacity_provider_name.py +5 -0
  211. capo_lambda/types/capacity_provider_permissions_config.py +37 -0
  212. capo_lambda/types/capacity_provider_predefined_metric_type.py +16 -0
  213. capo_lambda/types/capacity_provider_scaling_config.py +72 -0
  214. capo_lambda/types/capacity_provider_scaling_mode.py +17 -0
  215. capo_lambda/types/capacity_provider_scaling_policies_list.py +33 -0
  216. capo_lambda/types/capacity_provider_security_group_ids.py +19 -0
  217. capo_lambda/types/capacity_provider_state.py +19 -0
  218. capo_lambda/types/capacity_provider_subnet_ids.py +17 -0
  219. capo_lambda/types/capacity_provider_vpc_config.py +65 -0
  220. capo_lambda/types/capacity_providers_list.py +29 -0
  221. capo_lambda/types/chained_invoke_details.py +39 -0
  222. capo_lambda/types/chained_invoke_failed_details.py +35 -0
  223. capo_lambda/types/chained_invoke_options.py +38 -0
  224. capo_lambda/types/chained_invoke_started_details.py +67 -0
  225. capo_lambda/types/chained_invoke_stopped_details.py +35 -0
  226. capo_lambda/types/chained_invoke_succeeded_details.py +35 -0
  227. capo_lambda/types/chained_invoke_timed_out_details.py +35 -0
  228. capo_lambda/types/checkpoint_durable_execution_request.py +58 -0
  229. capo_lambda/types/checkpoint_durable_execution_response.py +52 -0
  230. capo_lambda/types/checkpoint_token.py +5 -0
  231. capo_lambda/types/checkpoint_updated_execution_state.py +43 -0
  232. capo_lambda/types/client_token.py +5 -0
  233. capo_lambda/types/code_signing_config.py +94 -0
  234. capo_lambda/types/code_signing_config_arn.py +5 -0
  235. capo_lambda/types/code_signing_config_id.py +5 -0
  236. capo_lambda/types/code_signing_config_list.py +29 -0
  237. capo_lambda/types/code_signing_policies.py +42 -0
  238. capo_lambda/types/code_signing_policy.py +17 -0
  239. capo_lambda/types/collection_name.py +5 -0
  240. capo_lambda/types/compatible_architectures.py +27 -0
  241. capo_lambda/types/compatible_runtimes.py +27 -0
  242. capo_lambda/types/concurrency.py +30 -0
  243. capo_lambda/types/context_details.py +46 -0
  244. capo_lambda/types/context_failed_details.py +35 -0
  245. capo_lambda/types/context_options.py +28 -0
  246. capo_lambda/types/context_started_details.py +18 -0
  247. capo_lambda/types/context_succeeded_details.py +35 -0
  248. capo_lambda/types/cors.py +96 -0
  249. capo_lambda/types/create_alias_request.py +72 -0
  250. capo_lambda/types/create_capacity_provider_request.py +139 -0
  251. capo_lambda/types/create_capacity_provider_response.py +41 -0
  252. capo_lambda/types/create_code_signing_config_request.py +82 -0
  253. capo_lambda/types/create_code_signing_config_response.py +43 -0
  254. capo_lambda/types/create_event_source_mapping_request.py +426 -0
  255. capo_lambda/types/create_function_request.py +385 -0
  256. capo_lambda/types/create_function_url_config_request.py +73 -0
  257. capo_lambda/types/create_function_url_config_response.py +95 -0
  258. capo_lambda/types/database_name.py +5 -0
  259. capo_lambda/types/date.py +15 -0
  260. capo_lambda/types/dead_letter_config.py +28 -0
  261. capo_lambda/types/delete_alias_request.py +27 -0
  262. capo_lambda/types/delete_capacity_provider_request.py +26 -0
  263. capo_lambda/types/delete_capacity_provider_response.py +41 -0
  264. capo_lambda/types/delete_code_signing_config_request.py +26 -0
  265. capo_lambda/types/delete_code_signing_config_response.py +18 -0
  266. capo_lambda/types/delete_event_source_mapping_request.py +24 -0
  267. capo_lambda/types/delete_function_code_signing_config_request.py +24 -0
  268. capo_lambda/types/delete_function_concurrency_request.py +24 -0
  269. capo_lambda/types/delete_function_event_invoke_config_request.py +29 -0
  270. capo_lambda/types/delete_function_request.py +29 -0
  271. capo_lambda/types/delete_function_response.py +24 -0
  272. capo_lambda/types/delete_function_url_config_request.py +29 -0
  273. capo_lambda/types/delete_layer_version_request.py +27 -0
  274. capo_lambda/types/delete_provisioned_concurrency_config_request.py +27 -0
  275. capo_lambda/types/description.py +5 -0
  276. capo_lambda/types/destination_arn.py +5 -0
  277. capo_lambda/types/destination_config.py +51 -0
  278. capo_lambda/types/document_db_event_source_config.py +50 -0
  279. capo_lambda/types/durable_config.py +39 -0
  280. capo_lambda/types/durable_execution_arn.py +5 -0
  281. capo_lambda/types/durable_execution_name.py +5 -0
  282. capo_lambda/types/durable_executions.py +27 -0
  283. capo_lambda/types/duration_seconds.py +5 -0
  284. capo_lambda/types/enabled.py +5 -0
  285. capo_lambda/types/end_point_type.py +14 -0
  286. capo_lambda/types/endpoint.py +5 -0
  287. capo_lambda/types/endpoint_lists.py +17 -0
  288. capo_lambda/types/endpoints.py +37 -0
  289. capo_lambda/types/environment.py +38 -0
  290. capo_lambda/types/environment_error.py +35 -0
  291. capo_lambda/types/environment_response.py +53 -0
  292. capo_lambda/types/environment_variable_name.py +5 -0
  293. capo_lambda/types/environment_variable_value.py +5 -0
  294. capo_lambda/types/environment_variables.py +27 -0
  295. capo_lambda/types/ephemeral_storage.py +31 -0
  296. capo_lambda/types/ephemeral_storage_size.py +5 -0
  297. capo_lambda/types/error_data.py +5 -0
  298. capo_lambda/types/error_message.py +5 -0
  299. capo_lambda/types/error_object.py +57 -0
  300. capo_lambda/types/error_type.py +5 -0
  301. capo_lambda/types/event.py +584 -0
  302. capo_lambda/types/event_error.py +41 -0
  303. capo_lambda/types/event_id.py +5 -0
  304. capo_lambda/types/event_input.py +35 -0
  305. capo_lambda/types/event_result.py +35 -0
  306. capo_lambda/types/event_source_mapping_arn.py +5 -0
  307. capo_lambda/types/event_source_mapping_configuration.py +472 -0
  308. capo_lambda/types/event_source_mapping_logging_config.py +42 -0
  309. capo_lambda/types/event_source_mapping_metric.py +18 -0
  310. capo_lambda/types/event_source_mapping_metric_list.py +29 -0
  311. capo_lambda/types/event_source_mapping_metrics_config.py +42 -0
  312. capo_lambda/types/event_source_mapping_system_log_level.py +18 -0
  313. capo_lambda/types/event_source_mappings_list.py +33 -0
  314. capo_lambda/types/event_source_position.py +18 -0
  315. capo_lambda/types/event_source_token.py +5 -0
  316. capo_lambda/types/event_type.py +39 -0
  317. capo_lambda/types/events.py +27 -0
  318. capo_lambda/types/execution.py +95 -0
  319. capo_lambda/types/execution_details.py +28 -0
  320. capo_lambda/types/execution_environment_memory_gi_b_per_v_cpu.py +5 -0
  321. capo_lambda/types/execution_failed_details.py +35 -0
  322. capo_lambda/types/execution_started_details.py +43 -0
  323. capo_lambda/types/execution_status.py +20 -0
  324. capo_lambda/types/execution_status_list.py +29 -0
  325. capo_lambda/types/execution_stopped_details.py +35 -0
  326. capo_lambda/types/execution_succeeded_details.py +35 -0
  327. capo_lambda/types/execution_timed_out_details.py +32 -0
  328. capo_lambda/types/execution_timeout.py +5 -0
  329. capo_lambda/types/execution_timestamp.py +15 -0
  330. capo_lambda/types/file_system_arn.py +5 -0
  331. capo_lambda/types/file_system_config.py +39 -0
  332. capo_lambda/types/file_system_config_list.py +29 -0
  333. capo_lambda/types/filter.py +28 -0
  334. capo_lambda/types/filter_criteria.py +32 -0
  335. capo_lambda/types/filter_criteria_error.py +39 -0
  336. capo_lambda/types/filter_criteria_error_code.py +5 -0
  337. capo_lambda/types/filter_criteria_error_message.py +5 -0
  338. capo_lambda/types/filter_list.py +27 -0
  339. capo_lambda/types/full_document.py +17 -0
  340. capo_lambda/types/function_arn.py +5 -0
  341. capo_lambda/types/function_arn_list.py +17 -0
  342. capo_lambda/types/function_code.py +69 -0
  343. capo_lambda/types/function_code_location.py +52 -0
  344. capo_lambda/types/function_configuration.py +513 -0
  345. capo_lambda/types/function_event_invoke_config.py +80 -0
  346. capo_lambda/types/function_event_invoke_config_list.py +31 -0
  347. capo_lambda/types/function_list.py +29 -0
  348. capo_lambda/types/function_name.py +5 -0
  349. capo_lambda/types/function_response_type.py +14 -0
  350. capo_lambda/types/function_response_type_list.py +29 -0
  351. capo_lambda/types/function_scaling_config.py +38 -0
  352. capo_lambda/types/function_scaling_config_execution_environments.py +5 -0
  353. capo_lambda/types/function_url.py +5 -0
  354. capo_lambda/types/function_url_auth_type.py +17 -0
  355. capo_lambda/types/function_url_config.py +96 -0
  356. capo_lambda/types/function_url_config_list.py +29 -0
  357. capo_lambda/types/function_url_qualifier.py +5 -0
  358. capo_lambda/types/function_version.py +14 -0
  359. capo_lambda/types/function_version_latest_published.py +14 -0
  360. capo_lambda/types/function_versions_by_capacity_provider_list.py +37 -0
  361. capo_lambda/types/function_versions_by_capacity_provider_list_item.py +47 -0
  362. capo_lambda/types/get_account_settings_request.py +18 -0
  363. capo_lambda/types/get_account_settings_response.py +51 -0
  364. capo_lambda/types/get_alias_request.py +27 -0
  365. capo_lambda/types/get_capacity_provider_request.py +26 -0
  366. capo_lambda/types/get_capacity_provider_response.py +41 -0
  367. capo_lambda/types/get_code_signing_config_request.py +26 -0
  368. capo_lambda/types/get_code_signing_config_response.py +43 -0
  369. capo_lambda/types/get_durable_execution_history_request.py +38 -0
  370. capo_lambda/types/get_durable_execution_history_response.py +42 -0
  371. capo_lambda/types/get_durable_execution_request.py +24 -0
  372. capo_lambda/types/get_durable_execution_response.py +150 -0
  373. capo_lambda/types/get_durable_execution_state_request.py +33 -0
  374. capo_lambda/types/get_durable_execution_state_response.py +46 -0
  375. capo_lambda/types/get_event_source_mapping_request.py +24 -0
  376. capo_lambda/types/get_function_code_signing_config_request.py +24 -0
  377. capo_lambda/types/get_function_code_signing_config_response.py +45 -0
  378. capo_lambda/types/get_function_concurrency_request.py +24 -0
  379. capo_lambda/types/get_function_concurrency_response.py +30 -0
  380. capo_lambda/types/get_function_configuration_request.py +29 -0
  381. capo_lambda/types/get_function_event_invoke_config_request.py +29 -0
  382. capo_lambda/types/get_function_recursion_config_request.py +24 -0
  383. capo_lambda/types/get_function_recursion_config_response.py +36 -0
  384. capo_lambda/types/get_function_request.py +29 -0
  385. capo_lambda/types/get_function_response.py +96 -0
  386. capo_lambda/types/get_function_scaling_config_request.py +29 -0
  387. capo_lambda/types/get_function_scaling_config_response.py +69 -0
  388. capo_lambda/types/get_function_url_config_request.py +29 -0
  389. capo_lambda/types/get_function_url_config_response.py +100 -0
  390. capo_lambda/types/get_layer_version_by_arn_request.py +24 -0
  391. capo_lambda/types/get_layer_version_policy_request.py +27 -0
  392. capo_lambda/types/get_layer_version_policy_response.py +34 -0
  393. capo_lambda/types/get_layer_version_request.py +27 -0
  394. capo_lambda/types/get_layer_version_response.py +127 -0
  395. capo_lambda/types/get_policy_request.py +29 -0
  396. capo_lambda/types/get_policy_response.py +34 -0
  397. capo_lambda/types/get_provisioned_concurrency_config_request.py +27 -0
  398. capo_lambda/types/get_provisioned_concurrency_config_response.py +94 -0
  399. capo_lambda/types/get_runtime_management_config_request.py +29 -0
  400. capo_lambda/types/get_runtime_management_config_response.py +56 -0
  401. capo_lambda/types/handler.py +5 -0
  402. capo_lambda/types/header.py +5 -0
  403. capo_lambda/types/headers_list.py +17 -0
  404. capo_lambda/types/http_status.py +5 -0
  405. capo_lambda/types/image_config.py +55 -0
  406. capo_lambda/types/image_config_error.py +35 -0
  407. capo_lambda/types/image_config_response.py +51 -0
  408. capo_lambda/types/include_execution_data.py +5 -0
  409. capo_lambda/types/input_payload.py +5 -0
  410. capo_lambda/types/instance_requirements.py +77 -0
  411. capo_lambda/types/instance_type.py +5 -0
  412. capo_lambda/types/instance_type_set.py +17 -0
  413. capo_lambda/types/integer.py +5 -0
  414. capo_lambda/types/invocation_completed_details.py +75 -0
  415. capo_lambda/types/invocation_request.py +57 -0
  416. capo_lambda/types/invocation_response.py +48 -0
  417. capo_lambda/types/invocation_type.py +18 -0
  418. capo_lambda/types/invoke_async_request.py +16 -0
  419. capo_lambda/types/invoke_async_response.py +24 -0
  420. capo_lambda/types/invoke_mode.py +17 -0
  421. capo_lambda/types/invoke_response_stream_update.py +42 -0
  422. capo_lambda/types/invoke_with_response_stream_complete_event.py +55 -0
  423. capo_lambda/types/invoke_with_response_stream_request.py +54 -0
  424. capo_lambda/types/invoke_with_response_stream_response.py +24 -0
  425. capo_lambda/types/invoke_with_response_stream_response_event.py +78 -0
  426. capo_lambda/types/invoked_via_function_url.py +5 -0
  427. capo_lambda/types/item_count.py +5 -0
  428. capo_lambda/types/kafka_schema_registry_access_config.py +47 -0
  429. capo_lambda/types/kafka_schema_registry_access_config_list.py +33 -0
  430. capo_lambda/types/kafka_schema_registry_auth_type.py +18 -0
  431. capo_lambda/types/kafka_schema_registry_config.py +93 -0
  432. capo_lambda/types/kafka_schema_validation_attribute.py +17 -0
  433. capo_lambda/types/kafka_schema_validation_config.py +42 -0
  434. capo_lambda/types/kafka_schema_validation_config_list.py +33 -0
  435. capo_lambda/types/kms_key_arn.py +5 -0
  436. capo_lambda/types/kms_key_arn_non_empty.py +5 -0
  437. capo_lambda/types/lambda_managed_instances_capacity_provider_config.py +59 -0
  438. capo_lambda/types/last_update_status.py +18 -0
  439. capo_lambda/types/last_update_status_reason.py +5 -0
  440. capo_lambda/types/last_update_status_reason_code.py +49 -0
  441. capo_lambda/types/layer.py +49 -0
  442. capo_lambda/types/layer_arn.py +5 -0
  443. capo_lambda/types/layer_list.py +17 -0
  444. capo_lambda/types/layer_name.py +5 -0
  445. capo_lambda/types/layer_permission_allowed_action.py +5 -0
  446. capo_lambda/types/layer_permission_allowed_principal.py +5 -0
  447. capo_lambda/types/layer_version_arn.py +5 -0
  448. capo_lambda/types/layer_version_content_input.py +55 -0
  449. capo_lambda/types/layer_version_content_output.py +54 -0
  450. capo_lambda/types/layer_version_number.py +5 -0
  451. capo_lambda/types/layer_versions_list.py +29 -0
  452. capo_lambda/types/layer_versions_list_item.py +101 -0
  453. capo_lambda/types/layers_list.py +27 -0
  454. capo_lambda/types/layers_list_item.py +56 -0
  455. capo_lambda/types/layers_reference_list.py +27 -0
  456. capo_lambda/types/license_info.py +5 -0
  457. capo_lambda/types/list_aliases_request.py +35 -0
  458. capo_lambda/types/list_aliases_response.py +39 -0
  459. capo_lambda/types/list_capacity_providers_request.py +32 -0
  460. capo_lambda/types/list_capacity_providers_response.py +52 -0
  461. capo_lambda/types/list_code_signing_configs_request.py +27 -0
  462. capo_lambda/types/list_code_signing_configs_response.py +49 -0
  463. capo_lambda/types/list_durable_executions_by_function_request.py +55 -0
  464. capo_lambda/types/list_durable_executions_by_function_response.py +47 -0
  465. capo_lambda/types/list_event_source_mappings_request.py +35 -0
  466. capo_lambda/types/list_event_source_mappings_response.py +49 -0
  467. capo_lambda/types/list_function_event_invoke_configs_request.py +32 -0
  468. capo_lambda/types/list_function_event_invoke_configs_response.py +49 -0
  469. capo_lambda/types/list_function_url_configs_request.py +30 -0
  470. capo_lambda/types/list_function_url_configs_response.py +54 -0
  471. capo_lambda/types/list_function_versions_by_capacity_provider_request.py +32 -0
  472. capo_lambda/types/list_function_versions_by_capacity_provider_response.py +62 -0
  473. capo_lambda/types/list_functions_by_code_signing_config_request.py +32 -0
  474. capo_lambda/types/list_functions_by_code_signing_config_response.py +43 -0
  475. capo_lambda/types/list_functions_request.py +33 -0
  476. capo_lambda/types/list_functions_response.py +43 -0
  477. capo_lambda/types/list_layer_versions_request.py +36 -0
  478. capo_lambda/types/list_layer_versions_response.py +45 -0
  479. capo_lambda/types/list_layers_request.py +33 -0
  480. capo_lambda/types/list_layers_response.py +39 -0
  481. capo_lambda/types/list_provisioned_concurrency_configs_request.py +32 -0
  482. capo_lambda/types/list_provisioned_concurrency_configs_response.py +49 -0
  483. capo_lambda/types/list_tags_request.py +24 -0
  484. capo_lambda/types/list_tags_response.py +32 -0
  485. capo_lambda/types/list_versions_by_function_request.py +30 -0
  486. capo_lambda/types/list_versions_by_function_response.py +43 -0
  487. capo_lambda/types/local_mount_path.py +5 -0
  488. capo_lambda/types/log_format.py +17 -0
  489. capo_lambda/types/log_group.py +5 -0
  490. capo_lambda/types/log_type.py +17 -0
  491. capo_lambda/types/logging_config.py +79 -0
  492. capo_lambda/types/long.py +5 -0
  493. capo_lambda/types/master_region.py +5 -0
  494. capo_lambda/types/max_age.py +5 -0
  495. capo_lambda/types/max_fifty_list_items.py +5 -0
  496. capo_lambda/types/max_function_event_invoke_config_list_items.py +5 -0
  497. capo_lambda/types/max_items.py +5 -0
  498. capo_lambda/types/max_layer_list_items.py +5 -0
  499. capo_lambda/types/max_list_items.py +5 -0
  500. capo_lambda/types/max_provisioned_concurrency_config_list_items.py +5 -0
  501. capo_lambda/types/maximum_batching_window_in_seconds.py +5 -0
  502. capo_lambda/types/maximum_concurrency.py +5 -0
  503. capo_lambda/types/maximum_event_age_in_seconds.py +5 -0
  504. capo_lambda/types/maximum_number_of_pollers.py +5 -0
  505. capo_lambda/types/maximum_record_age_in_seconds.py +5 -0
  506. capo_lambda/types/maximum_retry_attempts.py +5 -0
  507. capo_lambda/types/maximum_retry_attempts_event_source_mapping.py +5 -0
  508. capo_lambda/types/memory_size.py +5 -0
  509. capo_lambda/types/method.py +5 -0
  510. capo_lambda/types/metric_target_value.py +5 -0
  511. capo_lambda/types/minimum_number_of_pollers.py +5 -0
  512. capo_lambda/types/name_spaced_function_arn.py +5 -0
  513. capo_lambda/types/namespaced_function_name.py +5 -0
  514. capo_lambda/types/namespaced_statement_id.py +5 -0
  515. capo_lambda/types/non_negative_integer.py +5 -0
  516. capo_lambda/types/nullable_boolean.py +5 -0
  517. capo_lambda/types/numeric_latest_published_or_alias_qualifier.py +5 -0
  518. capo_lambda/types/on_failure.py +28 -0
  519. capo_lambda/types/on_success.py +28 -0
  520. capo_lambda/types/operation.py +205 -0
  521. capo_lambda/types/operation_action.py +20 -0
  522. capo_lambda/types/operation_id.py +5 -0
  523. capo_lambda/types/operation_name.py +5 -0
  524. capo_lambda/types/operation_payload.py +5 -0
  525. capo_lambda/types/operation_status.py +23 -0
  526. capo_lambda/types/operation_sub_type.py +5 -0
  527. capo_lambda/types/operation_type.py +21 -0
  528. capo_lambda/types/operation_update.py +174 -0
  529. capo_lambda/types/operation_updates.py +27 -0
  530. capo_lambda/types/operations.py +27 -0
  531. capo_lambda/types/organization_id.py +5 -0
  532. capo_lambda/types/origin.py +5 -0
  533. capo_lambda/types/output_payload.py +5 -0
  534. capo_lambda/types/package_type.py +17 -0
  535. capo_lambda/types/parallelization_factor.py +5 -0
  536. capo_lambda/types/pattern.py +5 -0
  537. capo_lambda/types/per_execution_environment_max_concurrency.py +5 -0
  538. capo_lambda/types/positive_integer.py +5 -0
  539. capo_lambda/types/principal.py +5 -0
  540. capo_lambda/types/principal_org_id.py +5 -0
  541. capo_lambda/types/provisioned_concurrency_config_list.py +37 -0
  542. capo_lambda/types/provisioned_concurrency_config_list_item.py +101 -0
  543. capo_lambda/types/provisioned_concurrency_status_enum.py +18 -0
  544. capo_lambda/types/provisioned_poller_config.py +48 -0
  545. capo_lambda/types/provisioned_poller_group_name.py +5 -0
  546. capo_lambda/types/publish_layer_version_request.py +98 -0
  547. capo_lambda/types/publish_layer_version_response.py +127 -0
  548. capo_lambda/types/publish_version_request.py +65 -0
  549. capo_lambda/types/published_function_qualifier.py +5 -0
  550. capo_lambda/types/put_function_code_signing_config_request.py +38 -0
  551. capo_lambda/types/put_function_code_signing_config_response.py +45 -0
  552. capo_lambda/types/put_function_concurrency_request.py +38 -0
  553. capo_lambda/types/put_function_event_invoke_config_request.py +66 -0
  554. capo_lambda/types/put_function_recursion_config_request.py +44 -0
  555. capo_lambda/types/put_function_recursion_config_response.py +36 -0
  556. capo_lambda/types/put_function_scaling_config_request.py +50 -0
  557. capo_lambda/types/put_function_scaling_config_response.py +36 -0
  558. capo_lambda/types/put_provisioned_concurrency_config_request.py +43 -0
  559. capo_lambda/types/put_provisioned_concurrency_config_response.py +94 -0
  560. capo_lambda/types/put_runtime_management_config_request.py +58 -0
  561. capo_lambda/types/put_runtime_management_config_response.py +60 -0
  562. capo_lambda/types/qualifier.py +5 -0
  563. capo_lambda/types/queue.py +5 -0
  564. capo_lambda/types/queues.py +17 -0
  565. capo_lambda/types/recursive_loop.py +17 -0
  566. capo_lambda/types/remove_layer_version_permission_request.py +33 -0
  567. capo_lambda/types/remove_permission_request.py +35 -0
  568. capo_lambda/types/replay_children.py +5 -0
  569. capo_lambda/types/reserved_concurrent_executions.py +5 -0
  570. capo_lambda/types/resource_arn.py +5 -0
  571. capo_lambda/types/response_streaming_invocation_type.py +17 -0
  572. capo_lambda/types/retention_period_in_days.py +5 -0
  573. capo_lambda/types/retry_details.py +38 -0
  574. capo_lambda/types/reverse_order.py +5 -0
  575. capo_lambda/types/role_arn.py +5 -0
  576. capo_lambda/types/runtime.py +61 -0
  577. capo_lambda/types/runtime_version_arn.py +5 -0
  578. capo_lambda/types/runtime_version_config.py +45 -0
  579. capo_lambda/types/runtime_version_error.py +35 -0
  580. capo_lambda/types/s3_bucket.py +5 -0
  581. capo_lambda/types/s3_key.py +5 -0
  582. capo_lambda/types/s3_object_version.py +5 -0
  583. capo_lambda/types/scaling_config.py +30 -0
  584. capo_lambda/types/schema_registry_event_record_format.py +17 -0
  585. capo_lambda/types/schema_registry_uri.py +5 -0
  586. capo_lambda/types/security_group_id.py +5 -0
  587. capo_lambda/types/security_group_ids.py +19 -0
  588. capo_lambda/types/self_managed_event_source.py +36 -0
  589. capo_lambda/types/self_managed_kafka_event_source_config.py +49 -0
  590. capo_lambda/types/send_durable_execution_callback_failure_request.py +35 -0
  591. capo_lambda/types/send_durable_execution_callback_failure_response.py +18 -0
  592. capo_lambda/types/send_durable_execution_callback_heartbeat_request.py +24 -0
  593. capo_lambda/types/send_durable_execution_callback_heartbeat_response.py +18 -0
  594. capo_lambda/types/send_durable_execution_callback_success_request.py +41 -0
  595. capo_lambda/types/send_durable_execution_callback_success_response.py +18 -0
  596. capo_lambda/types/sensitive_string.py +5 -0
  597. capo_lambda/types/signing_profile_version_arns.py +17 -0
  598. capo_lambda/types/snap_start.py +36 -0
  599. capo_lambda/types/snap_start_apply_on.py +17 -0
  600. capo_lambda/types/snap_start_optimization_status.py +17 -0
  601. capo_lambda/types/snap_start_response.py +57 -0
  602. capo_lambda/types/source_access_configuration.py +41 -0
  603. capo_lambda/types/source_access_configurations.py +29 -0
  604. capo_lambda/types/source_access_type.py +23 -0
  605. capo_lambda/types/source_owner.py +5 -0
  606. capo_lambda/types/stack_trace_entries.py +19 -0
  607. capo_lambda/types/stack_trace_entry.py +5 -0
  608. capo_lambda/types/state.py +23 -0
  609. capo_lambda/types/state_reason.py +5 -0
  610. capo_lambda/types/state_reason_code.py +53 -0
  611. capo_lambda/types/statement_id.py +5 -0
  612. capo_lambda/types/step_details.py +68 -0
  613. capo_lambda/types/step_failed_details.py +51 -0
  614. capo_lambda/types/step_options.py +30 -0
  615. capo_lambda/types/step_started_details.py +18 -0
  616. capo_lambda/types/step_succeeded_details.py +51 -0
  617. capo_lambda/types/stop_durable_execution_request.py +35 -0
  618. capo_lambda/types/stop_durable_execution_response.py +41 -0
  619. capo_lambda/types/string.py +5 -0
  620. capo_lambda/types/string_list.py +17 -0
  621. capo_lambda/types/subnet_id.py +5 -0
  622. capo_lambda/types/subnet_ids.py +17 -0
  623. capo_lambda/types/system_log_level.py +18 -0
  624. capo_lambda/types/tag_key.py +5 -0
  625. capo_lambda/types/tag_key_list.py +17 -0
  626. capo_lambda/types/tag_resource_request.py +38 -0
  627. capo_lambda/types/tag_value.py +5 -0
  628. capo_lambda/types/taggable_resource.py +5 -0
  629. capo_lambda/types/tags.py +26 -0
  630. capo_lambda/types/tags_error.py +39 -0
  631. capo_lambda/types/tags_error_code.py +5 -0
  632. capo_lambda/types/tags_error_message.py +5 -0
  633. capo_lambda/types/target_tracking_scaling_policy.py +53 -0
  634. capo_lambda/types/tenancy_config.py +41 -0
  635. capo_lambda/types/tenant_id.py +5 -0
  636. capo_lambda/types/tenant_isolation_mode.py +14 -0
  637. capo_lambda/types/throttle_reason.py +21 -0
  638. capo_lambda/types/timeout.py +5 -0
  639. capo_lambda/types/timestamp.py +5 -0
  640. capo_lambda/types/topic.py +5 -0
  641. capo_lambda/types/topics.py +17 -0
  642. capo_lambda/types/trace_header.py +28 -0
  643. capo_lambda/types/tracing_config.py +32 -0
  644. capo_lambda/types/tracing_config_response.py +32 -0
  645. capo_lambda/types/tracing_mode.py +17 -0
  646. capo_lambda/types/truncated.py +5 -0
  647. capo_lambda/types/tumbling_window_in_seconds.py +5 -0
  648. capo_lambda/types/unqualified_function_name.py +5 -0
  649. capo_lambda/types/unreserved_concurrent_executions.py +5 -0
  650. capo_lambda/types/untag_resource_request.py +27 -0
  651. capo_lambda/types/update_alias_request.py +71 -0
  652. capo_lambda/types/update_capacity_provider_request.py +47 -0
  653. capo_lambda/types/update_capacity_provider_response.py +41 -0
  654. capo_lambda/types/update_code_signing_config_request.py +73 -0
  655. capo_lambda/types/update_code_signing_config_response.py +43 -0
  656. capo_lambda/types/update_event_source_mapping_request.py +326 -0
  657. capo_lambda/types/update_function_code_request.py +129 -0
  658. capo_lambda/types/update_function_configuration_request.py +278 -0
  659. capo_lambda/types/update_function_event_invoke_config_request.py +66 -0
  660. capo_lambda/types/update_function_url_config_request.py +72 -0
  661. capo_lambda/types/update_function_url_config_response.py +104 -0
  662. capo_lambda/types/update_runtime_on.py +18 -0
  663. capo_lambda/types/uri.py +5 -0
  664. capo_lambda/types/version.py +5 -0
  665. capo_lambda/types/version_with_latest_published.py +5 -0
  666. capo_lambda/types/vpc_config.py +64 -0
  667. capo_lambda/types/vpc_config_response.py +71 -0
  668. capo_lambda/types/vpc_id.py +5 -0
  669. capo_lambda/types/wait_cancelled_details.py +32 -0
  670. capo_lambda/types/wait_details.py +42 -0
  671. capo_lambda/types/wait_options.py +28 -0
  672. capo_lambda/types/wait_started_details.py +51 -0
  673. capo_lambda/types/wait_succeeded_details.py +28 -0
  674. capo_lambda/types/weight.py +5 -0
  675. capo_lambda/types/working_directory.py +5 -0
  676. capo_lambda/types/x_amzn_trace_id.py +5 -0
  677. capo_lambda-0.5.0.dist-info/METADATA +97 -0
  678. capo_lambda-0.5.0.dist-info/RECORD +681 -0
  679. capo_lambda-0.5.0.dist-info/WHEEL +5 -0
  680. capo_lambda-0.5.0.dist-info/licenses/LICENSE +21 -0
  681. capo_lambda-0.5.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,238 @@
1
+ """Shared Amazon eventstream binary-format runtime.
2
+
3
+ Hand-written, not regenerated. Provides framing, header encoding, and
4
+ checksum validation for Smithy event-stream messages.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import datetime
10
+ import uuid
11
+ import zlib
12
+ from collections.abc import AsyncIterator, Callable, Iterator
13
+ from dataclasses import dataclass, field
14
+ from typing import TypeVar, Union
15
+
16
+ HeaderValue = Union[bool, int, bytes, str, datetime.datetime, uuid.UUID]
17
+ T = TypeVar("T")
18
+
19
+
20
+ # Header type constants from the Amazon eventstream specification.
21
+ _TRUE_HEADER = 0x00
22
+ _FALSE_HEADER = 0x01
23
+ _BYTE_HEADER = 0x02
24
+ _SHORT_HEADER = 0x03
25
+ _INTEGER_HEADER = 0x04
26
+ _LONG_HEADER = 0x05
27
+ _BYTE_ARRAY_HEADER = 0x06
28
+ _STRING_HEADER = 0x07
29
+ _TIMESTAMP_HEADER = 0x08
30
+ _UUID_HEADER = 0x09
31
+
32
+
33
+ def _encode_header_value(value: HeaderValue) -> bytes:
34
+ if isinstance(value, bool):
35
+ return bytes([_TRUE_HEADER if value else _FALSE_HEADER])
36
+ if isinstance(value, int):
37
+ if -128 <= value <= 127:
38
+ return bytes([_BYTE_HEADER]) + value.to_bytes(1, "big", signed=True)
39
+ if -32768 <= value <= 32767:
40
+ return bytes([_SHORT_HEADER]) + value.to_bytes(2, "big", signed=True)
41
+ if -2147483648 <= value <= 2147483647:
42
+ return bytes([_INTEGER_HEADER]) + value.to_bytes(4, "big", signed=True)
43
+ # Fall through to signed 64-bit.
44
+ return bytes([_LONG_HEADER]) + value.to_bytes(8, "big", signed=True)
45
+ if isinstance(value, bytes):
46
+ return bytes([_BYTE_ARRAY_HEADER]) + len(value).to_bytes(2, "big") + value
47
+ if isinstance(value, str):
48
+ encoded = value.encode("utf-8")
49
+ return bytes([_STRING_HEADER]) + len(encoded).to_bytes(2, "big") + encoded
50
+ if isinstance(value, datetime.datetime):
51
+ millis = int(value.timestamp() * 1000)
52
+ return bytes([_TIMESTAMP_HEADER]) + millis.to_bytes(8, "big", signed=True)
53
+ if isinstance(value, uuid.UUID):
54
+ return bytes([_UUID_HEADER]) + value.bytes
55
+ raise TypeError(f"unsupported eventstream header value: {value!r}")
56
+
57
+
58
+ def _decode_header_value(
59
+ type_byte: int, data: bytes | bytearray, pos: int
60
+ ) -> tuple[HeaderValue, int]:
61
+ if type_byte == _TRUE_HEADER:
62
+ return True, pos
63
+ if type_byte == _FALSE_HEADER:
64
+ return False, pos
65
+ if type_byte == _BYTE_HEADER:
66
+ return int.from_bytes(data[pos : pos + 1], "big", signed=True), pos + 1
67
+ if type_byte == _SHORT_HEADER:
68
+ return int.from_bytes(data[pos : pos + 2], "big", signed=True), pos + 2
69
+ if type_byte == _INTEGER_HEADER:
70
+ return int.from_bytes(data[pos : pos + 4], "big", signed=True), pos + 4
71
+ if type_byte == _LONG_HEADER:
72
+ return int.from_bytes(data[pos : pos + 8], "big", signed=True), pos + 8
73
+ if type_byte == _BYTE_ARRAY_HEADER:
74
+ length = int.from_bytes(data[pos : pos + 2], "big")
75
+ pos += 2
76
+ return bytes(data[pos : pos + length]), pos + length
77
+ if type_byte == _STRING_HEADER:
78
+ length = int.from_bytes(data[pos : pos + 2], "big")
79
+ pos += 2
80
+ return data[pos : pos + length].decode("utf-8"), pos + length
81
+ if type_byte == _TIMESTAMP_HEADER:
82
+ millis = int.from_bytes(data[pos : pos + 8], "big", signed=True)
83
+ return (
84
+ datetime.datetime.fromtimestamp(millis / 1000, tz=datetime.timezone.utc),
85
+ pos + 8,
86
+ )
87
+ if type_byte == _UUID_HEADER:
88
+ return uuid.UUID(bytes=bytes(data[pos : pos + 16])), pos + 16
89
+ raise ValueError(f"unsupported eventstream header type: {type_byte:#x}")
90
+
91
+
92
+ def _encode_headers(headers: dict[str, HeaderValue]) -> bytes:
93
+ parts: list[bytes] = []
94
+ for name, value in headers.items():
95
+ name_bytes = name.encode("utf-8")
96
+ if len(name_bytes) > 255:
97
+ raise ValueError(f"eventstream header name too long: {name!r}")
98
+ parts.append(bytes([len(name_bytes)]) + name_bytes)
99
+ parts.append(_encode_header_value(value))
100
+ return b"".join(parts)
101
+
102
+
103
+ def _decode_headers(data: bytes | bytearray) -> dict[str, HeaderValue]:
104
+ pos = 0
105
+ headers: dict[str, HeaderValue] = {}
106
+ while pos < len(data):
107
+ name_len = data[pos]
108
+ pos += 1
109
+ name = data[pos : pos + name_len].decode("utf-8")
110
+ pos += name_len
111
+ type_byte = data[pos]
112
+ pos += 1
113
+ value, pos = _decode_header_value(type_byte, data, pos)
114
+ headers[name] = value
115
+ return headers
116
+
117
+
118
+ @dataclass
119
+ class Message:
120
+ """A single Amazon eventstream message."""
121
+
122
+ headers: dict[str, HeaderValue] = field(default_factory=dict)
123
+ payload: bytes = b""
124
+
125
+ def encode(self) -> bytes:
126
+ """Serialize this message into eventstream framing bytes."""
127
+ headers_bytes = _encode_headers(self.headers)
128
+ headers_length = len(headers_bytes)
129
+ payload = self.payload
130
+ total_length = 12 + headers_length + len(payload)
131
+
132
+ prelude = total_length.to_bytes(4, "big") + headers_length.to_bytes(4, "big")
133
+ prelude_crc = zlib.crc32(prelude).to_bytes(4, "big")
134
+ message_body = prelude + prelude_crc + headers_bytes + payload
135
+ message_crc = zlib.crc32(message_body).to_bytes(4, "big")
136
+ return message_body + message_crc
137
+
138
+
139
+ @dataclass
140
+ class MessageDecoder:
141
+ """Stateful decoder that turns byte chunks into :class:`Message` objects.
142
+
143
+ ``feed`` may emit zero, one, or many messages for each chunk. Partial
144
+ frames are buffered until the next chunk completes them.
145
+ """
146
+
147
+ _buffer: bytearray = field(default_factory=bytearray, init=False)
148
+
149
+ def feed(self, data: bytes) -> Iterator[Message]:
150
+ """Append ``data`` to the internal buffer and yield any full messages."""
151
+ self._buffer.extend(data)
152
+ while True:
153
+ if len(self._buffer) < 12:
154
+ return
155
+
156
+ total_length = int.from_bytes(self._buffer[:4], "big")
157
+ headers_length = int.from_bytes(self._buffer[4:8], "big")
158
+ prelude = bytes(self._buffer[:8])
159
+ prelude_crc = int.from_bytes(self._buffer[8:12], "big")
160
+
161
+ if total_length < 12 + headers_length:
162
+ raise ValueError(
163
+ f"invalid eventstream message: total_length={total_length} "
164
+ f"is smaller than minimum {12 + headers_length}"
165
+ )
166
+
167
+ message_end = total_length + 4
168
+ if len(self._buffer) < message_end:
169
+ return
170
+
171
+ computed_prelude_crc = zlib.crc32(prelude) & 0xFFFFFFFF
172
+ if computed_prelude_crc != prelude_crc:
173
+ raise ValueError("eventstream prelude checksum mismatch")
174
+
175
+ message_bytes = bytes(self._buffer[:total_length])
176
+ message_crc = int.from_bytes(
177
+ self._buffer[total_length : total_length + 4], "big"
178
+ )
179
+ computed_message_crc = zlib.crc32(message_bytes) & 0xFFFFFFFF
180
+ if computed_message_crc != message_crc:
181
+ raise ValueError("eventstream message checksum mismatch")
182
+
183
+ headers = _decode_headers(self._buffer[12 : 12 + headers_length])
184
+ payload = bytes(self._buffer[12 + headers_length : total_length])
185
+ del self._buffer[:message_end]
186
+ yield Message(headers=headers, payload=payload)
187
+
188
+
189
+ def raw_stream_to_events(
190
+ raw_stream: Iterator[bytes], decoder: MessageDecoder, deser: Callable[[Message], T]
191
+ ) -> Iterator[T]:
192
+ """Map a raw byte iterator into deserialized event objects."""
193
+ for chunk in raw_stream:
194
+ for message in decoder.feed(chunk):
195
+ yield deser(message)
196
+
197
+
198
+ async def async_raw_stream_to_events(
199
+ raw_stream: AsyncIterator[bytes],
200
+ decoder: MessageDecoder,
201
+ deser: Callable[[Message], T],
202
+ ) -> AsyncIterator[T]:
203
+ """Map an async raw byte iterator into deserialized event objects."""
204
+ async for chunk in raw_stream:
205
+ for message in decoder.feed(chunk):
206
+ yield deser(message)
207
+
208
+
209
+ def read_messages(
210
+ raw_stream: Iterator[bytes], decoder: MessageDecoder
211
+ ) -> Iterator[Message]:
212
+ """Yield :class:`Message` objects framed out of a raw byte iterator.
213
+
214
+ Used by RPC event streams (e.g. awsJson) where the first message may be an
215
+ initial-response that must be pulled off before consuming the events.
216
+ """
217
+ for chunk in raw_stream:
218
+ yield from decoder.feed(chunk)
219
+
220
+
221
+ async def async_read_messages(
222
+ raw_stream: AsyncIterator[bytes], decoder: MessageDecoder
223
+ ) -> AsyncIterator[Message]:
224
+ """Async variant of :func:`read_messages`."""
225
+ async for chunk in raw_stream:
226
+ for message in decoder.feed(chunk):
227
+ yield message
228
+
229
+
230
+ __all__ = [
231
+ "HeaderValue",
232
+ "Message",
233
+ "MessageDecoder",
234
+ "async_raw_stream_to_events",
235
+ "async_read_messages",
236
+ "raw_stream_to_events",
237
+ "read_messages",
238
+ ]
@@ -0,0 +1,27 @@
1
+ """Shared XML protocol runtime.
2
+
3
+ Hand-written, not regenerated. Holds re-exports of
4
+ ``xml.etree.ElementTree`` primitives generated code depends on.
5
+ """
6
+
7
+ from xml.etree.ElementTree import Element, SubElement, tostring
8
+ from xml.etree.ElementTree import fromstring as _fromstring
9
+
10
+
11
+ def fromstring(text: str | bytes) -> Element:
12
+ """Parse XML and strip namespaces so generated ``el.find("Tag")``
13
+ lookups match. AWS restXml responses use a default namespace which
14
+ ElementTree otherwise qualifies onto every tag as ``{ns}Tag``."""
15
+ root = _fromstring(text)
16
+ for el in root.iter():
17
+ if el.tag.startswith("{"):
18
+ el.tag = el.tag.rpartition("}")[2]
19
+ return root
20
+
21
+
22
+ __all__ = [
23
+ "Element",
24
+ "SubElement",
25
+ "fromstring",
26
+ "tostring",
27
+ ]