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,35 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#MicrovmImageSummaries``."""
2
+
3
+ from typing import TYPE_CHECKING, TypeAlias
4
+
5
+ if TYPE_CHECKING:
6
+ import capo_lambda_microvms.types.microvm_image_summary
7
+
8
+ MicrovmImageSummaries: TypeAlias = list[
9
+ "capo_lambda_microvms.types.microvm_image_summary.MicrovmImageSummary"
10
+ ]
11
+
12
+
13
+ # --- restJson1 ser/de ---
14
+ def serialize_json(value: MicrovmImageSummaries) -> list:
15
+ import capo_lambda_microvms.types.microvm_image_summary
16
+
17
+ out: list = []
18
+ for item in value:
19
+ out.append(
20
+ capo_lambda_microvms.types.microvm_image_summary.serialize_json(item)
21
+ )
22
+ return out
23
+
24
+
25
+ def deserialize_json(data: list) -> MicrovmImageSummaries:
26
+ import capo_lambda_microvms.types.microvm_image_summary
27
+
28
+ out: MicrovmImageSummaries = []
29
+ for item in data:
30
+ if item is None:
31
+ continue
32
+ out.append(
33
+ capo_lambda_microvms.types.microvm_image_summary.deserialize_json(item)
34
+ )
35
+ return out
@@ -0,0 +1,90 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#MicrovmImageSummary``."""
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.image_name
13
+ import capo_lambda_microvms.types.microvm_image_state
14
+ import capo_lambda_microvms.types.non_blank_string
15
+
16
+
17
+ class MicrovmImageSummary(TypedDict, closed=True):
18
+ image_arn: "capo_lambda_microvms.types.non_blank_string.NonBlankString"
19
+ """<p>The ARN of the MicroVM image.</p>"""
20
+ name: "capo_lambda_microvms.types.image_name.ImageName"
21
+ """<p>The name of the MicroVM image.</p>"""
22
+ state: "capo_lambda_microvms.types.microvm_image_state.MicrovmImageState"
23
+ """<p>The current state of the MicroVM image.</p>"""
24
+ latest_active_image_version: NotRequired[
25
+ "capo_lambda_microvms.types.non_blank_string.NonBlankString"
26
+ ]
27
+ """<p>The latest active version of the MicroVM image.</p>"""
28
+ latest_failed_image_version: NotRequired[
29
+ "capo_lambda_microvms.types.non_blank_string.NonBlankString"
30
+ ]
31
+ """<p>The latest failed version of the MicroVM image, if any.</p>"""
32
+ created_at: "datetime.datetime"
33
+ """<p>The timestamp when the MicroVM image was created.</p>"""
34
+
35
+
36
+ # --- restJson1 ser/de ---
37
+ def serialize_json(value: MicrovmImageSummary) -> dict:
38
+ out: dict = {}
39
+ out["imageArn"] = value["image_arn"]
40
+ out["name"] = value["name"]
41
+ import capo_lambda_microvms.types.microvm_image_state
42
+
43
+ out["state"] = capo_lambda_microvms.types.microvm_image_state.serialize_json(
44
+ value["state"]
45
+ )
46
+ if "latest_active_image_version" in value:
47
+ out["latestActiveImageVersion"] = value["latest_active_image_version"]
48
+ if "latest_failed_image_version" in value:
49
+ out["latestFailedImageVersion"] = value["latest_failed_image_version"]
50
+ import capo_lambda_microvms.types._prelude.timestamp
51
+
52
+ out["createdAt"] = capo_lambda_microvms.types._prelude.timestamp.serialize_json(
53
+ value["created_at"]
54
+ )
55
+ return out
56
+
57
+
58
+ def deserialize_json(data: dict) -> MicrovmImageSummary:
59
+ out: MicrovmImageSummary = {} # type: ignore[typeddict-item]
60
+ if data.get("imageArn") is not None:
61
+ out["image_arn"] = data["imageArn"]
62
+ else:
63
+ raise DeserializationError("MicrovmImageSummary.image_arn required")
64
+ if data.get("name") is not None:
65
+ out["name"] = data["name"]
66
+ else:
67
+ raise DeserializationError("MicrovmImageSummary.name required")
68
+ if data.get("state") is not None:
69
+ import capo_lambda_microvms.types.microvm_image_state
70
+
71
+ out["state"] = capo_lambda_microvms.types.microvm_image_state.deserialize_json(
72
+ data["state"]
73
+ )
74
+ else:
75
+ raise DeserializationError("MicrovmImageSummary.state required")
76
+ if data.get("latestActiveImageVersion") is not None:
77
+ out["latest_active_image_version"] = data["latestActiveImageVersion"]
78
+ if data.get("latestFailedImageVersion") is not None:
79
+ out["latest_failed_image_version"] = data["latestFailedImageVersion"]
80
+ if data.get("createdAt") is not None:
81
+ import capo_lambda_microvms.types._prelude.timestamp
82
+
83
+ out["created_at"] = (
84
+ capo_lambda_microvms.types._prelude.timestamp.deserialize_json(
85
+ data["createdAt"]
86
+ )
87
+ )
88
+ else:
89
+ raise DeserializationError("MicrovmImageSummary.created_at required")
90
+ return out
@@ -0,0 +1,22 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#MicrovmImageVersionState``."""
2
+
3
+ from typing import Literal, TypeAlias, cast
4
+
5
+ MicrovmImageVersionState: TypeAlias = Literal[
6
+ "PENDING",
7
+ "IN_PROGRESS",
8
+ "SUCCESSFUL",
9
+ "FAILED",
10
+ "DELETING",
11
+ "DELETED",
12
+ "DELETE_FAILED",
13
+ ]
14
+
15
+
16
+ # --- restJson1 ser/de ---
17
+ def serialize_json(value: MicrovmImageVersionState) -> str:
18
+ return value
19
+
20
+
21
+ def deserialize_json(data: str) -> MicrovmImageVersionState:
22
+ return cast(MicrovmImageVersionState, data)
@@ -0,0 +1,17 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#MicrovmImageVersionStatus``."""
2
+
3
+ from typing import Literal, TypeAlias, cast
4
+
5
+ MicrovmImageVersionStatus: TypeAlias = Literal[
6
+ "ACTIVE",
7
+ "INACTIVE",
8
+ ]
9
+
10
+
11
+ # --- restJson1 ser/de ---
12
+ def serialize_json(value: MicrovmImageVersionStatus) -> str:
13
+ return value
14
+
15
+
16
+ def deserialize_json(data: str) -> MicrovmImageVersionStatus:
17
+ return cast(MicrovmImageVersionStatus, data)
@@ -0,0 +1,300 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#MicrovmImageVersionSummary``."""
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 MicrovmImageVersionSummary(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: MicrovmImageVersionSummary) -> 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) -> MicrovmImageVersionSummary:
177
+ out: MicrovmImageVersionSummary = {} # type: ignore[typeddict-item]
178
+ if data.get("baseImageArn") is not None:
179
+ out["base_image_arn"] = data["baseImageArn"]
180
+ else:
181
+ raise DeserializationError("MicrovmImageVersionSummary.base_image_arn required")
182
+ if data.get("baseImageVersion") is not None:
183
+ out["base_image_version"] = data["baseImageVersion"]
184
+ if data.get("buildRoleArn") is not None:
185
+ out["build_role_arn"] = data["buildRoleArn"]
186
+ else:
187
+ raise DeserializationError("MicrovmImageVersionSummary.build_role_arn required")
188
+ if data.get("description") is not None:
189
+ out["description"] = data["description"]
190
+ if data.get("codeArtifact") is not None:
191
+ import capo_lambda_microvms.types.code_artifact
192
+
193
+ out["code_artifact"] = (
194
+ capo_lambda_microvms.types.code_artifact.deserialize_json(
195
+ data["codeArtifact"]
196
+ )
197
+ )
198
+ else:
199
+ raise DeserializationError("MicrovmImageVersionSummary.code_artifact required")
200
+ if data.get("logging") is not None:
201
+ import capo_lambda_microvms.types.logging
202
+
203
+ out["logging"] = capo_lambda_microvms.types.logging.deserialize_json(
204
+ data["logging"]
205
+ )
206
+ if data.get("egressNetworkConnectors") is not None:
207
+ import capo_lambda_microvms.types.network_connector_list
208
+
209
+ out["egress_network_connectors"] = (
210
+ capo_lambda_microvms.types.network_connector_list.deserialize_json(
211
+ data["egressNetworkConnectors"]
212
+ )
213
+ )
214
+ if data.get("cpuConfigurations") is not None:
215
+ import capo_lambda_microvms.types.cpu_configuration_list
216
+
217
+ out["cpu_configurations"] = (
218
+ capo_lambda_microvms.types.cpu_configuration_list.deserialize_json(
219
+ data["cpuConfigurations"]
220
+ )
221
+ )
222
+ if data.get("resources") is not None:
223
+ import capo_lambda_microvms.types.resources_list
224
+
225
+ out["resources"] = capo_lambda_microvms.types.resources_list.deserialize_json(
226
+ data["resources"]
227
+ )
228
+ if data.get("additionalOsCapabilities") is not None:
229
+ import capo_lambda_microvms.types.capability_list
230
+
231
+ out["additional_os_capabilities"] = (
232
+ capo_lambda_microvms.types.capability_list.deserialize_json(
233
+ data["additionalOsCapabilities"]
234
+ )
235
+ )
236
+ if data.get("hooks") is not None:
237
+ import capo_lambda_microvms.types.hooks
238
+
239
+ out["hooks"] = capo_lambda_microvms.types.hooks.deserialize_json(data["hooks"])
240
+ if data.get("environmentVariables") is not None:
241
+ import capo_lambda_microvms.types.environment_variable_map
242
+
243
+ out["environment_variables"] = (
244
+ capo_lambda_microvms.types.environment_variable_map.deserialize_json(
245
+ data["environmentVariables"]
246
+ )
247
+ )
248
+ if data.get("imageArn") is not None:
249
+ out["image_arn"] = data["imageArn"]
250
+ else:
251
+ raise DeserializationError("MicrovmImageVersionSummary.image_arn required")
252
+ if data.get("imageVersion") is not None:
253
+ out["image_version"] = data["imageVersion"]
254
+ else:
255
+ raise DeserializationError("MicrovmImageVersionSummary.image_version required")
256
+ if data.get("state") is not None:
257
+ import capo_lambda_microvms.types.microvm_image_version_state
258
+
259
+ out["state"] = (
260
+ capo_lambda_microvms.types.microvm_image_version_state.deserialize_json(
261
+ data["state"]
262
+ )
263
+ )
264
+ else:
265
+ raise DeserializationError("MicrovmImageVersionSummary.state required")
266
+ if data.get("status") is not None:
267
+ import capo_lambda_microvms.types.microvm_image_version_status
268
+
269
+ out["status"] = (
270
+ capo_lambda_microvms.types.microvm_image_version_status.deserialize_json(
271
+ data["status"]
272
+ )
273
+ )
274
+ else:
275
+ raise DeserializationError("MicrovmImageVersionSummary.status required")
276
+ if data.get("createdAt") is not None:
277
+ import capo_lambda_microvms.types._prelude.timestamp
278
+
279
+ out["created_at"] = (
280
+ capo_lambda_microvms.types._prelude.timestamp.deserialize_json(
281
+ data["createdAt"]
282
+ )
283
+ )
284
+ else:
285
+ raise DeserializationError("MicrovmImageVersionSummary.created_at required")
286
+ if data.get("updatedAt") is not None:
287
+ import capo_lambda_microvms.types._prelude.timestamp
288
+
289
+ out["updated_at"] = (
290
+ capo_lambda_microvms.types._prelude.timestamp.deserialize_json(
291
+ data["updatedAt"]
292
+ )
293
+ )
294
+ if data.get("stateReason") is not None:
295
+ out["state_reason"] = data["stateReason"]
296
+ if data.get("tags") is not None:
297
+ import capo_lambda_microvms.types.tags
298
+
299
+ out["tags"] = capo_lambda_microvms.types.tags.deserialize_json(data["tags"])
300
+ return out
@@ -0,0 +1,39 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#MicrovmImageVersionSummaryList``."""
2
+
3
+ from typing import TYPE_CHECKING, TypeAlias
4
+
5
+ if TYPE_CHECKING:
6
+ import capo_lambda_microvms.types.microvm_image_version_summary
7
+
8
+ MicrovmImageVersionSummaryList: TypeAlias = list[
9
+ "capo_lambda_microvms.types.microvm_image_version_summary.MicrovmImageVersionSummary"
10
+ ]
11
+
12
+
13
+ # --- restJson1 ser/de ---
14
+ def serialize_json(value: MicrovmImageVersionSummaryList) -> list:
15
+ import capo_lambda_microvms.types.microvm_image_version_summary
16
+
17
+ out: list = []
18
+ for item in value:
19
+ out.append(
20
+ capo_lambda_microvms.types.microvm_image_version_summary.serialize_json(
21
+ item
22
+ )
23
+ )
24
+ return out
25
+
26
+
27
+ def deserialize_json(data: list) -> MicrovmImageVersionSummaryList:
28
+ import capo_lambda_microvms.types.microvm_image_version_summary
29
+
30
+ out: MicrovmImageVersionSummaryList = []
31
+ for item in data:
32
+ if item is None:
33
+ continue
34
+ out.append(
35
+ capo_lambda_microvms.types.microvm_image_version_summary.deserialize_json(
36
+ item
37
+ )
38
+ )
39
+ return out
@@ -0,0 +1,82 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#MicrovmItem``."""
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 datetime
11
+
12
+ import capo_lambda_microvms.types.microvm_identifier
13
+ import capo_lambda_microvms.types.microvm_image_arn
14
+ import capo_lambda_microvms.types.microvm_state
15
+ import capo_lambda_microvms.types.version
16
+
17
+
18
+ class MicrovmItem(TypedDict, closed=True):
19
+ microvm_id: "capo_lambda_microvms.types.microvm_identifier.MicrovmIdentifier"
20
+ """<p>The unique identifier of the MicroVM.</p>"""
21
+ state: "capo_lambda_microvms.types.microvm_state.MicrovmState"
22
+ """<p>The current lifecycle state of the MicroVM.</p>"""
23
+ image_arn: "capo_lambda_microvms.types.microvm_image_arn.MicrovmImageArn"
24
+ """<p>The ARN of the MicroVM image used to run this MicroVM.</p>"""
25
+ image_version: "capo_lambda_microvms.types.version.Version"
26
+ """<p>The version of the MicroVM image used to run this MicroVM.</p>"""
27
+ started_at: "datetime.datetime"
28
+ """<p>The timestamp when the MicroVM started.</p>"""
29
+
30
+
31
+ # --- restJson1 ser/de ---
32
+ def serialize_json(value: MicrovmItem) -> dict:
33
+ out: dict = {}
34
+ out["microvmId"] = value["microvm_id"]
35
+ import capo_lambda_microvms.types.microvm_state
36
+
37
+ out["state"] = capo_lambda_microvms.types.microvm_state.serialize_json(
38
+ value["state"]
39
+ )
40
+ out["imageArn"] = value["image_arn"]
41
+ out["imageVersion"] = value["image_version"]
42
+ import capo_lambda_microvms.types._prelude.timestamp
43
+
44
+ out["startedAt"] = capo_lambda_microvms.types._prelude.timestamp.serialize_json(
45
+ value["started_at"]
46
+ )
47
+ return out
48
+
49
+
50
+ def deserialize_json(data: dict) -> MicrovmItem:
51
+ out: MicrovmItem = {} # type: ignore[typeddict-item]
52
+ if data.get("microvmId") is not None:
53
+ out["microvm_id"] = data["microvmId"]
54
+ else:
55
+ raise DeserializationError("MicrovmItem.microvm_id required")
56
+ if data.get("state") is not None:
57
+ import capo_lambda_microvms.types.microvm_state
58
+
59
+ out["state"] = capo_lambda_microvms.types.microvm_state.deserialize_json(
60
+ data["state"]
61
+ )
62
+ else:
63
+ raise DeserializationError("MicrovmItem.state required")
64
+ if data.get("imageArn") is not None:
65
+ out["image_arn"] = data["imageArn"]
66
+ else:
67
+ raise DeserializationError("MicrovmItem.image_arn required")
68
+ if data.get("imageVersion") is not None:
69
+ out["image_version"] = data["imageVersion"]
70
+ else:
71
+ raise DeserializationError("MicrovmItem.image_version required")
72
+ if data.get("startedAt") is not None:
73
+ import capo_lambda_microvms.types._prelude.timestamp
74
+
75
+ out["started_at"] = (
76
+ capo_lambda_microvms.types._prelude.timestamp.deserialize_json(
77
+ data["startedAt"]
78
+ )
79
+ )
80
+ else:
81
+ raise DeserializationError("MicrovmItem.started_at required")
82
+ return out
@@ -0,0 +1,29 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#MicrovmItemList``."""
2
+
3
+ from typing import TYPE_CHECKING, TypeAlias
4
+
5
+ if TYPE_CHECKING:
6
+ import capo_lambda_microvms.types.microvm_item
7
+
8
+ MicrovmItemList: TypeAlias = list["capo_lambda_microvms.types.microvm_item.MicrovmItem"]
9
+
10
+
11
+ # --- restJson1 ser/de ---
12
+ def serialize_json(value: MicrovmItemList) -> list:
13
+ import capo_lambda_microvms.types.microvm_item
14
+
15
+ out: list = []
16
+ for item in value:
17
+ out.append(capo_lambda_microvms.types.microvm_item.serialize_json(item))
18
+ return out
19
+
20
+
21
+ def deserialize_json(data: list) -> MicrovmItemList:
22
+ import capo_lambda_microvms.types.microvm_item
23
+
24
+ out: MicrovmItemList = []
25
+ for item in data:
26
+ if item is None:
27
+ continue
28
+ out.append(capo_lambda_microvms.types.microvm_item.deserialize_json(item))
29
+ return out
@@ -0,0 +1,22 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#MicrovmState``."""
2
+
3
+ from typing import Literal, TypeAlias, cast
4
+
5
+ """The lifecycle state of a MicroVm."""
6
+ MicrovmState: TypeAlias = Literal[
7
+ "PENDING",
8
+ "RUNNING",
9
+ "SUSPENDING",
10
+ "SUSPENDED",
11
+ "TERMINATING",
12
+ "TERMINATED",
13
+ ]
14
+
15
+
16
+ # --- restJson1 ser/de ---
17
+ def serialize_json(value: MicrovmState) -> str:
18
+ return value
19
+
20
+
21
+ def deserialize_json(data: str) -> MicrovmState:
22
+ return cast(MicrovmState, data)
@@ -0,0 +1,5 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#NetworkConnector``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ NetworkConnector: TypeAlias = str
@@ -0,0 +1,19 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#NetworkConnectorList``."""
2
+
3
+ from typing import TYPE_CHECKING, TypeAlias
4
+
5
+ if TYPE_CHECKING:
6
+ import capo_lambda_microvms.types.network_connector
7
+
8
+ NetworkConnectorList: TypeAlias = list[
9
+ "capo_lambda_microvms.types.network_connector.NetworkConnector"
10
+ ]
11
+
12
+
13
+ # --- restJson1 ser/de ---
14
+ def serialize_json(value: NetworkConnectorList) -> list:
15
+ return list(value)
16
+
17
+
18
+ def deserialize_json(data: list) -> NetworkConnectorList:
19
+ return [item for item in data if item is not None]
@@ -0,0 +1,6 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#NonBlankString``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ """A string which is not empty or blank (only whitespace)."""
6
+ NonBlankString: TypeAlias = str