capo-lambda-web 0.2.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 (154) hide show
  1. capo_lambda_web/__init__.py +71 -0
  2. capo_lambda_web/_async.py +25 -0
  3. capo_lambda_web/_auth/_identity.py +16 -0
  4. capo_lambda_web/_auth/_providers.py +886 -0
  5. capo_lambda_web/_auth/_signers.py +121 -0
  6. capo_lambda_web/_auth/_sigv4.py +579 -0
  7. capo_lambda_web/_auth/_zapros_handler.py +80 -0
  8. capo_lambda_web/_body.py +221 -0
  9. capo_lambda_web/_iter.py +113 -0
  10. capo_lambda_web/_operations/lambda_web/create_web_function.py +184 -0
  11. capo_lambda_web/_operations/lambda_web/create_web_function_endpoint.py +194 -0
  12. capo_lambda_web/_operations/lambda_web/create_web_function_revision.py +188 -0
  13. capo_lambda_web/_operations/lambda_web/delete_resource_policy.py +147 -0
  14. capo_lambda_web/_operations/lambda_web/delete_web_function.py +145 -0
  15. capo_lambda_web/_operations/lambda_web/delete_web_function_endpoint.py +149 -0
  16. capo_lambda_web/_operations/lambda_web/delete_web_function_revision.py +149 -0
  17. capo_lambda_web/_operations/lambda_web/get_resource_policy.py +165 -0
  18. capo_lambda_web/_operations/lambda_web/get_web_account_settings.py +155 -0
  19. capo_lambda_web/_operations/lambda_web/get_web_function.py +171 -0
  20. capo_lambda_web/_operations/lambda_web/get_web_function_endpoint.py +180 -0
  21. capo_lambda_web/_operations/lambda_web/get_web_function_revision.py +174 -0
  22. capo_lambda_web/_operations/lambda_web/list_tags.py +164 -0
  23. capo_lambda_web/_operations/lambda_web/list_web_function_endpoints.py +176 -0
  24. capo_lambda_web/_operations/lambda_web/list_web_function_revisions.py +176 -0
  25. capo_lambda_web/_operations/lambda_web/list_web_functions.py +168 -0
  26. capo_lambda_web/_operations/lambda_web/put_resource_policy.py +179 -0
  27. capo_lambda_web/_operations/lambda_web/tag_resource.py +155 -0
  28. capo_lambda_web/_operations/lambda_web/untag_resource.py +148 -0
  29. capo_lambda_web/_operations/lambda_web/update_web_function_endpoint.py +196 -0
  30. capo_lambda_web/_pagination.py +21 -0
  31. capo_lambda_web/_protocol/__init__.py +1 -0
  32. capo_lambda_web/_protocol/errors.py +93 -0
  33. capo_lambda_web/_protocol/eventstream.py +240 -0
  34. capo_lambda_web/_protocol/serialize.py +47 -0
  35. capo_lambda_web/_protocol/xml.py +33 -0
  36. capo_lambda_web/_resources/lambda_web/web_function.py +477 -0
  37. capo_lambda_web/_rule_engine/__init__.py +0 -0
  38. capo_lambda_web/_rule_engine/_aws_partition.py +160 -0
  39. capo_lambda_web/_rule_engine/_endpoint_rule_set.py +135 -0
  40. capo_lambda_web/_rule_engine/_endpoint_runtime.py +389 -0
  41. capo_lambda_web/_services/_aws_config.py +160 -0
  42. capo_lambda_web/_services/_pipeline.py +264 -0
  43. capo_lambda_web/_services/async_lambda_web.py +1394 -0
  44. capo_lambda_web/_services/lambda_web.py +1374 -0
  45. capo_lambda_web/errors/__init__.py +36 -0
  46. capo_lambda_web/errors/_base.py +94 -0
  47. capo_lambda_web/errors/access_denied_exception.py +48 -0
  48. capo_lambda_web/errors/conflict_exception.py +58 -0
  49. capo_lambda_web/errors/internal_server_exception.py +47 -0
  50. capo_lambda_web/errors/resource_not_found_exception.py +60 -0
  51. capo_lambda_web/errors/service_quota_exceeded_exception.py +74 -0
  52. capo_lambda_web/errors/throttling_exception.py +60 -0
  53. capo_lambda_web/errors/validation_exception.py +46 -0
  54. capo_lambda_web/py.typed +0 -0
  55. capo_lambda_web/types/_prelude/blob.py +12 -0
  56. capo_lambda_web/types/_prelude/timestamp.py +17 -0
  57. capo_lambda_web/types/account_quotas.py +47 -0
  58. capo_lambda_web/types/account_usage.py +26 -0
  59. capo_lambda_web/types/application_log_level.py +22 -0
  60. capo_lambda_web/types/auth_type.py +18 -0
  61. capo_lambda_web/types/auto_deployment_mode.py +18 -0
  62. capo_lambda_web/types/build_config.py +55 -0
  63. capo_lambda_web/types/code_config.py +37 -0
  64. capo_lambda_web/types/create_web_function_endpoint_request.py +164 -0
  65. capo_lambda_web/types/create_web_function_endpoint_response.py +291 -0
  66. capo_lambda_web/types/create_web_function_request.py +72 -0
  67. capo_lambda_web/types/create_web_function_response.py +144 -0
  68. capo_lambda_web/types/create_web_function_revision_request.py +76 -0
  69. capo_lambda_web/types/create_web_function_revision_response.py +157 -0
  70. capo_lambda_web/types/date_time.py +20 -0
  71. capo_lambda_web/types/delete_resource_policy_request.py +29 -0
  72. capo_lambda_web/types/delete_web_function_endpoint_request.py +27 -0
  73. capo_lambda_web/types/delete_web_function_request.py +24 -0
  74. capo_lambda_web/types/delete_web_function_revision_request.py +27 -0
  75. capo_lambda_web/types/description.py +5 -0
  76. capo_lambda_web/types/domain_name.py +5 -0
  77. capo_lambda_web/types/endpoint_arn.py +5 -0
  78. capo_lambda_web/types/endpoint_config.py +134 -0
  79. capo_lambda_web/types/endpoint_name.py +5 -0
  80. capo_lambda_web/types/endpoint_state.py +20 -0
  81. capo_lambda_web/types/endpoint_type.py +19 -0
  82. capo_lambda_web/types/endpoint_update_status.py +19 -0
  83. capo_lambda_web/types/environment_variables.py +22 -0
  84. capo_lambda_web/types/filter.py +46 -0
  85. capo_lambda_web/types/filter_list.py +29 -0
  86. capo_lambda_web/types/filter_value_list.py +14 -0
  87. capo_lambda_web/types/function_arn.py +5 -0
  88. capo_lambda_web/types/function_endpoint_summary.py +249 -0
  89. capo_lambda_web/types/function_endpoint_summary_list.py +33 -0
  90. capo_lambda_web/types/function_name.py +5 -0
  91. capo_lambda_web/types/function_revision_summary.py +83 -0
  92. capo_lambda_web/types/function_revision_summary_list.py +33 -0
  93. capo_lambda_web/types/function_state.py +20 -0
  94. capo_lambda_web/types/function_summary.py +91 -0
  95. capo_lambda_web/types/function_summary_list.py +31 -0
  96. capo_lambda_web/types/get_resource_policy_request.py +24 -0
  97. capo_lambda_web/types/get_resource_policy_response.py +39 -0
  98. capo_lambda_web/types/get_web_account_settings_request.py +18 -0
  99. capo_lambda_web/types/get_web_account_settings_response.py +59 -0
  100. capo_lambda_web/types/get_web_function_endpoint_request.py +27 -0
  101. capo_lambda_web/types/get_web_function_endpoint_response.py +285 -0
  102. capo_lambda_web/types/get_web_function_request.py +24 -0
  103. capo_lambda_web/types/get_web_function_response.py +91 -0
  104. capo_lambda_web/types/get_web_function_revision_request.py +27 -0
  105. capo_lambda_web/types/get_web_function_revision_response.py +155 -0
  106. capo_lambda_web/types/kms_key_arn.py +5 -0
  107. capo_lambda_web/types/list_tags_request.py +24 -0
  108. capo_lambda_web/types/list_tags_response.py +32 -0
  109. capo_lambda_web/types/list_web_function_endpoints_request.py +54 -0
  110. capo_lambda_web/types/list_web_function_endpoints_response.py +52 -0
  111. capo_lambda_web/types/list_web_function_revisions_request.py +54 -0
  112. capo_lambda_web/types/list_web_function_revisions_response.py +52 -0
  113. capo_lambda_web/types/list_web_functions_request.py +51 -0
  114. capo_lambda_web/types/list_web_functions_response.py +46 -0
  115. capo_lambda_web/types/logging_config.py +67 -0
  116. capo_lambda_web/types/max_results.py +5 -0
  117. capo_lambda_web/types/next_token.py +5 -0
  118. capo_lambda_web/types/policy_revision_id.py +5 -0
  119. capo_lambda_web/types/put_resource_policy_request.py +43 -0
  120. capo_lambda_web/types/put_resource_policy_response.py +39 -0
  121. capo_lambda_web/types/region.py +5 -0
  122. capo_lambda_web/types/region_list.py +17 -0
  123. capo_lambda_web/types/regional_endpoint.py +140 -0
  124. capo_lambda_web/types/regional_endpoints.py +33 -0
  125. capo_lambda_web/types/resource_arn.py +5 -0
  126. capo_lambda_web/types/resource_policy.py +5 -0
  127. capo_lambda_web/types/revision_arn.py +5 -0
  128. capo_lambda_web/types/revision_config.py +69 -0
  129. capo_lambda_web/types/revision_error.py +40 -0
  130. capo_lambda_web/types/revision_errors.py +29 -0
  131. capo_lambda_web/types/revision_id.py +5 -0
  132. capo_lambda_web/types/revision_state.py +19 -0
  133. capo_lambda_web/types/revision_weight.py +38 -0
  134. capo_lambda_web/types/revision_weight_list.py +31 -0
  135. capo_lambda_web/types/role_arn.py +5 -0
  136. capo_lambda_web/types/runtime_config.py +26 -0
  137. capo_lambda_web/types/s3_object.py +39 -0
  138. capo_lambda_web/types/scaling_config.py +23 -0
  139. capo_lambda_web/types/service_config.py +87 -0
  140. capo_lambda_web/types/system_log_level.py +19 -0
  141. capo_lambda_web/types/tag_key.py +5 -0
  142. capo_lambda_web/types/tag_key_list.py +17 -0
  143. capo_lambda_web/types/tag_resource_request.py +38 -0
  144. capo_lambda_web/types/tags.py +25 -0
  145. capo_lambda_web/types/telemetry_config.py +36 -0
  146. capo_lambda_web/types/throttle_config.py +23 -0
  147. capo_lambda_web/types/untag_resource_request.py +27 -0
  148. capo_lambda_web/types/update_web_function_endpoint_request.py +121 -0
  149. capo_lambda_web/types/update_web_function_endpoint_response.py +291 -0
  150. capo_lambda_web-0.2.0.dist-info/METADATA +104 -0
  151. capo_lambda_web-0.2.0.dist-info/RECORD +154 -0
  152. capo_lambda_web-0.2.0.dist-info/WHEEL +5 -0
  153. capo_lambda_web-0.2.0.dist-info/licenses/LICENSE +21 -0
  154. capo_lambda_web-0.2.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,18 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdaweb#AuthType``."""
