capo-lambda-microvms 0.1.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 (180) hide show
  1. capo_lambda_microvms/__init__.py +73 -0
  2. capo_lambda_microvms/_async.py +25 -0
  3. capo_lambda_microvms/_auth/_identity.py +16 -0
  4. capo_lambda_microvms/_auth/_providers.py +886 -0
  5. capo_lambda_microvms/_auth/_signers.py +125 -0
  6. capo_lambda_microvms/_auth/_sigv4.py +579 -0
  7. capo_lambda_microvms/_auth/_zapros_handler.py +80 -0
  8. capo_lambda_microvms/_body.py +221 -0
  9. capo_lambda_microvms/_iter.py +113 -0
  10. capo_lambda_microvms/_operations/lambda_microvms/create_microvm_auth_token.py +181 -0
  11. capo_lambda_microvms/_operations/lambda_microvms/create_microvm_image.py +190 -0
  12. capo_lambda_microvms/_operations/lambda_microvms/create_microvm_shell_auth_token.py +181 -0
  13. capo_lambda_microvms/_operations/lambda_microvms/delete_microvm_image.py +170 -0
  14. capo_lambda_microvms/_operations/lambda_microvms/delete_microvm_image_version.py +174 -0
  15. capo_lambda_microvms/_operations/lambda_microvms/get_microvm.py +171 -0
  16. capo_lambda_microvms/_operations/lambda_microvms/get_microvm_image.py +170 -0
  17. capo_lambda_microvms/_operations/lambda_microvms/get_microvm_image_build.py +177 -0
  18. capo_lambda_microvms/_operations/lambda_microvms/get_microvm_image_version.py +179 -0
  19. capo_lambda_microvms/_operations/lambda_microvms/list_managed_microvm_image_versions.py +172 -0
  20. capo_lambda_microvms/_operations/lambda_microvms/list_managed_microvm_images.py +162 -0
  21. capo_lambda_microvms/_operations/lambda_microvms/list_microvm_image_builds.py +196 -0
  22. capo_lambda_microvms/_operations/lambda_microvms/list_microvm_image_versions.py +172 -0
  23. capo_lambda_microvms/_operations/lambda_microvms/list_microvm_images.py +164 -0
  24. capo_lambda_microvms/_operations/lambda_microvms/list_microvms.py +175 -0
  25. capo_lambda_microvms/_operations/lambda_microvms/list_tags.py +182 -0
  26. capo_lambda_microvms/_operations/lambda_microvms/resume_microvm.py +167 -0
  27. capo_lambda_microvms/_operations/lambda_microvms/run_microvm.py +187 -0
  28. capo_lambda_microvms/_operations/lambda_microvms/suspend_microvm.py +167 -0
  29. capo_lambda_microvms/_operations/lambda_microvms/tag_resource.py +164 -0
  30. capo_lambda_microvms/_operations/lambda_microvms/terminate_microvm.py +167 -0
  31. capo_lambda_microvms/_operations/lambda_microvms/untag_resource.py +162 -0
  32. capo_lambda_microvms/_operations/lambda_microvms/update_microvm_image.py +191 -0
  33. capo_lambda_microvms/_operations/lambda_microvms/update_microvm_image_version.py +190 -0
  34. capo_lambda_microvms/_pagination.py +21 -0
  35. capo_lambda_microvms/_protocol/__init__.py +1 -0
  36. capo_lambda_microvms/_protocol/errors.py +93 -0
  37. capo_lambda_microvms/_protocol/eventstream.py +240 -0
  38. capo_lambda_microvms/_protocol/serialize.py +47 -0
  39. capo_lambda_microvms/_protocol/xml.py +33 -0
  40. capo_lambda_microvms/_resources/lambda_microvms/microvm.py +983 -0
  41. capo_lambda_microvms/_resources/lambda_microvms/microvm_image.py +1394 -0
  42. capo_lambda_microvms/_rule_engine/__init__.py +0 -0
  43. capo_lambda_microvms/_rule_engine/_aws_partition.py +160 -0
  44. capo_lambda_microvms/_rule_engine/_endpoint_rule_set.py +135 -0
  45. capo_lambda_microvms/_rule_engine/_endpoint_runtime.py +389 -0
  46. capo_lambda_microvms/_services/_aws_config.py +160 -0
  47. capo_lambda_microvms/_services/_pipeline.py +247 -0
  48. capo_lambda_microvms/_services/async_lambda_microvms.py +1822 -0
  49. capo_lambda_microvms/_services/lambda_microvms.py +1798 -0
  50. capo_lambda_microvms/errors/__init__.py +49 -0
  51. capo_lambda_microvms/errors/_base.py +94 -0
  52. capo_lambda_microvms/errors/access_denied_exception.py +46 -0
  53. capo_lambda_microvms/errors/conflict_exception.py +56 -0
  54. capo_lambda_microvms/errors/insufficient_capacity_exception.py +49 -0
  55. capo_lambda_microvms/errors/internal_server_exception.py +48 -0
  56. capo_lambda_microvms/errors/invalid_parameter_value_exception.py +54 -0
  57. capo_lambda_microvms/errors/resource_conflict_exception.py +52 -0
  58. capo_lambda_microvms/errors/resource_not_found_exception.py +59 -0
  59. capo_lambda_microvms/errors/service_exception.py +50 -0
  60. capo_lambda_microvms/errors/service_quota_exceeded_exception.py +72 -0
  61. capo_lambda_microvms/errors/throttling_exception.py +58 -0
  62. capo_lambda_microvms/errors/too_many_requests_exception.py +52 -0
  63. capo_lambda_microvms/errors/validation_exception.py +44 -0
  64. capo_lambda_microvms/py.typed +0 -0
  65. capo_lambda_microvms/types/_prelude/blob.py +12 -0
  66. capo_lambda_microvms/types/_prelude/timestamp.py +17 -0
  67. capo_lambda_microvms/types/architecture.py +14 -0
  68. capo_lambda_microvms/types/auth_token_key.py +5 -0
  69. capo_lambda_microvms/types/auth_token_value.py +5 -0
  70. capo_lambda_microvms/types/build_state.py +19 -0
  71. capo_lambda_microvms/types/capability.py +15 -0
  72. capo_lambda_microvms/types/capability_list.py +29 -0
  73. capo_lambda_microvms/types/chipset.py +14 -0
  74. capo_lambda_microvms/types/cloud_watch_logging.py +34 -0
  75. capo_lambda_microvms/types/code_artifact.py +32 -0
  76. capo_lambda_microvms/types/cpu_configuration.py +39 -0
  77. capo_lambda_microvms/types/cpu_configuration_list.py +31 -0
  78. capo_lambda_microvms/types/create_microvm_auth_token_request.py +62 -0
  79. capo_lambda_microvms/types/create_microvm_auth_token_response.py +39 -0
  80. capo_lambda_microvms/types/create_microvm_image_request.py +219 -0
  81. capo_lambda_microvms/types/create_microvm_image_response.py +294 -0
  82. capo_lambda_microvms/types/create_microvm_shell_auth_token_request.py +38 -0
  83. capo_lambda_microvms/types/create_microvm_shell_auth_token_response.py +41 -0
  84. capo_lambda_microvms/types/delete_microvm_image_input.py +26 -0
  85. capo_lambda_microvms/types/delete_microvm_image_output.py +49 -0
  86. capo_lambda_microvms/types/delete_microvm_image_version_input.py +29 -0
  87. capo_lambda_microvms/types/delete_microvm_image_version_output.py +65 -0
  88. capo_lambda_microvms/types/environment_variable_key.py +5 -0
  89. capo_lambda_microvms/types/environment_variable_map.py +29 -0
  90. capo_lambda_microvms/types/environment_variable_value.py +5 -0
  91. capo_lambda_microvms/types/get_microvm_image_build_input.py +31 -0
  92. capo_lambda_microvms/types/get_microvm_image_build_output.py +144 -0
  93. capo_lambda_microvms/types/get_microvm_image_input.py +26 -0
  94. capo_lambda_microvms/types/get_microvm_image_output.py +117 -0
  95. capo_lambda_microvms/types/get_microvm_image_version_input.py +29 -0
  96. capo_lambda_microvms/types/get_microvm_image_version_output.py +308 -0
  97. capo_lambda_microvms/types/get_microvm_request.py +26 -0
  98. capo_lambda_microvms/types/get_microvm_response.py +188 -0
  99. capo_lambda_microvms/types/hook_state.py +18 -0
  100. capo_lambda_microvms/types/hooks.py +65 -0
  101. capo_lambda_microvms/types/idle_policy.py +40 -0
  102. capo_lambda_microvms/types/image_name.py +6 -0
  103. capo_lambda_microvms/types/list_managed_microvm_image_versions_input.py +31 -0
  104. capo_lambda_microvms/types/list_managed_microvm_image_versions_output.py +52 -0
  105. capo_lambda_microvms/types/list_managed_microvm_images_input.py +26 -0
  106. capo_lambda_microvms/types/list_managed_microvm_images_output.py +50 -0
  107. capo_lambda_microvms/types/list_microvm_image_builds_input.py +44 -0
  108. capo_lambda_microvms/types/list_microvm_image_builds_output.py +50 -0
  109. capo_lambda_microvms/types/list_microvm_image_versions_input.py +31 -0
  110. capo_lambda_microvms/types/list_microvm_image_versions_output.py +50 -0
  111. capo_lambda_microvms/types/list_microvm_images_request.py +31 -0
  112. capo_lambda_microvms/types/list_microvm_images_response.py +48 -0
  113. capo_lambda_microvms/types/list_microvms_request.py +33 -0
  114. capo_lambda_microvms/types/list_microvms_response.py +46 -0
  115. capo_lambda_microvms/types/list_of_port_specification.py +31 -0
  116. capo_lambda_microvms/types/list_tags_request.py +24 -0
  117. capo_lambda_microvms/types/list_tags_response.py +32 -0
  118. capo_lambda_microvms/types/logging.py +65 -0
  119. capo_lambda_microvms/types/logging_disabled.py +18 -0
  120. capo_lambda_microvms/types/managed_microvm_image_summary.py +66 -0
  121. capo_lambda_microvms/types/managed_microvm_image_summary_list.py +39 -0
  122. capo_lambda_microvms/types/managed_microvm_image_version.py +94 -0
  123. capo_lambda_microvms/types/managed_microvm_image_version_list.py +39 -0
  124. capo_lambda_microvms/types/managed_microvm_image_version_status.py +18 -0
  125. capo_lambda_microvms/types/microvm_hooks.py +108 -0
  126. capo_lambda_microvms/types/microvm_identifier.py +6 -0
  127. capo_lambda_microvms/types/microvm_image_arn.py +6 -0
  128. capo_lambda_microvms/types/microvm_image_build_summaries.py +37 -0
  129. capo_lambda_microvms/types/microvm_image_build_summary.py +125 -0
  130. capo_lambda_microvms/types/microvm_image_hooks.py +66 -0
  131. capo_lambda_microvms/types/microvm_image_identifier.py +6 -0
  132. capo_lambda_microvms/types/microvm_image_state.py +24 -0
  133. capo_lambda_microvms/types/microvm_image_summaries.py +35 -0
  134. capo_lambda_microvms/types/microvm_image_summary.py +90 -0
  135. capo_lambda_microvms/types/microvm_image_version_state.py +22 -0
  136. capo_lambda_microvms/types/microvm_image_version_status.py +17 -0
  137. capo_lambda_microvms/types/microvm_image_version_summary.py +300 -0
  138. capo_lambda_microvms/types/microvm_image_version_summary_list.py +39 -0
  139. capo_lambda_microvms/types/microvm_item.py +82 -0
  140. capo_lambda_microvms/types/microvm_item_list.py +29 -0
  141. capo_lambda_microvms/types/microvm_state.py +22 -0
  142. capo_lambda_microvms/types/network_connector.py +5 -0
  143. capo_lambda_microvms/types/network_connector_list.py +19 -0
  144. capo_lambda_microvms/types/non_blank_string.py +6 -0
  145. capo_lambda_microvms/types/port_number.py +6 -0
  146. capo_lambda_microvms/types/port_range.py +38 -0
  147. capo_lambda_microvms/types/port_specification.py +63 -0
  148. capo_lambda_microvms/types/positive_integer.py +5 -0
  149. capo_lambda_microvms/types/resources.py +26 -0
  150. capo_lambda_microvms/types/resources_list.py +29 -0
  151. capo_lambda_microvms/types/resume_microvm_request.py +26 -0
  152. capo_lambda_microvms/types/resume_microvm_response.py +18 -0
  153. capo_lambda_microvms/types/role_arn.py +6 -0
  154. capo_lambda_microvms/types/run_hook_payload.py +5 -0
  155. capo_lambda_microvms/types/run_microvm_request.py +139 -0
  156. capo_lambda_microvms/types/run_microvm_response.py +188 -0
  157. capo_lambda_microvms/types/snapshot_build.py +35 -0
  158. capo_lambda_microvms/types/string.py +5 -0
  159. capo_lambda_microvms/types/suspend_microvm_request.py +26 -0
  160. capo_lambda_microvms/types/suspend_microvm_response.py +18 -0
  161. capo_lambda_microvms/types/tag_key.py +5 -0
  162. capo_lambda_microvms/types/tag_key_list.py +17 -0
  163. capo_lambda_microvms/types/tag_resource_request.py +38 -0
  164. capo_lambda_microvms/types/tag_value.py +5 -0
  165. capo_lambda_microvms/types/taggable_resource.py +6 -0
  166. capo_lambda_microvms/types/tags.py +29 -0
  167. capo_lambda_microvms/types/terminate_microvm_request.py +26 -0
  168. capo_lambda_microvms/types/terminate_microvm_response.py +18 -0
  169. capo_lambda_microvms/types/token_parts.py +29 -0
  170. capo_lambda_microvms/types/untag_resource_request.py +27 -0
  171. capo_lambda_microvms/types/update_microvm_image_request.py +205 -0
  172. capo_lambda_microvms/types/update_microvm_image_response.py +284 -0
  173. capo_lambda_microvms/types/update_microvm_image_version_request.py +51 -0
  174. capo_lambda_microvms/types/update_microvm_image_version_response.py +312 -0
  175. capo_lambda_microvms/types/version.py +5 -0
  176. capo_lambda_microvms-0.1.0.dist-info/METADATA +103 -0
  177. capo_lambda_microvms-0.1.0.dist-info/RECORD +180 -0
  178. capo_lambda_microvms-0.1.0.dist-info/WHEEL +5 -0
  179. capo_lambda_microvms-0.1.0.dist-info/licenses/LICENSE +21 -0
  180. capo_lambda_microvms-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,219 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#CreateMicrovmImageRequest``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import NotRequired, TypedDict
