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,6 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#PortNumber``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ """Represents a single port."""
6
+ PortNumber: TypeAlias = int
@@ -0,0 +1,38 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#PortRange``."""
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.port_number
11
+
12
+
13
+ class PortRange(TypedDict, closed=True):
14
+ start_port: "capo_lambda_microvms.types.port_number.PortNumber"
15
+ """<p>The starting port number of the range.</p>"""
16
+ end_port: "capo_lambda_microvms.types.port_number.PortNumber"
17
+ """<p>The ending port number of the range.</p>"""
18
+
19
+
20
+ # --- restJson1 ser/de ---
21
+ def serialize_json(value: PortRange) -> dict:
22
+ out: dict = {}
23
+ out["startPort"] = value["start_port"]
24
+ out["endPort"] = value["end_port"]
25
+ return out
26
+
27
+
28
+ def deserialize_json(data: dict) -> PortRange:
29
+ out: PortRange = {} # type: ignore[typeddict-item]
30
+ if data.get("startPort") is not None:
31
+ out["start_port"] = data["startPort"]
32
+ else:
33
+ raise DeserializationError("PortRange.start_port required")
34
+ if data.get("endPort") is not None:
35
+ out["end_port"] = data["endPort"]
36
+ else:
37
+ raise DeserializationError("PortRange.end_port required")
38
+ return out
@@ -0,0 +1,63 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#PortSpecification``."""
2
+
3
+ from typing import TYPE_CHECKING, TypeAlias
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ from capo_lambda_microvms.errors import DeserializationError, SerializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_lambda_microvms.types.port_number
11
+ import capo_lambda_microvms.types.port_range
12
+
13
+
14
+ class _PortSpecification_port(TypedDict, closed=True):
15
+ port: "capo_lambda_microvms.types.port_number.PortNumber"
16
+
17
+
18
+ class _PortSpecification_range(TypedDict, closed=True):
19
+ range: "capo_lambda_microvms.types.port_range.PortRange"
20
+
21
+
22
+ class _PortSpecification_allPorts(TypedDict, closed=True):
23
+ allPorts: "None"
24
+
25
+
26
+ PortSpecification: TypeAlias = (
27
+ _PortSpecification_port | _PortSpecification_range | _PortSpecification_allPorts
28
+ )
29
+
30
+
31
+ # --- restJson1 ser/de ---
32
+ def serialize_json(value: PortSpecification) -> dict:
33
+ if "port" in value:
34
+ return {"port": value["port"]}
35
+ elif "range" in value:
36
+ import capo_lambda_microvms.types.port_range
37
+
38
+ return {
39
+ "range": capo_lambda_microvms.types.port_range.serialize_json(
40
+ value["range"]
41
+ )
42
+ }
43
+ elif "allPorts" in value:
44
+ return {"allPorts": {}}
45
+ else:
46
+ raise SerializationError("PortSpecification: no variant present")
47
+
48
+
49
+ def deserialize_json(data: dict) -> PortSpecification:
50
+ if data.get("port") is not None:
51
+ return {"port": data["port"]}
52
+ elif data.get("range") is not None:
53
+ import capo_lambda_microvms.types.port_range
54
+
55
+ return {
56
+ "range": capo_lambda_microvms.types.port_range.deserialize_json(
57
+ data["range"]
58
+ )
59
+ }
60
+ elif data.get("allPorts") is not None:
61
+ return {"allPorts": None}
62
+ else:
63
+ raise DeserializationError("PortSpecification: no recognized variant key")
@@ -0,0 +1,5 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#PositiveInteger``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ PositiveInteger: TypeAlias = int
@@ -0,0 +1,26 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#Resources``."""
2
+
3
+ from typing_extensions import TypedDict
4
+
5
+ from capo_lambda_microvms.errors import DeserializationError
6
+
7
+
8
+ class Resources(TypedDict, closed=True):
9
+ minimum_memory_in_mi_b: "int"
10
+ """<p>The minimum amount of memory in MiB to allocate to the MicroVM.</p>"""
11
+
12
+
13
+ # --- restJson1 ser/de ---
14
+ def serialize_json(value: Resources) -> dict:
15
+ out: dict = {}
16
+ out["minimumMemoryInMiB"] = value["minimum_memory_in_mi_b"]
17
+ return out
18
+
19
+
20
+ def deserialize_json(data: dict) -> Resources:
21
+ out: Resources = {} # type: ignore[typeddict-item]
22
+ if data.get("minimumMemoryInMiB") is not None:
23
+ out["minimum_memory_in_mi_b"] = data["minimumMemoryInMiB"]
24
+ else:
25
+ raise DeserializationError("Resources.minimum_memory_in_mi_b required")
26
+ return out
@@ -0,0 +1,29 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#ResourcesList``."""
2
+
3
+ from typing import TYPE_CHECKING, TypeAlias
4
+
5
+ if TYPE_CHECKING:
6
+ import capo_lambda_microvms.types.resources
7
+
8
+ ResourcesList: TypeAlias = list["capo_lambda_microvms.types.resources.Resources"]
9
+
10
+
11
+ # --- restJson1 ser/de ---
12
+ def serialize_json(value: ResourcesList) -> list:
13
+ import capo_lambda_microvms.types.resources
14
+
15
+ out: list = []
16
+ for item in value:
17
+ out.append(capo_lambda_microvms.types.resources.serialize_json(item))
18
+ return out
19
+
20
+
21
+ def deserialize_json(data: list) -> ResourcesList:
22
+ import capo_lambda_microvms.types.resources
23
+
24
+ out: ResourcesList = []
25
+ for item in data:
26
+ if item is None:
27
+ continue
28
+ out.append(capo_lambda_microvms.types.resources.deserialize_json(item))
29
+ return out
@@ -0,0 +1,26 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#ResumeMicrovmRequest``."""
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 ResumeMicrovmRequest(TypedDict, closed=True):
12
+ microvm_identifier: (
13
+ "capo_lambda_microvms.types.microvm_identifier.MicrovmIdentifier"
14
+ )
15
+ """<p>The ID of the MicroVM to resume.</p>"""
16
+
17
+
18
+ # --- restJson1 ser/de ---
19
+ def serialize_json(value: ResumeMicrovmRequest) -> dict:
20
+ out: dict = {}
21
+ return out
22
+
23
+
24
+ def deserialize_json(data: dict) -> ResumeMicrovmRequest:
25
+ out: ResumeMicrovmRequest = {} # type: ignore[typeddict-item]
26
+ return out
@@ -0,0 +1,18 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#ResumeMicrovmResponse``."""
2
+
3
+ from typing_extensions import TypedDict
4
+
5
+
6
+ class ResumeMicrovmResponse(TypedDict, closed=True):
7
+ pass
8
+
9
+
10
+ # --- restJson1 ser/de ---
11
+ def serialize_json(value: ResumeMicrovmResponse) -> dict:
12
+ out: dict = {}
13
+ return out
14
+
15
+
16
+ def deserialize_json(data: dict) -> ResumeMicrovmResponse:
17
+ out: ResumeMicrovmResponse = {} # type: ignore[typeddict-item]
18
+ return out
@@ -0,0 +1,6 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#RoleArn``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ """The ARN of an IAM role that the service assumes to perform actions on behalf of the caller."""
6
+ RoleArn: TypeAlias = str
@@ -0,0 +1,5 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#RunHookPayload``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ RunHookPayload: TypeAlias = str
@@ -0,0 +1,139 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#RunMicrovmRequest``."""
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.idle_policy
11
+ import capo_lambda_microvms.types.logging
12
+ import capo_lambda_microvms.types.microvm_image_identifier
13
+ import capo_lambda_microvms.types.network_connector_list
14
+ import capo_lambda_microvms.types.role_arn
15
+ import capo_lambda_microvms.types.run_hook_payload
16
+ import capo_lambda_microvms.types.version
17
+
18
+
19
+ class RunMicrovmRequest(TypedDict, closed=True):
20
+ ingress_network_connectors: NotRequired[
21
+ "capo_lambda_microvms.types.network_connector_list.NetworkConnectorList"
22
+ ]
23
+ """<p>The list of ingress network connectors to configure for the MicroVM.</p>"""
24
+ egress_network_connectors: NotRequired[
25
+ "capo_lambda_microvms.types.network_connector_list.NetworkConnectorList"
26
+ ]
27
+ """<p>The list of egress network connectors to configure for the MicroVM.</p>"""
28
+ image_identifier: (
29
+ "capo_lambda_microvms.types.microvm_image_identifier.MicrovmImageIdentifier"
30
+ )
31
+ """<p>The identifier (ARN or ID) of the MicroVM image to run.</p>"""
32
+ image_version: NotRequired["capo_lambda_microvms.types.version.Version"]
33
+ """<p>The version of the MicroVM image to run.</p>"""
34
+ execution_role_arn: NotRequired["capo_lambda_microvms.types.role_arn.RoleArn"]
35
+ """<p>The ARN of the IAM role to be assumed by the MicroVM during execution.</p>"""
36
+ idle_policy: NotRequired["capo_lambda_microvms.types.idle_policy.IdlePolicy"]
37
+ """<p>Configuration to control auto-suspend and auto-resume behavior.</p>"""
38
+ logging: NotRequired["capo_lambda_microvms.types.logging.Logging"]
39
+ r"""<p>The logging configuration for this MicroVM instance. Specify {\"cloudWatch\": {\"logGroup\": \"...\"}} to stream application logs to a custom CloudWatch log group, or {\"disabled\": {}} to turn off logging.</p>"""
40
+ run_hook_payload: NotRequired[
41
+ "capo_lambda_microvms.types.run_hook_payload.RunHookPayload"
42
+ ]
43
+ """<p>Per-MicroVM initialization data delivered as the request body of the /run lifecycle hook. Use to pass tenant-specific configuration such as session IDs or secret references. Maximum: 16,384 bytes.</p>"""
44
+ maximum_duration_in_seconds: NotRequired["int"]
45
+ """<p>The maximum duration in seconds that the MicroVM can exist before being terminated by the platform. Valid range: 1–28,800 (8 hours).</p>"""
46
+ client_token: NotRequired["str"]
47
+ """<p>A unique, case-sensitive identifier you provide to ensure the idempotency of the request.</p>"""
48
+
49
+
50
+ # --- restJson1 ser/de ---
51
+ def serialize_json(value: RunMicrovmRequest) -> dict:
52
+ out: dict = {}
53
+ if "ingress_network_connectors" in value:
54
+ import capo_lambda_microvms.types.network_connector_list
55
+
56
+ out["ingressNetworkConnectors"] = (
57
+ capo_lambda_microvms.types.network_connector_list.serialize_json(
58
+ value["ingress_network_connectors"]
59
+ )
60
+ )
61
+ if "egress_network_connectors" in value:
62
+ import capo_lambda_microvms.types.network_connector_list
63
+
64
+ out["egressNetworkConnectors"] = (
65
+ capo_lambda_microvms.types.network_connector_list.serialize_json(
66
+ value["egress_network_connectors"]
67
+ )
68
+ )
69
+ out["imageIdentifier"] = value["image_identifier"]
70
+ if "image_version" in value:
71
+ out["imageVersion"] = value["image_version"]
72
+ if "execution_role_arn" in value:
73
+ out["executionRoleArn"] = value["execution_role_arn"]
74
+ if "idle_policy" in value:
75
+ import capo_lambda_microvms.types.idle_policy
76
+
77
+ out["idlePolicy"] = capo_lambda_microvms.types.idle_policy.serialize_json(
78
+ value["idle_policy"]
79
+ )
80
+ if "logging" in value:
81
+ import capo_lambda_microvms.types.logging
82
+
83
+ out["logging"] = capo_lambda_microvms.types.logging.serialize_json(
84
+ value["logging"]
85
+ )
86
+ if "run_hook_payload" in value:
87
+ out["runHookPayload"] = value["run_hook_payload"]
88
+ if "maximum_duration_in_seconds" in value:
89
+ out["maximumDurationInSeconds"] = value["maximum_duration_in_seconds"]
90
+ if "client_token" in value:
91
+ out["clientToken"] = value["client_token"]
92
+ return out
93
+
94
+
95
+ def deserialize_json(data: dict) -> RunMicrovmRequest:
96
+ out: RunMicrovmRequest = {} # type: ignore[typeddict-item]
97
+ if data.get("ingressNetworkConnectors") is not None:
98
+ import capo_lambda_microvms.types.network_connector_list
99
+
100
+ out["ingress_network_connectors"] = (
101
+ capo_lambda_microvms.types.network_connector_list.deserialize_json(
102
+ data["ingressNetworkConnectors"]
103
+ )
104
+ )
105
+ if data.get("egressNetworkConnectors") is not None:
106
+ import capo_lambda_microvms.types.network_connector_list
107
+
108
+ out["egress_network_connectors"] = (
109
+ capo_lambda_microvms.types.network_connector_list.deserialize_json(
110
+ data["egressNetworkConnectors"]
111
+ )
112
+ )
113
+ if data.get("imageIdentifier") is not None:
114
+ out["image_identifier"] = data["imageIdentifier"]
115
+ else:
116
+ raise DeserializationError("RunMicrovmRequest.image_identifier required")
117
+ if data.get("imageVersion") is not None:
118
+ out["image_version"] = data["imageVersion"]
119
+ if data.get("executionRoleArn") is not None:
120
+ out["execution_role_arn"] = data["executionRoleArn"]
121
+ if data.get("idlePolicy") is not None:
122
+ import capo_lambda_microvms.types.idle_policy
123
+
124
+ out["idle_policy"] = capo_lambda_microvms.types.idle_policy.deserialize_json(
125
+ data["idlePolicy"]
126
+ )
127
+ if data.get("logging") is not None:
128
+ import capo_lambda_microvms.types.logging
129
+
130
+ out["logging"] = capo_lambda_microvms.types.logging.deserialize_json(
131
+ data["logging"]
132
+ )
133
+ if data.get("runHookPayload") is not None:
134
+ out["run_hook_payload"] = data["runHookPayload"]
135
+ if data.get("maximumDurationInSeconds") is not None:
136
+ out["maximum_duration_in_seconds"] = data["maximumDurationInSeconds"]
137
+ if data.get("clientToken") is not None:
138
+ out["client_token"] = data["clientToken"]
139
+ return out
@@ -0,0 +1,188 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#RunMicrovmResponse``."""
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 RunMicrovmResponse(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.</p>"""
37
+ maximum_duration_in_seconds: "int"
38
+ """<p>The maximum duration in seconds that the MicroVM can exist.</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: RunMicrovmResponse) -> 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) -> RunMicrovmResponse:
113
+ out: RunMicrovmResponse = {} # type: ignore[typeddict-item]
114
+ if data.get("microvmId") is not None:
115
+ out["microvm_id"] = data["microvmId"]
116
+ else:
117
+ raise DeserializationError("RunMicrovmResponse.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("RunMicrovmResponse.state required")
126
+ if data.get("endpoint") is not None:
127
+ out["endpoint"] = data["endpoint"]
128
+ else:
129
+ raise DeserializationError("RunMicrovmResponse.endpoint required")
130
+ if data.get("imageArn") is not None:
131
+ out["image_arn"] = data["imageArn"]
132
+ else:
133
+ raise DeserializationError("RunMicrovmResponse.image_arn required")
134
+ if data.get("imageVersion") is not None:
135
+ out["image_version"] = data["imageVersion"]
136
+ else:
137
+ raise DeserializationError("RunMicrovmResponse.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
+ "RunMicrovmResponse.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("RunMicrovmResponse.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,35 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#SnapshotBuild``."""
2
+
3
+ from typing_extensions import NotRequired, TypedDict
4
+
5
+
6
+ class SnapshotBuild(TypedDict, closed=True):
7
+ memory_snapshot_size_in_bytes: NotRequired["int"]
8
+ """<p>The size of the memory snapshot in bytes.</p>"""
9
+ code_install_size_in_bytes: NotRequired["int"]
10
+ """<p>The size of the installed code in bytes.</p>"""
11
+ disk_snapshot_size_in_bytes: NotRequired["int"]
12
+ """<p>The size of the disk snapshot in bytes.</p>"""
13
+
14
+
15
+ # --- restJson1 ser/de ---
16
+ def serialize_json(value: SnapshotBuild) -> dict:
17
+ out: dict = {}
18
+ if "memory_snapshot_size_in_bytes" in value:
19
+ out["memorySnapshotSizeInBytes"] = value["memory_snapshot_size_in_bytes"]
20
+ if "code_install_size_in_bytes" in value:
21
+ out["codeInstallSizeInBytes"] = value["code_install_size_in_bytes"]
22
+ if "disk_snapshot_size_in_bytes" in value:
23
+ out["diskSnapshotSizeInBytes"] = value["disk_snapshot_size_in_bytes"]
24
+ return out
25
+
26
+
27
+ def deserialize_json(data: dict) -> SnapshotBuild:
28
+ out: SnapshotBuild = {} # type: ignore[typeddict-item]
29
+ if data.get("memorySnapshotSizeInBytes") is not None:
30
+ out["memory_snapshot_size_in_bytes"] = data["memorySnapshotSizeInBytes"]
31
+ if data.get("codeInstallSizeInBytes") is not None:
32
+ out["code_install_size_in_bytes"] = data["codeInstallSizeInBytes"]
33
+ if data.get("diskSnapshotSizeInBytes") is not None:
34
+ out["disk_snapshot_size_in_bytes"] = data["diskSnapshotSizeInBytes"]
35
+ return out
@@ -0,0 +1,5 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#String``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ String: TypeAlias = str
@@ -0,0 +1,26 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#SuspendMicrovmRequest``."""
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 SuspendMicrovmRequest(TypedDict, closed=True):
12
+ microvm_identifier: (
13
+ "capo_lambda_microvms.types.microvm_identifier.MicrovmIdentifier"
14
+ )
15
+ """<p>The ID of the MicroVM to suspend.</p>"""
16
+
17
+
18
+ # --- restJson1 ser/de ---
19
+ def serialize_json(value: SuspendMicrovmRequest) -> dict:
20
+ out: dict = {}
21
+ return out
22
+
23
+
24
+ def deserialize_json(data: dict) -> SuspendMicrovmRequest:
25
+ out: SuspendMicrovmRequest = {} # type: ignore[typeddict-item]
26
+ return out
@@ -0,0 +1,18 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#SuspendMicrovmResponse``."""
2
+
3
+ from typing_extensions import TypedDict
4
+
5
+
6
+ class SuspendMicrovmResponse(TypedDict, closed=True):
7
+ pass
8
+
9
+
10
+ # --- restJson1 ser/de ---
11
+ def serialize_json(value: SuspendMicrovmResponse) -> dict:
12
+ out: dict = {}
13
+ return out
14
+
15
+
16
+ def deserialize_json(data: dict) -> SuspendMicrovmResponse:
17
+ out: SuspendMicrovmResponse = {} # type: ignore[typeddict-item]
18
+ return out
@@ -0,0 +1,5 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#TagKey``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ TagKey: TypeAlias = str