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,308 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#GetMicrovmImageVersionOutput``."""
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.logging
18
+ import capo_lambda_microvms.types.microvm_image_version_state
19
+ import capo_lambda_microvms.types.microvm_image_version_status
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 GetMicrovmImageVersionOutput(TypedDict, closed=True):
29
+ base_image_arn: "capo_lambda_microvms.types.non_blank_string.NonBlankString"
30
+ """<p>The ARN of the base MicroVM image used.</p>"""
31
+ base_image_version: NotRequired["capo_lambda_microvms.types.version.Version"]
32
+ """<p>The specific version of the base MicroVM image.</p>"""
33
+ build_role_arn: "capo_lambda_microvms.types.role_arn.RoleArn"
34
+ """<p>The ARN of the IAM build role.</p>"""
35
+ description: NotRequired["str"]
36
+ """<p>The description of the version.</p>"""
37
+ code_artifact: "capo_lambda_microvms.types.code_artifact.CodeArtifact"
38
+ """<p>The code artifact for this version.</p>"""
39
+ logging: NotRequired["capo_lambda_microvms.types.logging.Logging"]
40
+ """<p>The logging configuration for this version.</p>"""
41
+ egress_network_connectors: NotRequired[
42
+ "capo_lambda_microvms.types.network_connector_list.NetworkConnectorList"
43
+ ]
44
+ """<p>The list of egress network connectors available to the MicroVM at runtime.</p>"""
45
+ cpu_configurations: NotRequired[
46
+ "capo_lambda_microvms.types.cpu_configuration_list.CpuConfigurationList"
47
+ ]
48
+ """<p>The list of supported CPU configurations for the MicroVM.</p>"""
49
+ resources: NotRequired["capo_lambda_microvms.types.resources_list.ResourcesList"]
50
+ """<p>The resource requirements for the MicroVM.</p>"""
51
+ additional_os_capabilities: NotRequired[
52
+ "capo_lambda_microvms.types.capability_list.CapabilityList"
53
+ ]
54
+ """<p>Additional OS capabilities granted to the MicroVM runtime environment.</p>"""
55
+ hooks: NotRequired["capo_lambda_microvms.types.hooks.Hooks"]
56
+ environment_variables: NotRequired[
57
+ "capo_lambda_microvms.types.environment_variable_map.EnvironmentVariableMap"
58
+ ]
59
+ """<p>Environment variables set in the MicroVM runtime environment.</p>"""
60
+ image_arn: "capo_lambda_microvms.types.non_blank_string.NonBlankString"
61
+ """<p>The ARN of the MicroVM image.</p>"""
62
+ image_version: "capo_lambda_microvms.types.non_blank_string.NonBlankString"
63
+ """<p>The version of the MicroVM image.</p>"""
64
+ state: "capo_lambda_microvms.types.microvm_image_version_state.MicrovmImageVersionState"
65
+ """<p>The current state of the version.</p>"""
66
+ status: "capo_lambda_microvms.types.microvm_image_version_status.MicrovmImageVersionStatus"
67
+ """<p>The availability status of the version: ACTIVE (can be used by RunMicrovm) or INACTIVE (blocked from launching new MicroVMs).</p>"""
68
+ created_at: "datetime.datetime"
69
+ """<p>The timestamp when the version was created.</p>"""
70
+ updated_at: NotRequired["datetime.datetime"]
71
+ """<p>The timestamp when the version was last updated.</p>"""
72
+ state_reason: NotRequired["str"]
73
+ """<p>The reason for the current state. For example, one or more builds failed.</p>"""
74
+ tags: NotRequired["capo_lambda_microvms.types.tags.Tags"]
75
+ """<p>Key-value pairs associated with the version.</p>"""
76
+
77
+
78
+ # --- restJson1 ser/de ---
79
+ def serialize_json(value: GetMicrovmImageVersionOutput) -> dict:
80
+ out: dict = {}
81
+ out["baseImageArn"] = value["base_image_arn"]
82
+ if "base_image_version" in value:
83
+ out["baseImageVersion"] = value["base_image_version"]
84
+ out["buildRoleArn"] = value["build_role_arn"]
85
+ if "description" in value:
86
+ out["description"] = value["description"]
87
+ import capo_lambda_microvms.types.code_artifact
88
+
89
+ out["codeArtifact"] = capo_lambda_microvms.types.code_artifact.serialize_json(
90
+ value["code_artifact"]
91
+ )
92
+ if "logging" in value:
93
+ import capo_lambda_microvms.types.logging
94
+
95
+ out["logging"] = capo_lambda_microvms.types.logging.serialize_json(
96
+ value["logging"]
97
+ )
98
+ if "egress_network_connectors" in value:
99
+ import capo_lambda_microvms.types.network_connector_list
100
+
101
+ out["egressNetworkConnectors"] = (
102
+ capo_lambda_microvms.types.network_connector_list.serialize_json(
103
+ value["egress_network_connectors"]
104
+ )
105
+ )
106
+ if "cpu_configurations" in value:
107
+ import capo_lambda_microvms.types.cpu_configuration_list
108
+
109
+ out["cpuConfigurations"] = (
110
+ capo_lambda_microvms.types.cpu_configuration_list.serialize_json(
111
+ value["cpu_configurations"]
112
+ )
113
+ )
114
+ if "resources" in value:
115
+ import capo_lambda_microvms.types.resources_list
116
+
117
+ out["resources"] = capo_lambda_microvms.types.resources_list.serialize_json(
118
+ value["resources"]
119
+ )
120
+ if "additional_os_capabilities" in value:
121
+ import capo_lambda_microvms.types.capability_list
122
+
123
+ out["additionalOsCapabilities"] = (
124
+ capo_lambda_microvms.types.capability_list.serialize_json(
125
+ value["additional_os_capabilities"]
126
+ )
127
+ )
128
+ if "hooks" in value:
129
+ import capo_lambda_microvms.types.hooks
130
+
131
+ out["hooks"] = capo_lambda_microvms.types.hooks.serialize_json(value["hooks"])
132
+ if "environment_variables" in value:
133
+ import capo_lambda_microvms.types.environment_variable_map
134
+
135
+ out["environmentVariables"] = (
136
+ capo_lambda_microvms.types.environment_variable_map.serialize_json(
137
+ value["environment_variables"]
138
+ )
139
+ )
140
+ out["imageArn"] = value["image_arn"]
141
+ out["imageVersion"] = value["image_version"]
142
+ import capo_lambda_microvms.types.microvm_image_version_state
143
+
144
+ out["state"] = (
145
+ capo_lambda_microvms.types.microvm_image_version_state.serialize_json(
146
+ value["state"]
147
+ )
148
+ )
149
+ import capo_lambda_microvms.types.microvm_image_version_status
150
+
151
+ out["status"] = (
152
+ capo_lambda_microvms.types.microvm_image_version_status.serialize_json(
153
+ value["status"]
154
+ )
155
+ )
156
+ import capo_lambda_microvms.types._prelude.timestamp
157
+
158
+ out["createdAt"] = capo_lambda_microvms.types._prelude.timestamp.serialize_json(
159
+ value["created_at"]
160
+ )
161
+ if "updated_at" in value:
162
+ import capo_lambda_microvms.types._prelude.timestamp
163
+
164
+ out["updatedAt"] = capo_lambda_microvms.types._prelude.timestamp.serialize_json(
165
+ value["updated_at"]
166
+ )
167
+ if "state_reason" in value:
168
+ out["stateReason"] = value["state_reason"]
169
+ if "tags" in value:
170
+ import capo_lambda_microvms.types.tags
171
+
172
+ out["tags"] = capo_lambda_microvms.types.tags.serialize_json(value["tags"])
173
+ return out
174
+
175
+
176
+ def deserialize_json(data: dict) -> GetMicrovmImageVersionOutput:
177
+ out: GetMicrovmImageVersionOutput = {} # type: ignore[typeddict-item]
178
+ if data.get("baseImageArn") is not None:
179
+ out["base_image_arn"] = data["baseImageArn"]
180
+ else:
181
+ raise DeserializationError(
182
+ "GetMicrovmImageVersionOutput.base_image_arn required"
183
+ )
184
+ if data.get("baseImageVersion") is not None:
185
+ out["base_image_version"] = data["baseImageVersion"]
186
+ if data.get("buildRoleArn") is not None:
187
+ out["build_role_arn"] = data["buildRoleArn"]
188
+ else:
189
+ raise DeserializationError(
190
+ "GetMicrovmImageVersionOutput.build_role_arn required"
191
+ )
192
+ if data.get("description") is not None:
193
+ out["description"] = data["description"]
194
+ if data.get("codeArtifact") is not None:
195
+ import capo_lambda_microvms.types.code_artifact
196
+
197
+ out["code_artifact"] = (
198
+ capo_lambda_microvms.types.code_artifact.deserialize_json(
199
+ data["codeArtifact"]
200
+ )
201
+ )
202
+ else:
203
+ raise DeserializationError(
204
+ "GetMicrovmImageVersionOutput.code_artifact required"
205
+ )
206
+ if data.get("logging") is not None:
207
+ import capo_lambda_microvms.types.logging
208
+
209
+ out["logging"] = capo_lambda_microvms.types.logging.deserialize_json(
210
+ data["logging"]
211
+ )
212
+ if data.get("egressNetworkConnectors") is not None:
213
+ import capo_lambda_microvms.types.network_connector_list
214
+
215
+ out["egress_network_connectors"] = (
216
+ capo_lambda_microvms.types.network_connector_list.deserialize_json(
217
+ data["egressNetworkConnectors"]
218
+ )
219
+ )
220
+ if data.get("cpuConfigurations") is not None:
221
+ import capo_lambda_microvms.types.cpu_configuration_list
222
+
223
+ out["cpu_configurations"] = (
224
+ capo_lambda_microvms.types.cpu_configuration_list.deserialize_json(
225
+ data["cpuConfigurations"]
226
+ )
227
+ )
228
+ if data.get("resources") is not None:
229
+ import capo_lambda_microvms.types.resources_list
230
+
231
+ out["resources"] = capo_lambda_microvms.types.resources_list.deserialize_json(
232
+ data["resources"]
233
+ )
234
+ if data.get("additionalOsCapabilities") is not None:
235
+ import capo_lambda_microvms.types.capability_list
236
+
237
+ out["additional_os_capabilities"] = (
238
+ capo_lambda_microvms.types.capability_list.deserialize_json(
239
+ data["additionalOsCapabilities"]
240
+ )
241
+ )
242
+ if data.get("hooks") is not None:
243
+ import capo_lambda_microvms.types.hooks
244
+
245
+ out["hooks"] = capo_lambda_microvms.types.hooks.deserialize_json(data["hooks"])
246
+ if data.get("environmentVariables") is not None:
247
+ import capo_lambda_microvms.types.environment_variable_map
248
+
249
+ out["environment_variables"] = (
250
+ capo_lambda_microvms.types.environment_variable_map.deserialize_json(
251
+ data["environmentVariables"]
252
+ )
253
+ )
254
+ if data.get("imageArn") is not None:
255
+ out["image_arn"] = data["imageArn"]
256
+ else:
257
+ raise DeserializationError("GetMicrovmImageVersionOutput.image_arn required")
258
+ if data.get("imageVersion") is not None:
259
+ out["image_version"] = data["imageVersion"]
260
+ else:
261
+ raise DeserializationError(
262
+ "GetMicrovmImageVersionOutput.image_version required"
263
+ )
264
+ if data.get("state") is not None:
265
+ import capo_lambda_microvms.types.microvm_image_version_state
266
+
267
+ out["state"] = (
268
+ capo_lambda_microvms.types.microvm_image_version_state.deserialize_json(
269
+ data["state"]
270
+ )
271
+ )
272
+ else:
273
+ raise DeserializationError("GetMicrovmImageVersionOutput.state required")
274
+ if data.get("status") is not None:
275
+ import capo_lambda_microvms.types.microvm_image_version_status
276
+
277
+ out["status"] = (
278
+ capo_lambda_microvms.types.microvm_image_version_status.deserialize_json(
279
+ data["status"]
280
+ )
281
+ )
282
+ else:
283
+ raise DeserializationError("GetMicrovmImageVersionOutput.status required")
284
+ if data.get("createdAt") is not None:
285
+ import capo_lambda_microvms.types._prelude.timestamp
286
+
287
+ out["created_at"] = (
288
+ capo_lambda_microvms.types._prelude.timestamp.deserialize_json(
289
+ data["createdAt"]
290
+ )
291
+ )
292
+ else:
293
+ raise DeserializationError("GetMicrovmImageVersionOutput.created_at required")
294
+ if data.get("updatedAt") is not None:
295
+ import capo_lambda_microvms.types._prelude.timestamp
296
+
297
+ out["updated_at"] = (
298
+ capo_lambda_microvms.types._prelude.timestamp.deserialize_json(
299
+ data["updatedAt"]
300
+ )
301
+ )
302
+ if data.get("stateReason") is not None:
303
+ out["state_reason"] = data["stateReason"]
304
+ if data.get("tags") is not None:
305
+ import capo_lambda_microvms.types.tags
306
+
307
+ out["tags"] = capo_lambda_microvms.types.tags.deserialize_json(data["tags"])
308
+ return out
@@ -0,0 +1,26 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#GetMicrovmRequest``."""
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_identifier
9
+
10
+
11
+ class GetMicrovmRequest(TypedDict, closed=True):
12
+ microvm_identifier: (
13
+ "capo_lambda_microvms.types.microvm_identifier.MicrovmIdentifier"
14
+ )
15
+ """<p>The ID of the MicroVM to retrieve.</p>"""
16
+
17
+
18
+ # --- restJson1 ser/de ---
19
+ def serialize_json(value: GetMicrovmRequest) -> dict:
20
+ out: dict = {}
21
+ return out
22
+
23
+
24
+ def deserialize_json(data: dict) -> GetMicrovmRequest:
25
+ out: GetMicrovmRequest = {} # type: ignore[typeddict-item]
26
+ return out
@@ -0,0 +1,188 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#GetMicrovmResponse``."""
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.idle_policy
13
+ import capo_lambda_microvms.types.microvm_identifier
14
+ import capo_lambda_microvms.types.microvm_image_arn
15
+ import capo_lambda_microvms.types.microvm_state
16
+ import capo_lambda_microvms.types.network_connector_list
17
+ import capo_lambda_microvms.types.non_blank_string
18
+ import capo_lambda_microvms.types.role_arn
19
+ import capo_lambda_microvms.types.version
20
+
21
+
22
+ class GetMicrovmResponse(TypedDict, closed=True):
23
+ microvm_id: "capo_lambda_microvms.types.microvm_identifier.MicrovmIdentifier"
24
+ """<p>The unique identifier of the MicroVM.</p>"""
25
+ state: "capo_lambda_microvms.types.microvm_state.MicrovmState"
26
+ """<p>The current lifecycle state of the MicroVM.</p>"""
27
+ endpoint: "str"
28
+ """<p>The HTTPS endpoint URL for communicating with the MicroVM. Include a valid authentication token in the X-aws-proxy-auth header when sending requests.</p>"""
29
+ image_arn: "capo_lambda_microvms.types.microvm_image_arn.MicrovmImageArn"
30
+ """<p>The ARN of the MicroVM image used to run this MicroVM.</p>"""
31
+ image_version: "capo_lambda_microvms.types.version.Version"
32
+ """<p>The version of the MicroVM image used to run this MicroVM.</p>"""
33
+ execution_role_arn: NotRequired["capo_lambda_microvms.types.role_arn.RoleArn"]
34
+ """<p>The ARN of the IAM execution role assumed by the MicroVM.</p>"""
35
+ idle_policy: NotRequired["capo_lambda_microvms.types.idle_policy.IdlePolicy"]
36
+ """<p>The idle policy configuration of the MicroVM, controlling auto-suspend and auto-resume behavior.</p>"""
37
+ maximum_duration_in_seconds: "int"
38
+ """<p>The maximum duration in seconds that the MicroVM can exist before being terminated by the platform.</p>"""
39
+ started_at: "datetime.datetime"
40
+ """<p>The timestamp when the MicroVM first started.</p>"""
41
+ terminated_at: NotRequired["datetime.datetime"]
42
+ """<p>The timestamp when the MicroVM terminated.</p>"""
43
+ state_reason: NotRequired[
44
+ "capo_lambda_microvms.types.non_blank_string.NonBlankString"
45
+ ]
46
+ """<p>The reason for why the MicroVM is in the current state.</p>"""
47
+ ingress_network_connectors: NotRequired[
48
+ "capo_lambda_microvms.types.network_connector_list.NetworkConnectorList"
49
+ ]
50
+ """<p>The list of ingress network connectors configured for the MicroVM.</p>"""
51
+ egress_network_connectors: NotRequired[
52
+ "capo_lambda_microvms.types.network_connector_list.NetworkConnectorList"
53
+ ]
54
+ """<p>The list of egress network connectors configured for the MicroVM.</p>"""
55
+
56
+
57
+ # --- restJson1 ser/de ---
58
+ def serialize_json(value: GetMicrovmResponse) -> dict:
59
+ out: dict = {}
60
+ out["microvmId"] = value["microvm_id"]
61
+ import capo_lambda_microvms.types.microvm_state
62
+
63
+ out["state"] = capo_lambda_microvms.types.microvm_state.serialize_json(
64
+ value["state"]
65
+ )
66
+ out["endpoint"] = value["endpoint"]
67
+ out["imageArn"] = value["image_arn"]
68
+ out["imageVersion"] = value["image_version"]
69
+ if "execution_role_arn" in value:
70
+ out["executionRoleArn"] = value["execution_role_arn"]
71
+ if "idle_policy" in value:
72
+ import capo_lambda_microvms.types.idle_policy
73
+
74
+ out["idlePolicy"] = capo_lambda_microvms.types.idle_policy.serialize_json(
75
+ value["idle_policy"]
76
+ )
77
+ out["maximumDurationInSeconds"] = value["maximum_duration_in_seconds"]
78
+ import capo_lambda_microvms.types._prelude.timestamp
79
+
80
+ out["startedAt"] = capo_lambda_microvms.types._prelude.timestamp.serialize_json(
81
+ value["started_at"]
82
+ )
83
+ if "terminated_at" in value:
84
+ import capo_lambda_microvms.types._prelude.timestamp
85
+
86
+ out["terminatedAt"] = (
87
+ capo_lambda_microvms.types._prelude.timestamp.serialize_json(
88
+ value["terminated_at"]
89
+ )
90
+ )
91
+ if "state_reason" in value:
92
+ out["stateReason"] = value["state_reason"]
93
+ if "ingress_network_connectors" in value:
94
+ import capo_lambda_microvms.types.network_connector_list
95
+
96
+ out["ingressNetworkConnectors"] = (
97
+ capo_lambda_microvms.types.network_connector_list.serialize_json(
98
+ value["ingress_network_connectors"]
99
+ )
100
+ )
101
+ if "egress_network_connectors" in value:
102
+ import capo_lambda_microvms.types.network_connector_list
103
+
104
+ out["egressNetworkConnectors"] = (
105
+ capo_lambda_microvms.types.network_connector_list.serialize_json(
106
+ value["egress_network_connectors"]
107
+ )
108
+ )
109
+ return out
110
+
111
+
112
+ def deserialize_json(data: dict) -> GetMicrovmResponse:
113
+ out: GetMicrovmResponse = {} # type: ignore[typeddict-item]
114
+ if data.get("microvmId") is not None:
115
+ out["microvm_id"] = data["microvmId"]
116
+ else:
117
+ raise DeserializationError("GetMicrovmResponse.microvm_id required")
118
+ if data.get("state") is not None:
119
+ import capo_lambda_microvms.types.microvm_state
120
+
121
+ out["state"] = capo_lambda_microvms.types.microvm_state.deserialize_json(
122
+ data["state"]
123
+ )
124
+ else:
125
+ raise DeserializationError("GetMicrovmResponse.state required")
126
+ if data.get("endpoint") is not None:
127
+ out["endpoint"] = data["endpoint"]
128
+ else:
129
+ raise DeserializationError("GetMicrovmResponse.endpoint required")
130
+ if data.get("imageArn") is not None:
131
+ out["image_arn"] = data["imageArn"]
132
+ else:
133
+ raise DeserializationError("GetMicrovmResponse.image_arn required")
134
+ if data.get("imageVersion") is not None:
135
+ out["image_version"] = data["imageVersion"]
136
+ else:
137
+ raise DeserializationError("GetMicrovmResponse.image_version required")
138
+ if data.get("executionRoleArn") is not None:
139
+ out["execution_role_arn"] = data["executionRoleArn"]
140
+ if data.get("idlePolicy") is not None:
141
+ import capo_lambda_microvms.types.idle_policy
142
+
143
+ out["idle_policy"] = capo_lambda_microvms.types.idle_policy.deserialize_json(
144
+ data["idlePolicy"]
145
+ )
146
+ if data.get("maximumDurationInSeconds") is not None:
147
+ out["maximum_duration_in_seconds"] = data["maximumDurationInSeconds"]
148
+ else:
149
+ raise DeserializationError(
150
+ "GetMicrovmResponse.maximum_duration_in_seconds required"
151
+ )
152
+ if data.get("startedAt") is not None:
153
+ import capo_lambda_microvms.types._prelude.timestamp
154
+
155
+ out["started_at"] = (
156
+ capo_lambda_microvms.types._prelude.timestamp.deserialize_json(
157
+ data["startedAt"]
158
+ )
159
+ )
160
+ else:
161
+ raise DeserializationError("GetMicrovmResponse.started_at required")
162
+ if data.get("terminatedAt") is not None:
163
+ import capo_lambda_microvms.types._prelude.timestamp
164
+
165
+ out["terminated_at"] = (
166
+ capo_lambda_microvms.types._prelude.timestamp.deserialize_json(
167
+ data["terminatedAt"]
168
+ )
169
+ )
170
+ if data.get("stateReason") is not None:
171
+ out["state_reason"] = data["stateReason"]
172
+ if data.get("ingressNetworkConnectors") is not None:
173
+ import capo_lambda_microvms.types.network_connector_list
174
+
175
+ out["ingress_network_connectors"] = (
176
+ capo_lambda_microvms.types.network_connector_list.deserialize_json(
177
+ data["ingressNetworkConnectors"]
178
+ )
179
+ )
180
+ if data.get("egressNetworkConnectors") is not None:
181
+ import capo_lambda_microvms.types.network_connector_list
182
+
183
+ out["egress_network_connectors"] = (
184
+ capo_lambda_microvms.types.network_connector_list.deserialize_json(
185
+ data["egressNetworkConnectors"]
186
+ )
187
+ )
188
+ return out
@@ -0,0 +1,18 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#HookState``."""
2
+
3
+ from typing import Literal, TypeAlias, cast
4
+
5
+ """Whether invocation hooks are enabled or disabled on a MicroVm."""
6
+ HookState: TypeAlias = Literal[
7
+ "DISABLED",
8
+ "ENABLED",
9
+ ]
10
+
11
+
12
+ # --- restJson1 ser/de ---
13
+ def serialize_json(value: HookState) -> str:
14
+ return value
15
+
16
+
17
+ def deserialize_json(data: str) -> HookState:
18
+ return cast(HookState, data)
@@ -0,0 +1,65 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#Hooks``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import NotRequired, TypedDict
6
+
7
+ if TYPE_CHECKING:
8
+ import capo_lambda_microvms.types.microvm_hooks
9
+ import capo_lambda_microvms.types.microvm_image_hooks
10
+
11
+
12
+ class Hooks(TypedDict, closed=True):
13
+ port: NotRequired["int"]
14
+ """<p>The port number on which the hooks listener runs.</p>"""
15
+ microvm_hooks: NotRequired["capo_lambda_microvms.types.microvm_hooks.MicrovmHooks"]
16
+ """<p>The lifecycle hooks for MicroVM events.</p>"""
17
+ microvm_image_hooks: NotRequired[
18
+ "capo_lambda_microvms.types.microvm_image_hooks.MicrovmImageHooks"
19
+ ]
20
+ """<p>The hooks for MicroVM image build events.</p>"""
21
+
22
+
23
+ # --- restJson1 ser/de ---
24
+ def serialize_json(value: Hooks) -> dict:
25
+ out: dict = {}
26
+ if "port" in value:
27
+ out["port"] = value["port"]
28
+ if "microvm_hooks" in value:
29
+ import capo_lambda_microvms.types.microvm_hooks
30
+
31
+ out["microvmHooks"] = capo_lambda_microvms.types.microvm_hooks.serialize_json(
32
+ value["microvm_hooks"]
33
+ )
34
+ if "microvm_image_hooks" in value:
35
+ import capo_lambda_microvms.types.microvm_image_hooks
36
+
37
+ out["microvmImageHooks"] = (
38
+ capo_lambda_microvms.types.microvm_image_hooks.serialize_json(
39
+ value["microvm_image_hooks"]
40
+ )
41
+ )
42
+ return out
43
+
44
+
45
+ def deserialize_json(data: dict) -> Hooks:
46
+ out: Hooks = {} # type: ignore[typeddict-item]
47
+ if data.get("port") is not None:
48
+ out["port"] = data["port"]
49
+ if data.get("microvmHooks") is not None:
50
+ import capo_lambda_microvms.types.microvm_hooks
51
+
52
+ out["microvm_hooks"] = (
53
+ capo_lambda_microvms.types.microvm_hooks.deserialize_json(
54
+ data["microvmHooks"]
55
+ )
56
+ )
57
+ if data.get("microvmImageHooks") is not None:
58
+ import capo_lambda_microvms.types.microvm_image_hooks
59
+
60
+ out["microvm_image_hooks"] = (
61
+ capo_lambda_microvms.types.microvm_image_hooks.deserialize_json(
62
+ data["microvmImageHooks"]
63
+ )
64
+ )
65
+ return out
@@ -0,0 +1,40 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#IdlePolicy``."""
2
+
3
+ from typing_extensions import TypedDict
4
+
5
+ from capo_lambda_microvms.errors import DeserializationError
6
+
7
+
8
+ class IdlePolicy(TypedDict, closed=True):
9
+ max_idle_duration_seconds: "int"
10
+ """<p>The maximum time in seconds that a MicroVM can remain idle before it is automatically suspended.</p>"""
11
+ suspended_duration_seconds: "int"
12
+ """<p>The maximum time in seconds that a MicroVM can remain suspended before it is automatically terminated.</p>"""
13
+ auto_resume_enabled: "bool"
14
+ """<p>Indicates whether the MicroVM automatically resumes when it receives a request while suspended.</p>"""
15
+
16
+
17
+ # --- restJson1 ser/de ---
18
+ def serialize_json(value: IdlePolicy) -> dict:
19
+ out: dict = {}
20
+ out["maxIdleDurationSeconds"] = value["max_idle_duration_seconds"]
21
+ out["suspendedDurationSeconds"] = value["suspended_duration_seconds"]
22
+ out["autoResumeEnabled"] = value["auto_resume_enabled"]
23
+ return out
24
+
25
+
26
+ def deserialize_json(data: dict) -> IdlePolicy:
27
+ out: IdlePolicy = {} # type: ignore[typeddict-item]
28
+ if data.get("maxIdleDurationSeconds") is not None:
29
+ out["max_idle_duration_seconds"] = data["maxIdleDurationSeconds"]
30
+ else:
31
+ raise DeserializationError("IdlePolicy.max_idle_duration_seconds required")
32
+ if data.get("suspendedDurationSeconds") is not None:
33
+ out["suspended_duration_seconds"] = data["suspendedDurationSeconds"]
34
+ else:
35
+ raise DeserializationError("IdlePolicy.suspended_duration_seconds required")
36
+ if data.get("autoResumeEnabled") is not None:
37
+ out["auto_resume_enabled"] = data["autoResumeEnabled"]
38
+ else:
39
+ raise DeserializationError("IdlePolicy.auto_resume_enabled required")
40
+ return out
@@ -0,0 +1,6 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#ImageName``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ """Name of a MicroVM image."""
6
+ ImageName: TypeAlias = str