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,17 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#TagKeyList``."""
2
+
3
+ from typing import TYPE_CHECKING, TypeAlias
4
+
5
+ if TYPE_CHECKING:
6
+ import capo_lambda_microvms.types.tag_key
7
+
8
+ TagKeyList: TypeAlias = list["capo_lambda_microvms.types.tag_key.TagKey"]
9
+
10
+
11
+ # --- restJson1 ser/de ---
12
+ def serialize_json(value: TagKeyList) -> list:
13
+ return list(value)
14
+
15
+
16
+ def deserialize_json(data: list) -> TagKeyList:
17
+ return [item for item in data if item is not None]
@@ -0,0 +1,38 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#TagResourceRequest``."""
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.taggable_resource
11
+ import capo_lambda_microvms.types.tags
12
+
13
+
14
+ class TagResourceRequest(TypedDict, closed=True):
15
+ resource: "capo_lambda_microvms.types.taggable_resource.TaggableResource"
16
+ """<p>The ARN of the resource to tag.</p>"""
17
+ tags: "capo_lambda_microvms.types.tags.Tags"
18
+ """<p>The key-value pairs of tags to add to the resource.</p>"""
19
+
20
+
21
+ # --- restJson1 ser/de ---
22
+ def serialize_json(value: TagResourceRequest) -> dict:
23
+ out: dict = {}
24
+ import capo_lambda_microvms.types.tags
25
+
26
+ out["Tags"] = capo_lambda_microvms.types.tags.serialize_json(value["tags"])
27
+ return out
28
+
29
+
30
+ def deserialize_json(data: dict) -> TagResourceRequest:
31
+ out: TagResourceRequest = {} # type: ignore[typeddict-item]
32
+ if data.get("Tags") is not None:
33
+ import capo_lambda_microvms.types.tags
34
+
35
+ out["tags"] = capo_lambda_microvms.types.tags.deserialize_json(data["Tags"])
36
+ else:
37
+ raise DeserializationError("TagResourceRequest.tags required")
38
+ return out
@@ -0,0 +1,5 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#TagValue``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ TagValue: TypeAlias = str
@@ -0,0 +1,6 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#TaggableResource``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ """ARN of a taggable Lambda resource."""
6
+ TaggableResource: TypeAlias = str
@@ -0,0 +1,29 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#Tags``."""
2
+
3
+ from typing import TYPE_CHECKING, TypeAlias
4
+
5
+ if TYPE_CHECKING:
6
+ import capo_lambda_microvms.types.tag_key
7
+ import capo_lambda_microvms.types.tag_value
8
+
9
+ Tags: TypeAlias = dict[
10
+ "capo_lambda_microvms.types.tag_key.TagKey",
11
+ "capo_lambda_microvms.types.tag_value.TagValue",
12
+ ]
13
+
14
+
15
+ # --- restJson1 ser/de ---
16
+ def serialize_json(input_to_serialize: Tags) -> dict:
17
+ out: dict = {}
18
+ for key, value in input_to_serialize.items():
19
+ out[key] = value
20
+ return out
21
+
22
+
23
+ def deserialize_json(data: dict) -> Tags:
24
+ out: Tags = {}
25
+ for key, value in data.items():
26
+ if value is None:
27
+ continue
28
+ out[key] = value
29
+ return out
@@ -0,0 +1,26 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#TerminateMicrovmRequest``."""
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 TerminateMicrovmRequest(TypedDict, closed=True):
12
+ microvm_identifier: (
13
+ "capo_lambda_microvms.types.microvm_identifier.MicrovmIdentifier"
14
+ )
15
+ """<p>The ID of the MicroVM to terminate.</p>"""
16
+
17
+
18
+ # --- restJson1 ser/de ---
19
+ def serialize_json(value: TerminateMicrovmRequest) -> dict:
20
+ out: dict = {}
21
+ return out
22
+
23
+
24
+ def deserialize_json(data: dict) -> TerminateMicrovmRequest:
25
+ out: TerminateMicrovmRequest = {} # type: ignore[typeddict-item]
26
+ return out
@@ -0,0 +1,18 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#TerminateMicrovmResponse``."""
2
+
3
+ from typing_extensions import TypedDict
4
+
5
+
6
+ class TerminateMicrovmResponse(TypedDict, closed=True):
7
+ pass
8
+
9
+
10
+ # --- restJson1 ser/de ---
11
+ def serialize_json(value: TerminateMicrovmResponse) -> dict:
12
+ out: dict = {}
13
+ return out
14
+
15
+
16
+ def deserialize_json(data: dict) -> TerminateMicrovmResponse:
17
+ out: TerminateMicrovmResponse = {} # type: ignore[typeddict-item]
18
+ return out
@@ -0,0 +1,29 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#TokenParts``."""
2
+
3
+ from typing import TYPE_CHECKING, TypeAlias
4
+
5
+ if TYPE_CHECKING:
6
+ import capo_lambda_microvms.types.auth_token_key
7
+ import capo_lambda_microvms.types.auth_token_value
8
+
9
+ TokenParts: TypeAlias = dict[
10
+ "capo_lambda_microvms.types.auth_token_key.AuthTokenKey",
11
+ "capo_lambda_microvms.types.auth_token_value.AuthTokenValue",
12
+ ]
13
+
14
+
15
+ # --- restJson1 ser/de ---
16
+ def serialize_json(input_to_serialize: TokenParts) -> dict:
17
+ out: dict = {}
18
+ for key, value in input_to_serialize.items():
19
+ out[key] = value
20
+ return out
21
+
22
+
23
+ def deserialize_json(data: dict) -> TokenParts:
24
+ out: TokenParts = {}
25
+ for key, value in data.items():
26
+ if value is None:
27
+ continue
28
+ out[key] = value
29
+ return out
@@ -0,0 +1,27 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#UntagResourceRequest``."""
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.tag_key_list
9
+ import capo_lambda_microvms.types.taggable_resource
10
+
11
+
12
+ class UntagResourceRequest(TypedDict, closed=True):
13
+ resource: "capo_lambda_microvms.types.taggable_resource.TaggableResource"
14
+ """<p>The ARN of the resource to remove tags from.</p>"""
15
+ tag_keys: "capo_lambda_microvms.types.tag_key_list.TagKeyList"
16
+ """<p>The list of tag keys to remove from the resource.</p>"""
17
+
18
+
19
+ # --- restJson1 ser/de ---
20
+ def serialize_json(value: UntagResourceRequest) -> dict:
21
+ out: dict = {}
22
+ return out
23
+
24
+
25
+ def deserialize_json(data: dict) -> UntagResourceRequest:
26
+ out: UntagResourceRequest = {} # type: ignore[typeddict-item]
27
+ return out
@@ -0,0 +1,205 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdamicrovms#UpdateMicrovmImageRequest``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import NotRequired, TypedDict
6
+
7
+ from capo_lambda_microvms.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_lambda_microvms.types.capability_list
11
+ import capo_lambda_microvms.types.code_artifact
12
+ import capo_lambda_microvms.types.cpu_configuration_list
13
+ import capo_lambda_microvms.types.environment_variable_map
14
+ import capo_lambda_microvms.types.hooks
15
+ import capo_lambda_microvms.types.logging
16
+ import capo_lambda_microvms.types.microvm_image_identifier
17
+ import capo_lambda_microvms.types.network_connector_list
18
+ import capo_lambda_microvms.types.non_blank_string
19
+ import capo_lambda_microvms.types.resources_list
20
+ import capo_lambda_microvms.types.role_arn
21
+ import capo_lambda_microvms.types.version
22
+
23
+
24
+ class UpdateMicrovmImageRequest(TypedDict, closed=True):
25
+ base_image_arn: "capo_lambda_microvms.types.non_blank_string.NonBlankString"
26
+ """<p>The ARN of the base MicroVM image.</p>"""
27
+ base_image_version: NotRequired["capo_lambda_microvms.types.version.Version"]
28
+ """<p>The specific version of the base MicroVM image to use.</p>"""
29
+ build_role_arn: "capo_lambda_microvms.types.role_arn.RoleArn"
30
+ """<p>The ARN of the IAM build role.</p>"""
31
+ description: NotRequired["str"]
32
+ """<p>The description of the MicroVM image.</p>"""
33
+ code_artifact: "capo_lambda_microvms.types.code_artifact.CodeArtifact"
34
+ """<p>The code artifact containing the application code and metadata for the MicroVM image.</p>"""
35
+ logging: NotRequired["capo_lambda_microvms.types.logging.Logging"]
36
+ r"""<p>The logging configuration for build-time and runtime logs. Specify {\"cloudWatch\": {\"logGroup\": \"...\"}} to stream logs to a custom CloudWatch log group, or {\"disabled\": {}} to turn off logging.</p>"""
37
+ egress_network_connectors: NotRequired[
38
+ "capo_lambda_microvms.types.network_connector_list.NetworkConnectorList"
39
+ ]
40
+ """<p>The list of egress network connectors available to the MicroVM at runtime.</p>"""
41
+ cpu_configurations: NotRequired[
42
+ "capo_lambda_microvms.types.cpu_configuration_list.CpuConfigurationList"
43
+ ]
44
+ """<p>The list of supported CPU configurations for the MicroVM.</p>"""
45
+ resources: NotRequired["capo_lambda_microvms.types.resources_list.ResourcesList"]
46
+ """<p>The resource requirements for the MicroVM.</p>"""
47
+ additional_os_capabilities: NotRequired[
48
+ "capo_lambda_microvms.types.capability_list.CapabilityList"
49
+ ]
50
+ """<p>Additional OS capabilities granted to the MicroVM runtime environment.</p>"""
51
+ hooks: NotRequired["capo_lambda_microvms.types.hooks.Hooks"]
52
+ environment_variables: NotRequired[
53
+ "capo_lambda_microvms.types.environment_variable_map.EnvironmentVariableMap"
54
+ ]
55
+ """<p>Environment variables set in the MicroVM runtime environment.</p>"""
56
+ image_identifier: (
57
+ "capo_lambda_microvms.types.microvm_image_identifier.MicrovmImageIdentifier"
58
+ )
59
+ """<p>The unique identifier (ARN or ID) of the MicroVM image to update.</p>"""
60
+ client_token: NotRequired["str"]
61
+ """<p>A unique, case-sensitive identifier you provide to ensure the idempotency of the request.</p>"""
62
+
63
+
64
+ # --- restJson1 ser/de ---
65
+ def serialize_json(value: UpdateMicrovmImageRequest) -> dict:
66
+ out: dict = {}
67
+ out["baseImageArn"] = value["base_image_arn"]
68
+ if "base_image_version" in value:
69
+ out["baseImageVersion"] = value["base_image_version"]
70
+ out["buildRoleArn"] = value["build_role_arn"]
71
+ if "description" in value:
72
+ out["description"] = value["description"]
73
+ import capo_lambda_microvms.types.code_artifact
74
+
75
+ out["codeArtifact"] = capo_lambda_microvms.types.code_artifact.serialize_json(
76
+ value["code_artifact"]
77
+ )
78
+ if "logging" in value:
79
+ import capo_lambda_microvms.types.logging
80
+
81
+ out["logging"] = capo_lambda_microvms.types.logging.serialize_json(
82
+ value["logging"]
83
+ )
84
+ if "egress_network_connectors" in value:
85
+ import capo_lambda_microvms.types.network_connector_list
86
+
87
+ out["egressNetworkConnectors"] = (
88
+ capo_lambda_microvms.types.network_connector_list.serialize_json(
89
+ value["egress_network_connectors"]
90
+ )
91
+ )
92
+ if "cpu_configurations" in value:
93
+ import capo_lambda_microvms.types.cpu_configuration_list
94
+
95
+ out["cpuConfigurations"] = (
96
+ capo_lambda_microvms.types.cpu_configuration_list.serialize_json(
97
+ value["cpu_configurations"]
98
+ )
99
+ )
100
+ if "resources" in value:
101
+ import capo_lambda_microvms.types.resources_list
102
+
103
+ out["resources"] = capo_lambda_microvms.types.resources_list.serialize_json(
104
+ value["resources"]
105
+ )
106
+ if "additional_os_capabilities" in value:
107
+ import capo_lambda_microvms.types.capability_list
108
+
109
+ out["additionalOsCapabilities"] = (
110
+ capo_lambda_microvms.types.capability_list.serialize_json(
111
+ value["additional_os_capabilities"]
112
+ )
113
+ )
114
+ if "hooks" in value:
115
+ import capo_lambda_microvms.types.hooks
116
+
117
+ out["hooks"] = capo_lambda_microvms.types.hooks.serialize_json(value["hooks"])
118
+ if "environment_variables" in value:
119
+ import capo_lambda_microvms.types.environment_variable_map
120
+
121
+ out["environmentVariables"] = (
122
+ capo_lambda_microvms.types.environment_variable_map.serialize_json(
123
+ value["environment_variables"]
124
+ )
125
+ )
126
+ if "client_token" in value:
127
+ out["clientToken"] = value["client_token"]
128
+ return out
129
+
130
+
131
+ def deserialize_json(data: dict) -> UpdateMicrovmImageRequest:
132
+ out: UpdateMicrovmImageRequest = {} # type: ignore[typeddict-item]
133
+ if data.get("baseImageArn") is not None:
134
+ out["base_image_arn"] = data["baseImageArn"]
135
+ else:
136
+ raise DeserializationError("UpdateMicrovmImageRequest.base_image_arn required")
137
+ if data.get("baseImageVersion") is not None:
138
+ out["base_image_version"] = data["baseImageVersion"]
139
+ if data.get("buildRoleArn") is not None:
140
+ out["build_role_arn"] = data["buildRoleArn"]
141
+ else:
142
+ raise DeserializationError("UpdateMicrovmImageRequest.build_role_arn required")
143
+ if data.get("description") is not None:
144
+ out["description"] = data["description"]
145
+ if data.get("codeArtifact") is not None:
146
+ import capo_lambda_microvms.types.code_artifact
147
+
148
+ out["code_artifact"] = (
149
+ capo_lambda_microvms.types.code_artifact.deserialize_json(
150
+ data["codeArtifact"]
151
+ )
152
+ )
153
+ else:
154
+ raise DeserializationError("UpdateMicrovmImageRequest.code_artifact required")
155
+ if data.get("logging") is not None:
156
+ import capo_lambda_microvms.types.logging
157
+
158
+ out["logging"] = capo_lambda_microvms.types.logging.deserialize_json(
159
+ data["logging"]
160
+ )
161
+ if data.get("egressNetworkConnectors") is not None:
162
+ import capo_lambda_microvms.types.network_connector_list
163
+
164
+ out["egress_network_connectors"] = (
165
+ capo_lambda_microvms.types.network_connector_list.deserialize_json(
166
+ data["egressNetworkConnectors"]
167
+ )
168
+ )
169
+ if data.get("cpuConfigurations") is not None:
170
+ import capo_lambda_microvms.types.cpu_configuration_list
171
+
172
+ out["cpu_configurations"] = (
173
+ capo_lambda_microvms.types.cpu_configuration_list.deserialize_json(
174
+ data["cpuConfigurations"]
175
+ )
176
+ )
177
+ if data.get("resources") is not None:
178
+ import capo_lambda_microvms.types.resources_list
179
+
180
+ out["resources"] = capo_lambda_microvms.types.resources_list.deserialize_json(
181
+ data["resources"]
182
+ )
183
+ if data.get("additionalOsCapabilities") is not None:
184
+ import capo_lambda_microvms.types.capability_list
185
+
186
+ out["additional_os_capabilities"] = (
187
+ capo_lambda_microvms.types.capability_list.deserialize_json(
188
+ data["additionalOsCapabilities"]
189
+ )
190
+ )
191
+ if data.get("hooks") is not None:
192
+ import capo_lambda_microvms.types.hooks
193
+
194
+ out["hooks"] = capo_lambda_microvms.types.hooks.deserialize_json(data["hooks"])
195
+ if data.get("environmentVariables") is not None:
196
+ import capo_lambda_microvms.types.environment_variable_map
197
+
198
+ out["environment_variables"] = (
199
+ capo_lambda_microvms.types.environment_variable_map.deserialize_json(
200
+ data["environmentVariables"]
201
+ )
202
+ )
203
+ if data.get("clientToken") is not None:
204
+ out["client_token"] = data["clientToken"]
205
+ return out