2
+
3
+ from typing import Literal, TypeAlias, cast
4
+
5
+ """<p>The authorization type for a web function endpoint. Possible values: <code>ApplicationManaged</code> (the function handles authorization), <code>IamAuth</code> (Lambda authorizes requests with AWS SigV4 and IAM).</p>"""
6
+ AuthType: TypeAlias = Literal[
7
+ "ApplicationManaged",
8
+ "IamAuth",
9
+ ]
10
+
11
+
12
+ # --- restJson1 ser/de ---
13
+ def serialize_json(value: AuthType) -> str:
14
+ return value
15
+
16
+
17
+ def deserialize_json(data: str) -> AuthType:
18
+ return cast(AuthType, data)
@@ -0,0 +1,18 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdaweb#AutoDeploymentMode``."""
2
+
3
+ from typing import Literal, TypeAlias, cast
4
+
5
+ """<p>The auto-deployment mode for a web function endpoint. Possible values: <code>LatestRevision</code> (endpoint automatically serves the newest revision), <code>Disabled</code> (revision routing is fixed until explicitly changed).</p>"""
6
+ AutoDeploymentMode: TypeAlias = Literal[
7
+ "LatestRevision",
8
+ "Disabled",
9
+ ]
10
+
11
+
12
+ # --- restJson1 ser/de ---
13
+ def serialize_json(value: AutoDeploymentMode) -> str:
14
+ return value
15
+
16
+
17
+ def deserialize_json(data: str) -> AutoDeploymentMode:
18
+ return cast(AutoDeploymentMode, data)
@@ -0,0 +1,55 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdaweb#BuildConfig``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ from capo_lambda_web.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_lambda_web.types.code_config
11
+ import capo_lambda_web.types.runtime_config
12
+
13
+
14
+ class BuildConfig(TypedDict, closed=True):
15
+ code_config: "capo_lambda_web.types.code_config.CodeConfig"
16
+ """<p>The code configuration specifying where the deployment artifact is stored.</p>"""
17
+ runtime_config: "capo_lambda_web.types.runtime_config.RuntimeConfig"
18
+ """<p>The runtime configuration for the revision.</p>"""
19
+
20
+
21
+ # --- restJson1 ser/de ---
22
+ def serialize_json(value: BuildConfig) -> dict:
23
+ out: dict = {}
24
+ import capo_lambda_web.types.code_config
25
+
26
+ out["codeConfig"] = capo_lambda_web.types.code_config.serialize_json(
27
+ value["code_config"]
28
+ )
29
+ import capo_lambda_web.types.runtime_config
30
+
31
+ out["runtimeConfig"] = capo_lambda_web.types.runtime_config.serialize_json(
32
+ value["runtime_config"]
33
+ )
34
+ return out
35
+
36
+
37
+ def deserialize_json(data: dict) -> BuildConfig:
38
+ out: BuildConfig = {} # type: ignore[typeddict-item]
39
+ if data.get("codeConfig") is not None:
40
+ import capo_lambda_web.types.code_config
41
+
42
+ out["code_config"] = capo_lambda_web.types.code_config.deserialize_json(
43
+ data["codeConfig"]
44
+ )
45
+ else:
46
+ raise DeserializationError("BuildConfig.code_config required")
47
+ if data.get("runtimeConfig") is not None:
48
+ import capo_lambda_web.types.runtime_config
49
+
50
+ out["runtime_config"] = capo_lambda_web.types.runtime_config.deserialize_json(
51
+ data["runtimeConfig"]
52
+ )
53
+ else:
54
+ raise DeserializationError("BuildConfig.runtime_config required")
55
+ return out
@@ -0,0 +1,37 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdaweb#CodeConfig``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ from capo_lambda_web.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_lambda_web.types.s3_object
11
+
12
+
13
+ class CodeConfig(TypedDict, closed=True):
14
+ s3_object: "capo_lambda_web.types.s3_object.S3Object"
15
+ """<p>The Amazon S3 location of the deployment artifact.</p>"""
16
+
17
+
18
+ # --- restJson1 ser/de ---
19
+ def serialize_json(value: CodeConfig) -> dict:
20
+ out: dict = {}
21
+ import capo_lambda_web.types.s3_object
22
+
23
+ out["s3Object"] = capo_lambda_web.types.s3_object.serialize_json(value["s3_object"])
24
+ return out
25
+
26
+
27
+ def deserialize_json(data: dict) -> CodeConfig:
28
+ out: CodeConfig = {} # type: ignore[typeddict-item]
29
+ if data.get("s3Object") is not None:
30
+ import capo_lambda_web.types.s3_object
31
+
32
+ out["s3_object"] = capo_lambda_web.types.s3_object.deserialize_json(
33
+ data["s3Object"]
34
+ )
35
+ else:
36
+ raise DeserializationError("CodeConfig.s3_object required")
37
+ return out
@@ -0,0 +1,164 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdaweb#CreateWebFunctionEndpointRequest``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import NotRequired, TypedDict
6
+
7
+ from capo_lambda_web.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_lambda_web.types.auth_type
11
+ import capo_lambda_web.types.auto_deployment_mode
12
+ import capo_lambda_web.types.description
13
+ import capo_lambda_web.types.endpoint_name
14
+ import capo_lambda_web.types.endpoint_type
15
+ import capo_lambda_web.types.function_name
16
+ import capo_lambda_web.types.region_list
17
+ import capo_lambda_web.types.revision_weight_list
18
+ import capo_lambda_web.types.scaling_config
19
+ import capo_lambda_web.types.throttle_config
20
+
21
+
22
+ class CreateWebFunctionEndpointRequest(TypedDict, closed=True):
23
+ function_name: "capo_lambda_web.types.function_name.FunctionName"
24
+ """<p>The name of the web function to create the endpoint for. You can specify the function name or the function ARN. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.</p>"""
25
+ endpoint_name: "capo_lambda_web.types.endpoint_name.EndpointName"
26
+ """<p>The name of the endpoint to create. The name can contain letters, numbers, hyphens (-), and underscores (_), and can't begin or end with a hyphen or an underscore. The length constraint applies only to the full ARN. If you specify only the endpoint name, it is limited to 64 characters in length.</p>"""
27
+ description: NotRequired["capo_lambda_web.types.description.Description"]
28
+ """<p>A description of the endpoint.</p>"""
29
+ endpoint_type: "capo_lambda_web.types.endpoint_type.EndpointType"
30
+ """<p>The type of endpoint to create. Determines how traffic is served and routed across Regions.</p>"""
31
+ auth_type: "capo_lambda_web.types.auth_type.AuthType"
32
+ """<p>The authorization type for the endpoint.</p>"""
33
+ auto_deployment_mode: NotRequired[
34
+ "capo_lambda_web.types.auto_deployment_mode.AutoDeploymentMode"
35
+ ]
36
+ """<p>The auto-deployment mode for the endpoint. Controls whether the endpoint automatically serves the newest revision. If you don't specify a value, the default is <code>Disabled</code>, and this default is returned in the response.</p>"""
37
+ revision_weights: NotRequired[
38
+ "capo_lambda_web.types.revision_weight_list.RevisionWeightList"
39
+ ]
40
+ """<p>A list of revision weights that determine how traffic is distributed across revisions. Up to two revisions can be specified for canary or blue-green deployments.</p>"""
41
+ regions: NotRequired["capo_lambda_web.types.region_list.RegionList"]
42
+ """<p>The list of Regions for the endpoint. Required when the endpoint type is <code>MultiRegion</code> or <code>PerRegion</code>: specify at least one Region other than the Region where you create the endpoint (the home Region). The home Region is added automatically if you don't include it; specifying only the home Region isn't allowed. When the endpoint type is <code>HomeRegion</code>, omit this field or specify only the home Region.</p>"""
43
+ scaling_config: NotRequired["capo_lambda_web.types.scaling_config.ScalingConfig"]
44
+ """<p>The scaling configuration for the endpoint. There is no default value. If you don't specify a scaling configuration, it is absent from the response.</p>"""
45
+ throttle_config: NotRequired["capo_lambda_web.types.throttle_config.ThrottleConfig"]
46
+ """<p>The throttling configuration for the endpoint. There is no default value. If you don't specify a throttling configuration, it is absent from the response.</p>"""
47
+
48
+
49
+ # --- restJson1 ser/de ---
50
+ def serialize_json(value: CreateWebFunctionEndpointRequest) -> dict:
51
+ out: dict = {}
52
+ out["endpointName"] = value["endpoint_name"]
53
+ if "description" in value:
54
+ out["description"] = value["description"]
55
+ import capo_lambda_web.types.endpoint_type
56
+
57
+ out["endpointType"] = capo_lambda_web.types.endpoint_type.serialize_json(
58
+ value["endpoint_type"]
59
+ )
60
+ import capo_lambda_web.types.auth_type
61
+
62
+ out["authType"] = capo_lambda_web.types.auth_type.serialize_json(value["auth_type"])
63
+ if "auto_deployment_mode" in value:
64
+ import capo_lambda_web.types.auto_deployment_mode
65
+
66
+ out["autoDeploymentMode"] = (
67
+ capo_lambda_web.types.auto_deployment_mode.serialize_json(
68
+ value["auto_deployment_mode"]
69
+ )
70
+ )
71
+ if "revision_weights" in value:
72
+ import capo_lambda_web.types.revision_weight_list
73
+
74
+ out["revisionWeights"] = (
75
+ capo_lambda_web.types.revision_weight_list.serialize_json(
76
+ value["revision_weights"]
77
+ )
78
+ )
79
+ if "regions" in value:
80
+ import capo_lambda_web.types.region_list
81
+
82
+ out["regions"] = capo_lambda_web.types.region_list.serialize_json(
83
+ value["regions"]
84
+ )
85
+ if "scaling_config" in value:
86
+ import capo_lambda_web.types.scaling_config
87
+
88
+ out["scalingConfig"] = capo_lambda_web.types.scaling_config.serialize_json(
89
+ value["scaling_config"]
90
+ )
91
+ if "throttle_config" in value:
92
+ import capo_lambda_web.types.throttle_config
93
+
94
+ out["throttleConfig"] = capo_lambda_web.types.throttle_config.serialize_json(
95
+ value["throttle_config"]
96
+ )
97
+ return out
98
+
99
+
100
+ def deserialize_json(data: dict) -> CreateWebFunctionEndpointRequest:
101
+ out: CreateWebFunctionEndpointRequest = {} # type: ignore[typeddict-item]
102
+ if data.get("endpointName") is not None:
103
+ out["endpoint_name"] = data["endpointName"]
104
+ else:
105
+ raise DeserializationError(
106
+ "CreateWebFunctionEndpointRequest.endpoint_name required"
107
+ )
108
+ if data.get("description") is not None:
109
+ out["description"] = data["description"]
110
+ if data.get("endpointType") is not None:
111
+ import capo_lambda_web.types.endpoint_type
112
+
113
+ out["endpoint_type"] = capo_lambda_web.types.endpoint_type.deserialize_json(
114
+ data["endpointType"]
115
+ )
116
+ else:
117
+ raise DeserializationError(
118
+ "CreateWebFunctionEndpointRequest.endpoint_type required"
119
+ )
120
+ if data.get("authType") is not None:
121
+ import capo_lambda_web.types.auth_type
122
+
123
+ out["auth_type"] = capo_lambda_web.types.auth_type.deserialize_json(
124
+ data["authType"]
125
+ )
126
+ else:
127
+ raise DeserializationError(
128
+ "CreateWebFunctionEndpointRequest.auth_type required"
129
+ )
130
+ if data.get("autoDeploymentMode") is not None:
131
+ import capo_lambda_web.types.auto_deployment_mode
132
+
133
+ out["auto_deployment_mode"] = (
134
+ capo_lambda_web.types.auto_deployment_mode.deserialize_json(
135
+ data["autoDeploymentMode"]
136
+ )
137
+ )
138
+ if data.get("revisionWeights") is not None:
139
+ import capo_lambda_web.types.revision_weight_list
140
+
141
+ out["revision_weights"] = (
142
+ capo_lambda_web.types.revision_weight_list.deserialize_json(
143
+ data["revisionWeights"]
144
+ )
145
+ )
146
+ if data.get("regions") is not None:
147
+ import capo_lambda_web.types.region_list
148
+
149
+ out["regions"] = capo_lambda_web.types.region_list.deserialize_json(
150
+ data["regions"]
151
+ )
152
+ if data.get("scalingConfig") is not None:
153
+ import capo_lambda_web.types.scaling_config
154
+
155
+ out["scaling_config"] = capo_lambda_web.types.scaling_config.deserialize_json(
156
+ data["scalingConfig"]
157
+ )
158
+ if data.get("throttleConfig") is not None:
159
+ import capo_lambda_web.types.throttle_config
160
+
161
+ out["throttle_config"] = capo_lambda_web.types.throttle_config.deserialize_json(
162
+ data["throttleConfig"]
163
+ )
164
+ return out
@@ -0,0 +1,291 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdaweb#CreateWebFunctionEndpointResponse``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import NotRequired, TypedDict
6
+
7
+ from capo_lambda_web.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_lambda_web.types.auth_type
11
+ import capo_lambda_web.types.auto_deployment_mode
12
+ import capo_lambda_web.types.date_time
13
+ import capo_lambda_web.types.description
14
+ import capo_lambda_web.types.domain_name
15
+ import capo_lambda_web.types.endpoint_arn
16
+ import capo_lambda_web.types.endpoint_name
17
+ import capo_lambda_web.types.endpoint_state
18
+ import capo_lambda_web.types.endpoint_type
19
+ import capo_lambda_web.types.endpoint_update_status
20
+ import capo_lambda_web.types.function_arn
21
+ import capo_lambda_web.types.region_list
22
+ import capo_lambda_web.types.regional_endpoints
23
+ import capo_lambda_web.types.revision_weight_list
24
+ import capo_lambda_web.types.scaling_config
25
+ import capo_lambda_web.types.throttle_config
26
+
27
+
28
+ class CreateWebFunctionEndpointResponse(TypedDict, closed=True):
29
+ function_arn: "capo_lambda_web.types.function_arn.FunctionArn"
30
+ """<p>The Amazon Resource Name (ARN) of the web function.</p>"""
31
+ endpoint_arn: "capo_lambda_web.types.endpoint_arn.EndpointArn"
32
+ """<p>The Amazon Resource Name (ARN) of the endpoint.</p>"""
33
+ endpoint_name: "capo_lambda_web.types.endpoint_name.EndpointName"
34
+ """<p>The name of the endpoint.</p>"""
35
+ description: NotRequired["capo_lambda_web.types.description.Description"]
36
+ """<p>The description of the endpoint.</p>"""
37
+ endpoint_type: "capo_lambda_web.types.endpoint_type.EndpointType"
38
+ domain_name: "capo_lambda_web.types.domain_name.DomainName"
39
+ """<p>The domain name assigned to the endpoint.</p>"""
40
+ auth_type: "capo_lambda_web.types.auth_type.AuthType"
41
+ auto_deployment_mode: (
42
+ "capo_lambda_web.types.auto_deployment_mode.AutoDeploymentMode"
43
+ )
44
+ revision_weights: "capo_lambda_web.types.revision_weight_list.RevisionWeightList"
45
+ """<p>The traffic distribution across revisions for the endpoint. Each entry maps a revision to a weight from 1 to 100.</p>"""
46
+ regions: "capo_lambda_web.types.region_list.RegionList"
47
+ """<p>The Regions configured for the endpoint.</p>"""
48
+ scaling_config: NotRequired["capo_lambda_web.types.scaling_config.ScalingConfig"]
49
+ throttle_config: NotRequired["capo_lambda_web.types.throttle_config.ThrottleConfig"]
50
+ state: "capo_lambda_web.types.endpoint_state.EndpointState"
51
+ """<p>The current state of the endpoint.</p>"""
52
+ state_reason: "str"
53
+ """<p>The reason for the current state of the endpoint.</p>"""
54
+ update_status: NotRequired[
55
+ "capo_lambda_web.types.endpoint_update_status.EndpointUpdateStatus"
56
+ ]
57
+ update_status_reason: NotRequired["str"]
58
+ """<p>The reason for the endpoint's most recent update status.</p>"""
59
+ regional_endpoints: "capo_lambda_web.types.regional_endpoints.RegionalEndpoints"
60
+ """<p>The list of regional endpoint configurations.</p>"""
61
+ created_at: "capo_lambda_web.types.date_time.DateTime"
62
+ """<p>The date and time the endpoint was created.</p>"""
63
+ updated_at: "capo_lambda_web.types.date_time.DateTime"
64
+ """<p>The date and time the endpoint was last updated.</p>"""
65
+
66
+
67
+ # --- restJson1 ser/de ---
68
+ def serialize_json(value: CreateWebFunctionEndpointResponse) -> dict:
69
+ out: dict = {}
70
+ out["functionArn"] = value["function_arn"]
71
+ out["endpointArn"] = value["endpoint_arn"]
72
+ out["endpointName"] = value["endpoint_name"]
73
+ if "description" in value:
74
+ out["description"] = value["description"]
75
+ import capo_lambda_web.types.endpoint_type
76
+
77
+ out["endpointType"] = capo_lambda_web.types.endpoint_type.serialize_json(
78
+ value["endpoint_type"]
79
+ )
80
+ out["domainName"] = value["domain_name"]
81
+ import capo_lambda_web.types.auth_type
82
+
83
+ out["authType"] = capo_lambda_web.types.auth_type.serialize_json(value["auth_type"])
84
+ import capo_lambda_web.types.auto_deployment_mode
85
+
86
+ out["autoDeploymentMode"] = (
87
+ capo_lambda_web.types.auto_deployment_mode.serialize_json(
88
+ value["auto_deployment_mode"]
89
+ )
90
+ )
91
+ import capo_lambda_web.types.revision_weight_list
92
+
93
+ out["revisionWeights"] = capo_lambda_web.types.revision_weight_list.serialize_json(
94
+ value["revision_weights"]
95
+ )
96
+ import capo_lambda_web.types.region_list
97
+
98
+ out["regions"] = capo_lambda_web.types.region_list.serialize_json(value["regions"])
99
+ if "scaling_config" in value:
100
+ import capo_lambda_web.types.scaling_config
101
+
102
+ out["scalingConfig"] = capo_lambda_web.types.scaling_config.serialize_json(
103
+ value["scaling_config"]
104
+ )
105
+ if "throttle_config" in value:
106
+ import capo_lambda_web.types.throttle_config
107
+
108
+ out["throttleConfig"] = capo_lambda_web.types.throttle_config.serialize_json(
109
+ value["throttle_config"]
110
+ )
111
+ import capo_lambda_web.types.endpoint_state
112
+
113
+ out["state"] = capo_lambda_web.types.endpoint_state.serialize_json(value["state"])
114
+ out["stateReason"] = value["state_reason"]
115
+ if "update_status" in value:
116
+ import capo_lambda_web.types.endpoint_update_status
117
+
118
+ out["updateStatus"] = (
119
+ capo_lambda_web.types.endpoint_update_status.serialize_json(
120
+ value["update_status"]
121
+ )
122
+ )
123
+ if "update_status_reason" in value:
124
+ out["updateStatusReason"] = value["update_status_reason"]
125
+ import capo_lambda_web.types.regional_endpoints
126
+
127
+ out["regionalEndpoints"] = capo_lambda_web.types.regional_endpoints.serialize_json(
128
+ value["regional_endpoints"]
129
+ )
130
+ import capo_lambda_web.types.date_time
131
+
132
+ out["createdAt"] = capo_lambda_web.types.date_time.serialize_json(
133
+ value["created_at"]
134
+ )
135
+ import capo_lambda_web.types.date_time
136
+
137
+ out["updatedAt"] = capo_lambda_web.types.date_time.serialize_json(
138
+ value["updated_at"]
139
+ )
140
+ return out
141
+
142
+
143
+ def deserialize_json(data: dict) -> CreateWebFunctionEndpointResponse:
144
+ out: CreateWebFunctionEndpointResponse = {} # type: ignore[typeddict-item]
145
+ if data.get("functionArn") is not None:
146
+ out["function_arn"] = data["functionArn"]
147
+ else:
148
+ raise DeserializationError(
149
+ "CreateWebFunctionEndpointResponse.function_arn required"
150
+ )
151
+ if data.get("endpointArn") is not None:
152
+ out["endpoint_arn"] = data["endpointArn"]
153
+ else:
154
+ raise DeserializationError(
155
+ "CreateWebFunctionEndpointResponse.endpoint_arn required"
156
+ )
157
+ if data.get("endpointName") is not None:
158
+ out["endpoint_name"] = data["endpointName"]
159
+ else:
160
+ raise DeserializationError(
161
+ "CreateWebFunctionEndpointResponse.endpoint_name required"
162
+ )
163
+ if data.get("description") is not None:
164
+ out["description"] = data["description"]
165
+ if data.get("endpointType") is not None:
166
+ import capo_lambda_web.types.endpoint_type
167
+
168
+ out["endpoint_type"] = capo_lambda_web.types.endpoint_type.deserialize_json(
169
+ data["endpointType"]
170
+ )
171
+ else:
172
+ raise DeserializationError(
173
+ "CreateWebFunctionEndpointResponse.endpoint_type required"
174
+ )
175
+ if data.get("domainName") is not None:
176
+ out["domain_name"] = data["domainName"]
177
+ else:
178
+ raise DeserializationError(
179
+ "CreateWebFunctionEndpointResponse.domain_name required"
180
+ )
181
+ if data.get("authType") is not None:
182
+ import capo_lambda_web.types.auth_type
183
+
184
+ out["auth_type"] = capo_lambda_web.types.auth_type.deserialize_json(
185
+ data["authType"]
186
+ )
187
+ else:
188
+ raise DeserializationError(
189
+ "CreateWebFunctionEndpointResponse.auth_type required"
190
+ )
191
+ if data.get("autoDeploymentMode") is not None:
192
+ import capo_lambda_web.types.auto_deployment_mode
193
+
194
+ out["auto_deployment_mode"] = (
195
+ capo_lambda_web.types.auto_deployment_mode.deserialize_json(
196
+ data["autoDeploymentMode"]
197
+ )
198
+ )
199
+ else:
200
+ raise DeserializationError(
201
+ "CreateWebFunctionEndpointResponse.auto_deployment_mode required"
202
+ )
203
+ if data.get("revisionWeights") is not None:
204
+ import capo_lambda_web.types.revision_weight_list
205
+
206
+ out["revision_weights"] = (
207
+ capo_lambda_web.types.revision_weight_list.deserialize_json(
208
+ data["revisionWeights"]
209
+ )
210
+ )
211
+ else:
212
+ raise DeserializationError(
213
+ "CreateWebFunctionEndpointResponse.revision_weights required"
214
+ )
215
+ if data.get("regions") is not None:
216
+ import capo_lambda_web.types.region_list
217
+
218
+ out["regions"] = capo_lambda_web.types.region_list.deserialize_json(
219
+ data["regions"]
220
+ )
221
+ else:
222
+ raise DeserializationError("CreateWebFunctionEndpointResponse.regions required")
223
+ if data.get("scalingConfig") is not None:
224
+ import capo_lambda_web.types.scaling_config
225
+
226
+ out["scaling_config"] = capo_lambda_web.types.scaling_config.deserialize_json(
227
+ data["scalingConfig"]
228
+ )
229
+ if data.get("throttleConfig") is not None:
230
+ import capo_lambda_web.types.throttle_config
231
+
232
+ out["throttle_config"] = capo_lambda_web.types.throttle_config.deserialize_json(
233
+ data["throttleConfig"]
234
+ )
235
+ if data.get("state") is not None:
236
+ import capo_lambda_web.types.endpoint_state
237
+
238
+ out["state"] = capo_lambda_web.types.endpoint_state.deserialize_json(
239
+ data["state"]
240
+ )
241
+ else:
242
+ raise DeserializationError("CreateWebFunctionEndpointResponse.state required")
243
+ if data.get("stateReason") is not None:
244
+ out["state_reason"] = data["stateReason"]
245
+ else:
246
+ raise DeserializationError(
247
+ "CreateWebFunctionEndpointResponse.state_reason required"
248
+ )
249
+ if data.get("updateStatus") is not None:
250
+ import capo_lambda_web.types.endpoint_update_status
251
+
252
+ out["update_status"] = (
253
+ capo_lambda_web.types.endpoint_update_status.deserialize_json(
254
+ data["updateStatus"]
255
+ )
256
+ )
257
+ if data.get("updateStatusReason") is not None:
258
+ out["update_status_reason"] = data["updateStatusReason"]
259
+ if data.get("regionalEndpoints") is not None:
260
+ import capo_lambda_web.types.regional_endpoints
261
+
262
+ out["regional_endpoints"] = (
263
+ capo_lambda_web.types.regional_endpoints.deserialize_json(
264
+ data["regionalEndpoints"]
265
+ )
266
+ )
267
+ else:
268
+ raise DeserializationError(
269
+ "CreateWebFunctionEndpointResponse.regional_endpoints required"
270
+ )
271
+ if data.get("createdAt") is not None:
272
+ import capo_lambda_web.types.date_time
273
+
274
+ out["created_at"] = capo_lambda_web.types.date_time.deserialize_json(
275
+ data["createdAt"]
276
+ )
277
+ else:
278
+ raise DeserializationError(
279
+ "CreateWebFunctionEndpointResponse.created_at required"
280
+ )
281
+ if data.get("updatedAt") is not None:
282
+ import capo_lambda_web.types.date_time
283
+
284
+ out["updated_at"] = capo_lambda_web.types.date_time.deserialize_json(
285
+ data["updatedAt"]
286
+ )
287
+ else:
288
+ raise DeserializationError(
289
+ "CreateWebFunctionEndpointResponse.updated_at required"
290
+ )
291
+ return out
@@ -0,0 +1,72 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdaweb#CreateWebFunctionRequest``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import NotRequired, TypedDict
6
+
7
+ from capo_lambda_web.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_lambda_web.types.endpoint_config
11
+ import capo_lambda_web.types.function_name
12
+ import capo_lambda_web.types.revision_config
13
+ import capo_lambda_web.types.tags
14
+
15
+
16
+ class CreateWebFunctionRequest(TypedDict, closed=True):
17
+ function_name: "capo_lambda_web.types.function_name.FunctionName"
18
+ """<p>The name of the web function. The name can contain letters, numbers, hyphens (-), and underscores (_), and can't begin or end with a hyphen or an underscore. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.</p>"""
19
+ revision_config: NotRequired["capo_lambda_web.types.revision_config.RevisionConfig"]
20
+ """<p>The configuration for the initial revision of the web function, including code and service settings.</p>"""
21
+ endpoint_config: NotRequired["capo_lambda_web.types.endpoint_config.EndpointConfig"]
22
+ """<p>The configuration for the initial endpoint of the web function.</p>"""
23
+ tags: NotRequired["capo_lambda_web.types.tags.Tags"]
24
+ """<p>A map of tag keys and values to apply to the web function.</p>"""
25
+
26
+
27
+ # --- restJson1 ser/de ---
28
+ def serialize_json(value: CreateWebFunctionRequest) -> dict:
29
+ out: dict = {}
30
+ out["functionName"] = value["function_name"]
31
+ if "revision_config" in value:
32
+ import capo_lambda_web.types.revision_config
33
+
34
+ out["revisionConfig"] = capo_lambda_web.types.revision_config.serialize_json(
35
+ value["revision_config"]
36
+ )
37
+ if "endpoint_config" in value:
38
+ import capo_lambda_web.types.endpoint_config
39
+
40
+ out["endpointConfig"] = capo_lambda_web.types.endpoint_config.serialize_json(
41
+ value["endpoint_config"]
42
+ )
43
+ if "tags" in value:
44
+ import capo_lambda_web.types.tags
45
+
46
+ out["tags"] = capo_lambda_web.types.tags.serialize_json(value["tags"])
47
+ return out
48
+
49
+
50
+ def deserialize_json(data: dict) -> CreateWebFunctionRequest:
51
+ out: CreateWebFunctionRequest = {} # type: ignore[typeddict-item]
52
+ if data.get("functionName") is not None:
53
+ out["function_name"] = data["functionName"]
54
+ else:
55
+ raise DeserializationError("CreateWebFunctionRequest.function_name required")
56
+ if data.get("revisionConfig") is not None:
57
+ import capo_lambda_web.types.revision_config
58
+
59
+ out["revision_config"] = capo_lambda_web.types.revision_config.deserialize_json(
60
+ data["revisionConfig"]
61
+ )
62
+ if data.get("endpointConfig") is not None:
63
+ import capo_lambda_web.types.endpoint_config
64
+
65
+ out["endpoint_config"] = capo_lambda_web.types.endpoint_config.deserialize_json(
66
+ data["endpointConfig"]
67
+ )
68
+ if data.get("tags") is not None:
69
+ import capo_lambda_web.types.tags
70
+
71
+ out["tags"] = capo_lambda_web.types.tags.deserialize_json(data["tags"])
72
+ return out