6
+
7
+ from capo_lambda_microvms.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_lambda_microvms.types.capability_list
11
+ import capo_lambda_microvms.types.code_artifact
12
+ import capo_lambda_microvms.types.cpu_configuration_list
13
+ import capo_lambda_microvms.types.environment_variable_map
14
+ import capo_lambda_microvms.types.hooks
15
+ import capo_lambda_microvms.types.image_name
16
+ import capo_lambda_microvms.types.logging
17
+ import capo_lambda_microvms.types.network_connector_list
18
+ import capo_lambda_microvms.types.non_blank_string
19
+ import capo_lambda_microvms.types.resources_list
20
+ import capo_lambda_microvms.types.role_arn
21
+ import capo_lambda_microvms.types.tags
22
+ import capo_lambda_microvms.types.version
23
+
24
+
25
+ class CreateMicrovmImageRequest(TypedDict, closed=True):
26
+ base_image_arn: "capo_lambda_microvms.types.non_blank_string.NonBlankString"
27
+ """<p>The ARN of the Lambda-managed base MicroVM image to build upon. Use ListManagedMicrovmImages to discover available base images.</p>"""
28
+ base_image_version: NotRequired["capo_lambda_microvms.types.version.Version"]
29
+ """<p>The specific version of the base MicroVM image to use.</p>"""
30
+ build_role_arn: "capo_lambda_microvms.types.role_arn.RoleArn"
31
+ """<p>The ARN of the IAM role assumed during the image build process. This role must have permissions to access the code artifact and any required resources.</p>"""
32
+ description: NotRequired["str"]
33
+ """<p>A description of the MicroVM image.</p>"""
34
+ code_artifact: "capo_lambda_microvms.types.code_artifact.CodeArtifact"
35
+ """<p>The code artifact containing the application code and metadata for the MicroVM image.</p>"""
36
+ logging: NotRequired["capo_lambda_microvms.types.logging.Logging"]
37
+ r"""<p>The logging configuration for build-time and runtime logs. Specify {\"cloudWatch\": {\"logGroup\": \"...\"}} to stream logs to a custom CloudWatch log group, or {\"disabled\": {}} to turn off logging.</p>"""
38
+ egress_network_connectors: NotRequired[
39
+ "capo_lambda_microvms.types.network_connector_list.NetworkConnectorList"
40
+ ]
41
+ """<p>The list of egress network connectors available to the MicroVM at runtime.</p>"""
42
+ cpu_configurations: NotRequired[
43
+ "capo_lambda_microvms.types.cpu_configuration_list.CpuConfigurationList"
44
+ ]
45
+ """<p>The list of supported CPU configurations for the MicroVM.</p>"""
46
+ resources: NotRequired["capo_lambda_microvms.types.resources_list.ResourcesList"]
47
+ """<p>The resource requirements for the MicroVM.</p>"""
48
+ additional_os_capabilities: NotRequired[
49
+ "capo_lambda_microvms.types.capability_list.CapabilityList"
50
+ ]
51
+ """<p>Additional OS capabilities granted to the MicroVM runtime environment.</p>"""
52
+ hooks: NotRequired["capo_lambda_microvms.types.hooks.Hooks"]
53
+ environment_variables: NotRequired[
54
+ "capo_lambda_microvms.types.environment_variable_map.EnvironmentVariableMap"
55
+ ]
56
+ """<p>Environment variables set in the MicroVM runtime environment.</p>"""
57
+ name: "capo_lambda_microvms.types.image_name.ImageName"
58
+ """<p>The name of the MicroVM image. Must be unique within the AWS account.</p>"""
59
+ tags: NotRequired["capo_lambda_microvms.types.tags.Tags"]
60
+ """<p>A set of key-value pairs that you can attach to the resource. Use tags to categorize resources for cost allocation, access control (ABAC), and organization.</p>"""
61
+ client_token: NotRequired["str"]
62
+ """<p>A unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token, the operation returns the successful response without performing any further actions.</p>"""
63
+
64
+
65
+ # --- restJson1 ser/de ---
66
+ def serialize_json(value: CreateMicrovmImageRequest) -> dict:
67
+ out: dict = {}
68
+ out["baseImageArn"] = value["base_image_arn"]
69
+ if "base_image_version" in value:
70
+ out["baseImageVersion"] = value["base_image_version"]
71
+ out["buildRoleArn"] = value["build_role_arn"]
72
+ if "description" in value:
73
+ out["description"] = value["description"]
74
+ import capo_lambda_microvms.types.code_artifact
75
+
76
+ out["codeArtifact"] = capo_lambda_microvms.types.code_artifact.serialize_json(
77
+ value["code_artifact"]
78
+ )
79
+ if "logging" in value:
80
+ import capo_lambda_microvms.types.logging
81
+
82
+ out["logging"] = capo_lambda_microvms.types.logging.serialize_json(
83
+ value["logging"]
84
+ )
85
+ if "egress_network_connectors" in value:
86
+ import capo_lambda_microvms.types.network_connector_list
87
+
88
+ out["egressNetworkConnectors"] = (
89
+ capo_lambda_microvms.types.network_connector_list.serialize_json(
90
+ value["egress_network_connectors"]
91
+ )
92
+ )
93
+ if "cpu_configurations" in value:
94
+ import capo_lambda_microvms.types.cpu_configuration_list
95
+
96
+ out["cpuConfigurations"] = (
97
+ capo_lambda_microvms.types.cpu_configuration_list.serialize_json(
98
+ value["cpu_configurations"]
99
+ )
100
+ )
101
+ if "resources" in value:
102
+ import capo_lambda_microvms.types.resources_list
103
+
104
+ out["resources"] = capo_lambda_microvms.types.resources_list.serialize_json(
105
+ value["resources"]
106
+ )
107
+ if "additional_os_capabilities" in value:
108
+ import capo_lambda_microvms.types.capability_list
109
+
110
+ out["additionalOsCapabilities"] = (
111
+ capo_lambda_microvms.types.capability_list.serialize_json(
112
+ value["additional_os_capabilities"]
113
+ )
114
+ )
115
+ if "hooks" in value:
116
+ import capo_lambda_microvms.types.hooks
117
+
118
+ out["hooks"] = capo_lambda_microvms.types.hooks.serialize_json(value["hooks"])
119
+ if "environment_variables" in value:
120
+ import capo_lambda_microvms.types.environment_variable_map
121
+
122
+ out["environmentVariables"] = (
123
+ capo_lambda_microvms.types.environment_variable_map.serialize_json(
124
+ value["environment_variables"]
125
+ )
126
+ )
127
+ out["name"] = value["name"]
128
+ if "tags" in value:
129
+ import capo_lambda_microvms.types.tags
130
+
131
+ out["tags"] = capo_lambda_microvms.types.tags.serialize_json(value["tags"])
132
+ if "client_token" in value:
133
+ out["clientToken"] = value["client_token"]
134
+ return out
135
+
136
+
137
+ def deserialize_json(data: dict) -> CreateMicrovmImageRequest:
138
+ out: CreateMicrovmImageRequest = {} # type: ignore[typeddict-item]
139
+ if data.get("baseImageArn") is not None:
140
+ out["base_image_arn"] = data["baseImageArn"]
141
+ else:
142
+ raise DeserializationError("CreateMicrovmImageRequest.base_image_arn required")
143
+ if data.get("baseImageVersion") is not None:
144
+ out["base_image_version"] = data["baseImageVersion"]
145
+ if data.get("buildRoleArn") is not None:
146
+ out["build_role_arn"] = data["buildRoleArn"]
147
+ else:
148
+ raise DeserializationError("CreateMicrovmImageRequest.build_role_arn required")
149
+ if data.get("description") is not None:
150
+ out["description"] = data["description"]
151
+ if data.get("codeArtifact") is not None:
152
+ import capo_lambda_microvms.types.code_artifact
153
+
154
+ out["code_artifact"] = (
155
+ capo_lambda_microvms.types.code_artifact.deserialize_json(
156
+ data["codeArtifact"]
157
+ )
158
+ )
159
+ else:
160
+ raise DeserializationError("CreateMicrovmImageRequest.code_artifact required")
161
+ if data.get("logging") is not None:
162
+ import capo_lambda_microvms.types.logging
163
+
164
+ out["logging"] = capo_lambda_microvms.types.logging.deserialize_json(
165
+ data["logging"]
166
+ )
167
+ if data.get("egressNetworkConnectors") is not None:
168
+ import capo_lambda_microvms.types.network_connector_list
169
+
170
+ out["egress_network_connectors"] = (
171
+ capo_lambda_microvms.types.network_connector_list.deserialize_json(
172
+ data["egressNetworkConnectors"]
173
+ )
174
+ )
175
+ if data.get("cpuConfigurations") is not None:
176
+ import capo_lambda_microvms.types.cpu_configuration_list
177
+
178
+ out["cpu_configurations"] = (
179
+ capo_lambda_microvms.types.cpu_configuration_list.deserialize_json(
180
+ data["cpuConfigurations"]
181
+ )
182
+ )
183
+ if data.get("resources") is not None:
184
+ import capo_lambda_microvms.types.resources_list
185
+
186
+ out["resources"] = capo_lambda_microvms.types.resources_list.deserialize_json(
187
+ data["resources"]
188
+ )
189
+ if data.get("additionalOsCapabilities") is not None:
190
+ import capo_lambda_microvms.types.capability_list
191
+
192
+ out["additional_os_capabilities"] = (
193
+ capo_lambda_microvms.types.capability_list.deserialize_json(
194
+ data["additionalOsCapabilities"]
195
+ )
196
+ )
197
+ if data.get("hooks") is not None:
198
+ import capo_lambda_microvms.types.hooks
199
+
200
+ out["hooks"] = capo_lambda_microvms.types.hooks.deserialize_json(data["hooks"])
201
+ if data.get("environmentVariables") is not None:
202
+ import capo_lambda_microvms.types.environment_variable_map
203
+
204
+ out["environment_variables"] = (
205
+ capo_lambda_microvms.types.environment_variable_map.deserialize_json(
206
+ data["environmentVariables"]
207
+ )
208
+ )
209
+ if data.get("name") is not None:
210
+ out["name"] = data["name"]
211
+ else:
212
+ raise DeserializationError("CreateMicrovmImageRequest.name required")
213
+ if data.get("tags") is not None:
214
+ import capo_lambda_microvms.types.tags
215
+
216
+ out["tags"] = capo_lambda_microvms.types.tags.deserialize_json(data["tags"])
217
+ if data.get("clientToken") is not None:
218
+ out["client_token"] = data["clientToken"]
219
+ return out
@@ -0,0 +1,294 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#CreateMicrovmImageResponse``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import NotRequired, TypedDict
6
+
7
+ from capo_lambda_microvms.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import datetime
11
+
12
+ import capo_lambda_microvms.types.capability_list
13
+ import capo_lambda_microvms.types.code_artifact
14
+ import capo_lambda_microvms.types.cpu_configuration_list
15
+ import capo_lambda_microvms.types.environment_variable_map
16
+ import capo_lambda_microvms.types.hooks
17
+ import capo_lambda_microvms.types.image_name
18
+ import capo_lambda_microvms.types.logging
19
+ import capo_lambda_microvms.types.microvm_image_state
20
+ import capo_lambda_microvms.types.network_connector_list
21
+ import capo_lambda_microvms.types.non_blank_string
22
+ import capo_lambda_microvms.types.resources_list
23
+ import capo_lambda_microvms.types.role_arn
24
+ import capo_lambda_microvms.types.tags
25
+ import capo_lambda_microvms.types.version
26
+
27
+
28
+ class CreateMicrovmImageResponse(TypedDict, closed=True):
29
+ image_arn: "capo_lambda_microvms.types.non_blank_string.NonBlankString"
30
+ """<p>The ARN of the created MicroVM image.</p>"""
31
+ name: "capo_lambda_microvms.types.image_name.ImageName"
32
+ """<p>The name of the MicroVM image.</p>"""
33
+ state: "capo_lambda_microvms.types.microvm_image_state.MicrovmImageState"
34
+ """<p>The current state of the MicroVM image.</p>"""
35
+ latest_active_image_version: NotRequired[
36
+ "capo_lambda_microvms.types.non_blank_string.NonBlankString"
37
+ ]
38
+ """<p>The latest active version of the MicroVM image.</p>"""
39
+ latest_failed_image_version: NotRequired[
40
+ "capo_lambda_microvms.types.non_blank_string.NonBlankString"
41
+ ]
42
+ """<p>The latest failed version of the MicroVM image, if any.</p>"""
43
+ created_at: "datetime.datetime"
44
+ """<p>The timestamp when the MicroVM image was created.</p>"""
45
+ base_image_arn: "capo_lambda_microvms.types.non_blank_string.NonBlankString"
46
+ """<p>The ARN of the base MicroVM image.</p>"""
47
+ base_image_version: NotRequired["capo_lambda_microvms.types.version.Version"]
48
+ """<p>The specific version of the base MicroVM image.</p>"""
49
+ build_role_arn: "capo_lambda_microvms.types.role_arn.RoleArn"
50
+ """<p>The ARN of the IAM build role.</p>"""
51
+ description: NotRequired["str"]
52
+ """<p>The description of the MicroVM image.</p>"""
53
+ code_artifact: "capo_lambda_microvms.types.code_artifact.CodeArtifact"
54
+ """<p>The code artifact containing the application code and metadata for the MicroVM image.</p>"""
55
+ logging: NotRequired["capo_lambda_microvms.types.logging.Logging"]
56
+ r"""<p>The logging configuration for build-time and runtime logs. Specify {\"cloudWatch\": {\"logGroup\": \"...\"}} to stream logs to a custom CloudWatch log group, or {\"disabled\": {}} to turn off logging.</p>"""
57
+ egress_network_connectors: NotRequired[
58
+ "capo_lambda_microvms.types.network_connector_list.NetworkConnectorList"
59
+ ]
60
+ """<p>The list of egress network connectors available to the MicroVM at runtime.</p>"""
61
+ cpu_configurations: NotRequired[
62
+ "capo_lambda_microvms.types.cpu_configuration_list.CpuConfigurationList"
63
+ ]
64
+ """<p>The list of supported CPU configurations for the MicroVM.</p>"""
65
+ resources: NotRequired["capo_lambda_microvms.types.resources_list.ResourcesList"]
66
+ """<p>The resource requirements for the MicroVM.</p>"""
67
+ additional_os_capabilities: NotRequired[
68
+ "capo_lambda_microvms.types.capability_list.CapabilityList"
69
+ ]
70
+ """<p>Additional OS capabilities granted to the MicroVM runtime environment.</p>"""
71
+ hooks: NotRequired["capo_lambda_microvms.types.hooks.Hooks"]
72
+ environment_variables: NotRequired[
73
+ "capo_lambda_microvms.types.environment_variable_map.EnvironmentVariableMap"
74
+ ]
75
+ """<p>Environment variables set in the MicroVM runtime environment.</p>"""
76
+ tags: NotRequired["capo_lambda_microvms.types.tags.Tags"]
77
+ """<p>A set of key-value pairs that you can attach to the resource. Use tags to categorize resources for cost allocation, access control (ABAC), and organization.</p>"""
78
+ updated_at: NotRequired["datetime.datetime"]
79
+ """<p>The timestamp when the MicroVM image was last updated.</p>"""
80
+ image_version: "capo_lambda_microvms.types.non_blank_string.NonBlankString"
81
+ """<p>The version of the MicroVM image.</p>"""
82
+
83
+
84
+ # --- restJson1 ser/de ---
85
+ def serialize_json(value: CreateMicrovmImageResponse) -> dict:
86
+ out: dict = {}
87
+ out["imageArn"] = value["image_arn"]
88
+ out["name"] = value["name"]
89
+ import capo_lambda_microvms.types.microvm_image_state
90
+
91
+ out["state"] = capo_lambda_microvms.types.microvm_image_state.serialize_json(
92
+ value["state"]
93
+ )
94
+ if "latest_active_image_version" in value:
95
+ out["latestActiveImageVersion"] = value["latest_active_image_version"]
96
+ if "latest_failed_image_version" in value:
97
+ out["latestFailedImageVersion"] = value["latest_failed_image_version"]
98
+ import capo_lambda_microvms.types._prelude.timestamp
99
+
100
+ out["createdAt"] = capo_lambda_microvms.types._prelude.timestamp.serialize_json(
101
+ value["created_at"]
102
+ )
103
+ out["baseImageArn"] = value["base_image_arn"]
104
+ if "base_image_version" in value:
105
+ out["baseImageVersion"] = value["base_image_version"]
106
+ out["buildRoleArn"] = value["build_role_arn"]
107
+ if "description" in value:
108
+ out["description"] = value["description"]
109
+ import capo_lambda_microvms.types.code_artifact
110
+
111
+ out["codeArtifact"] = capo_lambda_microvms.types.code_artifact.serialize_json(
112
+ value["code_artifact"]
113
+ )
114
+ if "logging" in value:
115
+ import capo_lambda_microvms.types.logging
116
+
117
+ out["logging"] = capo_lambda_microvms.types.logging.serialize_json(
118
+ value["logging"]
119
+ )
120
+ if "egress_network_connectors" in value:
121
+ import capo_lambda_microvms.types.network_connector_list
122
+
123
+ out["egressNetworkConnectors"] = (
124
+ capo_lambda_microvms.types.network_connector_list.serialize_json(
125
+ value["egress_network_connectors"]
126
+ )
127
+ )
128
+ if "cpu_configurations" in value:
129
+ import capo_lambda_microvms.types.cpu_configuration_list
130
+
131
+ out["cpuConfigurations"] = (
132
+ capo_lambda_microvms.types.cpu_configuration_list.serialize_json(
133
+ value["cpu_configurations"]
134
+ )
135
+ )
136
+ if "resources" in value:
137
+ import capo_lambda_microvms.types.resources_list
138
+
139
+ out["resources"] = capo_lambda_microvms.types.resources_list.serialize_json(
140
+ value["resources"]
141
+ )
142
+ if "additional_os_capabilities" in value:
143
+ import capo_lambda_microvms.types.capability_list
144
+
145
+ out["additionalOsCapabilities"] = (
146
+ capo_lambda_microvms.types.capability_list.serialize_json(
147
+ value["additional_os_capabilities"]
148
+ )
149
+ )
150
+ if "hooks" in value:
151
+ import capo_lambda_microvms.types.hooks
152
+
153
+ out["hooks"] = capo_lambda_microvms.types.hooks.serialize_json(value["hooks"])
154
+ if "environment_variables" in value:
155
+ import capo_lambda_microvms.types.environment_variable_map
156
+
157
+ out["environmentVariables"] = (
158
+ capo_lambda_microvms.types.environment_variable_map.serialize_json(
159
+ value["environment_variables"]
160
+ )
161
+ )
162
+ if "tags" in value:
163
+ import capo_lambda_microvms.types.tags
164
+
165
+ out["tags"] = capo_lambda_microvms.types.tags.serialize_json(value["tags"])
166
+ if "updated_at" in value:
167
+ import capo_lambda_microvms.types._prelude.timestamp
168
+
169
+ out["updatedAt"] = capo_lambda_microvms.types._prelude.timestamp.serialize_json(
170
+ value["updated_at"]
171
+ )
172
+ out["imageVersion"] = value["image_version"]
173
+ return out
174
+
175
+
176
+ def deserialize_json(data: dict) -> CreateMicrovmImageResponse:
177
+ out: CreateMicrovmImageResponse = {} # type: ignore[typeddict-item]
178
+ if data.get("imageArn") is not None:
179
+ out["image_arn"] = data["imageArn"]
180
+ else:
181
+ raise DeserializationError("CreateMicrovmImageResponse.image_arn required")
182
+ if data.get("name") is not None:
183
+ out["name"] = data["name"]
184
+ else:
185
+ raise DeserializationError("CreateMicrovmImageResponse.name required")
186
+ if data.get("state") is not None:
187
+ import capo_lambda_microvms.types.microvm_image_state
188
+
189
+ out["state"] = capo_lambda_microvms.types.microvm_image_state.deserialize_json(
190
+ data["state"]
191
+ )
192
+ else:
193
+ raise DeserializationError("CreateMicrovmImageResponse.state required")
194
+ if data.get("latestActiveImageVersion") is not None:
195
+ out["latest_active_image_version"] = data["latestActiveImageVersion"]
196
+ if data.get("latestFailedImageVersion") is not None:
197
+ out["latest_failed_image_version"] = data["latestFailedImageVersion"]
198
+ if data.get("createdAt") is not None:
199
+ import capo_lambda_microvms.types._prelude.timestamp
200
+
201
+ out["created_at"] = (
202
+ capo_lambda_microvms.types._prelude.timestamp.deserialize_json(
203
+ data["createdAt"]
204
+ )
205
+ )
206
+ else:
207
+ raise DeserializationError("CreateMicrovmImageResponse.created_at required")
208
+ if data.get("baseImageArn") is not None:
209
+ out["base_image_arn"] = data["baseImageArn"]
210
+ else:
211
+ raise DeserializationError("CreateMicrovmImageResponse.base_image_arn required")
212
+ if data.get("baseImageVersion") is not None:
213
+ out["base_image_version"] = data["baseImageVersion"]
214
+ if data.get("buildRoleArn") is not None:
215
+ out["build_role_arn"] = data["buildRoleArn"]
216
+ else:
217
+ raise DeserializationError("CreateMicrovmImageResponse.build_role_arn required")
218
+ if data.get("description") is not None:
219
+ out["description"] = data["description"]
220
+ if data.get("codeArtifact") is not None:
221
+ import capo_lambda_microvms.types.code_artifact
222
+
223
+ out["code_artifact"] = (
224
+ capo_lambda_microvms.types.code_artifact.deserialize_json(
225
+ data["codeArtifact"]
226
+ )
227
+ )
228
+ else:
229
+ raise DeserializationError("CreateMicrovmImageResponse.code_artifact required")
230
+ if data.get("logging") is not None:
231
+ import capo_lambda_microvms.types.logging
232
+
233
+ out["logging"] = capo_lambda_microvms.types.logging.deserialize_json(
234
+ data["logging"]
235
+ )
236
+ if data.get("egressNetworkConnectors") is not None:
237
+ import capo_lambda_microvms.types.network_connector_list
238
+
239
+ out["egress_network_connectors"] = (
240
+ capo_lambda_microvms.types.network_connector_list.deserialize_json(
241
+ data["egressNetworkConnectors"]
242
+ )
243
+ )
244
+ if data.get("cpuConfigurations") is not None:
245
+ import capo_lambda_microvms.types.cpu_configuration_list
246
+
247
+ out["cpu_configurations"] = (
248
+ capo_lambda_microvms.types.cpu_configuration_list.deserialize_json(
249
+ data["cpuConfigurations"]
250
+ )
251
+ )
252
+ if data.get("resources") is not None:
253
+ import capo_lambda_microvms.types.resources_list
254
+
255
+ out["resources"] = capo_lambda_microvms.types.resources_list.deserialize_json(
256
+ data["resources"]
257
+ )
258
+ if data.get("additionalOsCapabilities") is not None:
259
+ import capo_lambda_microvms.types.capability_list
260
+
261
+ out["additional_os_capabilities"] = (
262
+ capo_lambda_microvms.types.capability_list.deserialize_json(
263
+ data["additionalOsCapabilities"]
264
+ )
265
+ )
266
+ if data.get("hooks") is not None:
267
+ import capo_lambda_microvms.types.hooks
268
+
269
+ out["hooks"] = capo_lambda_microvms.types.hooks.deserialize_json(data["hooks"])
270
+ if data.get("environmentVariables") is not None:
271
+ import capo_lambda_microvms.types.environment_variable_map
272
+
273
+ out["environment_variables"] = (
274
+ capo_lambda_microvms.types.environment_variable_map.deserialize_json(
275
+ data["environmentVariables"]
276
+ )
277
+ )
278
+ if data.get("tags") is not None:
279
+ import capo_lambda_microvms.types.tags
280
+
281
+ out["tags"] = capo_lambda_microvms.types.tags.deserialize_json(data["tags"])
282
+ if data.get("updatedAt") is not None:
283
+ import capo_lambda_microvms.types._prelude.timestamp
284
+
285
+ out["updated_at"] = (
286
+ capo_lambda_microvms.types._prelude.timestamp.deserialize_json(
287
+ data["updatedAt"]
288
+ )
289
+ )
290
+ if data.get("imageVersion") is not None:
291
+ out["image_version"] = data["imageVersion"]
292
+ else:
293
+ raise DeserializationError("CreateMicrovmImageResponse.image_version required")
294
+ return out
@@ -0,0 +1,38 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#CreateMicrovmShellAuthTokenRequest``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ from capo_lambda_microvms.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_lambda_microvms.types.microvm_identifier
11
+ import capo_lambda_microvms.types.positive_integer
12
+
13
+
14
+ class CreateMicrovmShellAuthTokenRequest(TypedDict, closed=True):
15
+ microvm_identifier: (
16
+ "capo_lambda_microvms.types.microvm_identifier.MicrovmIdentifier"
17
+ )
18
+ """<p>The ID of the MicroVM to create a shell authentication token for.</p>"""
19
+ expiration_in_minutes: "capo_lambda_microvms.types.positive_integer.PositiveInteger"
20
+ """<p>The duration in minutes before the shell authentication token expires.</p>"""
21
+
22
+
23
+ # --- restJson1 ser/de ---
24
+ def serialize_json(value: CreateMicrovmShellAuthTokenRequest) -> dict:
25
+ out: dict = {}
26
+ out["expirationInMinutes"] = value["expiration_in_minutes"]
27
+ return out
28
+
29
+
30
+ def deserialize_json(data: dict) -> CreateMicrovmShellAuthTokenRequest:
31
+ out: CreateMicrovmShellAuthTokenRequest = {} # type: ignore[typeddict-item]
32
+ if data.get("expirationInMinutes") is not None:
33
+ out["expiration_in_minutes"] = data["expirationInMinutes"]
34
+ else:
35
+ raise DeserializationError(
36
+ "CreateMicrovmShellAuthTokenRequest.expiration_in_minutes required"
37
+ )
38
+ return out
@@ -0,0 +1,41 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#CreateMicrovmShellAuthTokenResponse``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ from capo_lambda_microvms.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_lambda_microvms.types.token_parts
11
+
12
+
13
+ class CreateMicrovmShellAuthTokenResponse(TypedDict, closed=True):
14
+ auth_token: "capo_lambda_microvms.types.token_parts.TokenParts"
15
+ """<p>The generated shell authentication token key-value pairs for accessing the MicroVM.</p>"""
16
+
17
+
18
+ # --- restJson1 ser/de ---
19
+ def serialize_json(value: CreateMicrovmShellAuthTokenResponse) -> dict:
20
+ out: dict = {}
21
+ import capo_lambda_microvms.types.token_parts
22
+
23
+ out["authToken"] = capo_lambda_microvms.types.token_parts.serialize_json(
24
+ value["auth_token"]
25
+ )
26
+ return out
27
+
28
+
29
+ def deserialize_json(data: dict) -> CreateMicrovmShellAuthTokenResponse:
30
+ out: CreateMicrovmShellAuthTokenResponse = {} # type: ignore[typeddict-item]
31
+ if data.get("authToken") is not None:
32
+ import capo_lambda_microvms.types.token_parts
33
+
34
+ out["auth_token"] = capo_lambda_microvms.types.token_parts.deserialize_json(
35
+ data["authToken"]
36
+ )
37
+ else:
38
+ raise DeserializationError(
39
+ "CreateMicrovmShellAuthTokenResponse.auth_token required"
40
+ )
41
+ return out
@@ -0,0 +1,26 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#DeleteMicrovmImageInput``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ if TYPE_CHECKING:
8
+ import capo_lambda_microvms.types.microvm_image_identifier
9
+
10
+
11
+ class DeleteMicrovmImageInput(TypedDict, closed=True):
12
+ image_identifier: (
13
+ "capo_lambda_microvms.types.microvm_image_identifier.MicrovmImageIdentifier"
14
+ )
15
+ """<p>The unique identifier (ARN or ID) of the MicroVM image to delete.</p>"""
16
+
17
+
18
+ # --- restJson1 ser/de ---
19
+ def serialize_json(value: DeleteMicrovmImageInput) -> dict:
20
+ out: dict = {}
21
+ return out
22
+
23
+
24
+ def deserialize_json(data: dict) -> DeleteMicrovmImageInput:
25
+ out: DeleteMicrovmImageInput = {} # type: ignore[typeddict-item]
26
+ return out
@@ -0,0 +1,49 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#DeleteMicrovmImageOutput``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ from capo_lambda_microvms.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_lambda_microvms.types.microvm_image_identifier
11
+ import capo_lambda_microvms.types.microvm_image_state
12
+
13
+
14
+ class DeleteMicrovmImageOutput(TypedDict, closed=True):
15
+ image_identifier: (
16
+ "capo_lambda_microvms.types.microvm_image_identifier.MicrovmImageIdentifier"
17
+ )
18
+ """<p>The identifier of the deleted MicroVM image.</p>"""
19
+ state: "capo_lambda_microvms.types.microvm_image_state.MicrovmImageState"
20
+ """<p>The current state of the MicroVM image after deletion.</p>"""
21
+
22
+
23
+ # --- restJson1 ser/de ---
24
+ def serialize_json(value: DeleteMicrovmImageOutput) -> dict:
25
+ out: dict = {}
26
+ out["imageIdentifier"] = value["image_identifier"]
27
+ import capo_lambda_microvms.types.microvm_image_state
28
+
29
+ out["state"] = capo_lambda_microvms.types.microvm_image_state.serialize_json(
30
+ value["state"]
31
+ )
32
+ return out
33
+
34
+
35
+ def deserialize_json(data: dict) -> DeleteMicrovmImageOutput:
36
+ out: DeleteMicrovmImageOutput = {} # type: ignore[typeddict-item]
37
+ if data.get("imageIdentifier") is not None:
38
+ out["image_identifier"] = data["imageIdentifier"]
39
+ else:
40
+ raise DeserializationError("DeleteMicrovmImageOutput.image_identifier required")
41
+ if data.get("state") is not None:
42
+ import capo_lambda_microvms.types.microvm_image_state
43
+
44
+ out["state"] = capo_lambda_microvms.types.microvm_image_state.deserialize_json(
45
+ data["state"]
46
+ )
47
+ else:
48
+ raise DeserializationError("DeleteMicrovmImageOutput.state required")
49
+ return out