capo-lambda-core 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 (86) hide show
  1. capo_lambda_core/__init__.py +71 -0
  2. capo_lambda_core/_async.py +25 -0
  3. capo_lambda_core/_auth/_identity.py +16 -0
  4. capo_lambda_core/_auth/_providers.py +886 -0
  5. capo_lambda_core/_auth/_signers.py +121 -0
  6. capo_lambda_core/_auth/_sigv4.py +579 -0
  7. capo_lambda_core/_auth/_zapros_handler.py +80 -0
  8. capo_lambda_core/_body.py +221 -0
  9. capo_lambda_core/_iter.py +113 -0
  10. capo_lambda_core/_operations/lambda_core_api_service/create_network_connector.py +166 -0
  11. capo_lambda_core/_operations/lambda_core_api_service/delete_network_connector.py +163 -0
  12. capo_lambda_core/_operations/lambda_core_api_service/get_network_connector.py +162 -0
  13. capo_lambda_core/_operations/lambda_core_api_service/list_network_connectors.py +166 -0
  14. capo_lambda_core/_operations/lambda_core_api_service/update_network_connector.py +169 -0
  15. capo_lambda_core/_pagination.py +21 -0
  16. capo_lambda_core/_protocol/__init__.py +1 -0
  17. capo_lambda_core/_protocol/errors.py +93 -0
  18. capo_lambda_core/_protocol/eventstream.py +240 -0
  19. capo_lambda_core/_protocol/serialize.py +47 -0
  20. capo_lambda_core/_protocol/xml.py +33 -0
  21. capo_lambda_core/_resources/lambda_core_api_service/network_connector.py +616 -0
  22. capo_lambda_core/_rule_engine/__init__.py +0 -0
  23. capo_lambda_core/_rule_engine/_aws_partition.py +160 -0
  24. capo_lambda_core/_rule_engine/_endpoint_rule_set.py +135 -0
  25. capo_lambda_core/_rule_engine/_endpoint_runtime.py +389 -0
  26. capo_lambda_core/_services/_aws_config.py +160 -0
  27. capo_lambda_core/_services/_pipeline.py +247 -0
  28. capo_lambda_core/_services/async_lambda_core.py +468 -0
  29. capo_lambda_core/_services/lambda_core.py +463 -0
  30. capo_lambda_core/errors/__init__.py +39 -0
  31. capo_lambda_core/errors/_base.py +94 -0
  32. capo_lambda_core/errors/invalid_parameter_value_exception.py +59 -0
  33. capo_lambda_core/errors/network_connector_limit_exceeded_exception.py +60 -0
  34. capo_lambda_core/errors/resource_conflict_exception.py +57 -0
  35. capo_lambda_core/errors/resource_not_found_exception.py +57 -0
  36. capo_lambda_core/errors/service_exception.py +55 -0
  37. capo_lambda_core/errors/too_many_requests_exception.py +74 -0
  38. capo_lambda_core/py.typed +0 -0
  39. capo_lambda_core/types/_prelude/blob.py +12 -0
  40. capo_lambda_core/types/_prelude/timestamp.py +17 -0
  41. capo_lambda_core/types/associated_compute_resource_types_list.py +31 -0
  42. capo_lambda_core/types/client_token_string.py +5 -0
  43. capo_lambda_core/types/compute_resource_type.py +14 -0
  44. capo_lambda_core/types/core_timestamp.py +20 -0
  45. capo_lambda_core/types/create_network_connector_request.py +88 -0
  46. capo_lambda_core/types/create_network_connector_response.py +93 -0
  47. capo_lambda_core/types/delete_network_connector_request.py +25 -0
  48. capo_lambda_core/types/delete_network_connector_response.py +93 -0
  49. capo_lambda_core/types/get_network_connector_request.py +25 -0
  50. capo_lambda_core/types/get_network_connector_response.py +196 -0
  51. capo_lambda_core/types/list_network_connectors_request.py +34 -0
  52. capo_lambda_core/types/list_network_connectors_response.py +54 -0
  53. capo_lambda_core/types/max_hundred_list_items.py +5 -0
  54. capo_lambda_core/types/network_connector_arn.py +5 -0
  55. capo_lambda_core/types/network_connector_configuration.py +48 -0
  56. capo_lambda_core/types/network_connector_id.py +6 -0
  57. capo_lambda_core/types/network_connector_identifier.py +6 -0
  58. capo_lambda_core/types/network_connector_last_update_status.py +18 -0
  59. capo_lambda_core/types/network_connector_last_update_status_reason.py +5 -0
  60. capo_lambda_core/types/network_connector_last_update_status_reason_code.py +22 -0
  61. capo_lambda_core/types/network_connector_name.py +5 -0
  62. capo_lambda_core/types/network_connector_role_arn.py +5 -0
  63. capo_lambda_core/types/network_connector_security_group_id.py +5 -0
  64. capo_lambda_core/types/network_connector_security_group_ids.py +19 -0
  65. capo_lambda_core/types/network_connector_state.py +21 -0
  66. capo_lambda_core/types/network_connector_state_reason_code.py +22 -0
  67. capo_lambda_core/types/network_connector_subnet_id.py +5 -0
  68. capo_lambda_core/types/network_connector_subnet_ids.py +19 -0
  69. capo_lambda_core/types/network_connector_summary.py +94 -0
  70. capo_lambda_core/types/network_connector_tag_key.py +5 -0
  71. capo_lambda_core/types/network_connector_tag_value.py +5 -0
  72. capo_lambda_core/types/network_connector_tags.py +29 -0
  73. capo_lambda_core/types/network_connector_type.py +14 -0
  74. capo_lambda_core/types/network_connector_version.py +5 -0
  75. capo_lambda_core/types/network_connector_vpc_egress_configuration.py +103 -0
  76. capo_lambda_core/types/network_connectors_list.py +35 -0
  77. capo_lambda_core/types/network_protocol.py +17 -0
  78. capo_lambda_core/types/string.py +5 -0
  79. capo_lambda_core/types/throttle_reason.py +21 -0
  80. capo_lambda_core/types/update_network_connector_request.py +64 -0
  81. capo_lambda_core/types/update_network_connector_response.py +138 -0
  82. capo_lambda_core-0.1.0.dist-info/METADATA +103 -0
  83. capo_lambda_core-0.1.0.dist-info/RECORD +86 -0
  84. capo_lambda_core-0.1.0.dist-info/WHEEL +5 -0
  85. capo_lambda_core-0.1.0.dist-info/licenses/LICENSE +21 -0
  86. capo_lambda_core-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,163 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdacore#DeleteNetworkConnector``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ from typing import Any
7
+ from urllib.parse import quote
8
+
9
+ import zapros
10
+ from typing_extensions import Never
11
+
12
+ import capo_lambda_core._auth._signers
13
+ import capo_lambda_core._auth._sigv4
14
+ import capo_lambda_core._protocol.eventstream
15
+ import capo_lambda_core.errors.invalid_parameter_value_exception
16
+ import capo_lambda_core.errors.resource_conflict_exception
17
+ import capo_lambda_core.errors.resource_not_found_exception
18
+ import capo_lambda_core.errors.service_exception
19
+ import capo_lambda_core.errors.too_many_requests_exception
20
+ import capo_lambda_core.types.delete_network_connector_request
21
+ import capo_lambda_core.types.delete_network_connector_response
22
+ import capo_lambda_core.types.network_connector_configuration
23
+ import capo_lambda_core.types.network_connector_state
24
+ from capo_lambda_core._protocol.errors import parse_error_metadata_json
25
+ from capo_lambda_core._rule_engine._endpoint_rule_set import EndpointParams, resolve
26
+ from capo_lambda_core._services._pipeline import AsyncOperationOptions, OperationOptions
27
+ from capo_lambda_core.errors import UnknownServiceError
28
+
29
+
30
+ def handle_error(response: zapros.Response) -> Never:
31
+ data = json.loads(response.read())
32
+ code, message = parse_error_metadata_json(response, data)
33
+ match code:
34
+ case "InvalidParameterValueException":
35
+ raise capo_lambda_core.errors.invalid_parameter_value_exception.InvalidParameterValueException.from_json(
36
+ data, message
37
+ )
38
+ case "ResourceConflictException":
39
+ raise capo_lambda_core.errors.resource_conflict_exception.ResourceConflictException.from_json(
40
+ data, message
41
+ )
42
+ case "ResourceNotFoundException":
43
+ raise capo_lambda_core.errors.resource_not_found_exception.ResourceNotFoundException.from_json(
44
+ data, message
45
+ )
46
+ case "ServiceException":
47
+ raise capo_lambda_core.errors.service_exception.ServiceException.from_json(
48
+ data, message
49
+ )
50
+ case "TooManyRequestsException":
51
+ raise capo_lambda_core.errors.too_many_requests_exception.TooManyRequestsException.from_json(
52
+ data, message
53
+ )
54
+ case _:
55
+ raise UnknownServiceError(code=code, message=message, response=response)
56
+
57
+
58
+ def handle_response(
59
+ response: zapros.Response,
60
+ ) -> capo_lambda_core.types.delete_network_connector_response.DeleteNetworkConnectorResponse:
61
+ out: capo_lambda_core.types.delete_network_connector_response.DeleteNetworkConnectorResponse = capo_lambda_core.types.delete_network_connector_response.deserialize_json(
62
+ json.loads(response.read())
63
+ )
64
+ return out
65
+
66
+
67
+ async def async_handle_response(
68
+ response: zapros.Response,
69
+ ) -> capo_lambda_core.types.delete_network_connector_response.DeleteNetworkConnectorResponse:
70
+ out: capo_lambda_core.types.delete_network_connector_response.DeleteNetworkConnectorResponse = capo_lambda_core.types.delete_network_connector_response.deserialize_json(
71
+ json.loads(await response.aread())
72
+ )
73
+ return out
74
+
75
+
76
+ def get_signer(
77
+ options: AsyncOperationOptions | OperationOptions,
78
+ auth_schemes: list[dict[str, Any]] | None = None,
79
+ ) -> capo_lambda_core._auth._signers.Signer | None:
80
+ name_to_schema = {s["name"]: s for s in (auth_schemes or [])} # noqa: F841
81
+ if (
82
+ options.credentials_provider is not None
83
+ and name_to_schema
84
+ and not name_to_schema.keys() & {"sigv4", "sigv4-s3express"}
85
+ ):
86
+ raise RuntimeError(
87
+ "Endpoint requires an unsupported auth scheme: " + ", ".join(name_to_schema)
88
+ )
89
+ if options.credentials_provider is not None:
90
+ endpoint_scheme = name_to_schema.get("sigv4") or name_to_schema.get(
91
+ "sigv4-s3express"
92
+ )
93
+ if endpoint_scheme is not None or not name_to_schema:
94
+ sigv4_config = capo_lambda_core._auth._sigv4.build_sigv4_auth_scheme(
95
+ "lambda", options.region, endpoint_scheme
96
+ )
97
+ if sigv4_config is not None:
98
+ return capo_lambda_core._auth._signers.SigV4Signer(
99
+ options.credentials_provider, auth_scheme=sigv4_config
100
+ )
101
+ raise RuntimeError("Auth was not resolved")
102
+
103
+
104
+ def build_request(
105
+ options: OperationOptions | AsyncOperationOptions,
106
+ input_: capo_lambda_core.types.delete_network_connector_request.DeleteNetworkConnectorRequest,
107
+ ) -> zapros.Request:
108
+ endpoint = resolve(
109
+ EndpointParams(
110
+ Region=options.region,
111
+ UseDualStack=options.use_dual_stack,
112
+ UseFIPS=options.use_fips,
113
+ Endpoint=options.endpoint,
114
+ )
115
+ ) # noqa: F841
116
+ url = endpoint.url.rstrip("/") + "/2026-04-04/network-connectors/{Identifier}"
117
+ url = url.replace("{Identifier}", quote(input_["identifier"], safe=""))
118
+ params: list[tuple[str, str]] = []
119
+ headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
120
+ body: bytes | None = b""
121
+ signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
122
+ normalized_url = zapros.URL(url)
123
+ for k, v in params:
124
+ normalized_url.search_params.append(k, v)
125
+ return zapros.Request(
126
+ normalized_url, "DELETE", headers=headers, body=body, context={"signer": signer}
127
+ )
128
+
129
+
130
+ def delete_network_connector(
131
+ options: OperationOptions,
132
+ input_: capo_lambda_core.types.delete_network_connector_request.DeleteNetworkConnectorRequest,
133
+ ) -> tuple[
134
+ capo_lambda_core.types.delete_network_connector_response.DeleteNetworkConnectorResponse,
135
+ zapros.Response,
136
+ ]:
137
+ response = options.client.handler.handle(build_request(options, input_))
138
+ try:
139
+ if response.status >= 300:
140
+ response.read()
141
+ handle_error(response)
142
+ return handle_response(response), response
143
+ except BaseException:
144
+ response.close()
145
+ raise
146
+
147
+
148
+ async def async_delete_network_connector(
149
+ options: AsyncOperationOptions,
150
+ input_: capo_lambda_core.types.delete_network_connector_request.DeleteNetworkConnectorRequest,
151
+ ) -> tuple[
152
+ capo_lambda_core.types.delete_network_connector_response.DeleteNetworkConnectorResponse,
153
+ zapros.Response,
154
+ ]:
155
+ response = await options.client.handler.ahandle(build_request(options, input_))
156
+ try:
157
+ if response.status >= 300:
158
+ await response.aread()
159
+ handle_error(response)
160
+ return await async_handle_response(response), response
161
+ except BaseException:
162
+ await response.aclose()
163
+ raise
@@ -0,0 +1,162 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdacore#GetNetworkConnector``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ from typing import Any
7
+ from urllib.parse import quote
8
+
9
+ import zapros
10
+ from typing_extensions import Never
11
+
12
+ import capo_lambda_core._auth._signers
13
+ import capo_lambda_core._auth._sigv4
14
+ import capo_lambda_core._protocol.eventstream
15
+ import capo_lambda_core.errors.invalid_parameter_value_exception
16
+ import capo_lambda_core.errors.resource_not_found_exception
17
+ import capo_lambda_core.errors.service_exception
18
+ import capo_lambda_core.errors.too_many_requests_exception
19
+ import capo_lambda_core.types.core_timestamp
20
+ import capo_lambda_core.types.get_network_connector_request
21
+ import capo_lambda_core.types.get_network_connector_response
22
+ import capo_lambda_core.types.network_connector_configuration
23
+ import capo_lambda_core.types.network_connector_last_update_status
24
+ import capo_lambda_core.types.network_connector_last_update_status_reason_code
25
+ import capo_lambda_core.types.network_connector_state
26
+ import capo_lambda_core.types.network_connector_state_reason_code
27
+ from capo_lambda_core._protocol.errors import parse_error_metadata_json
28
+ from capo_lambda_core._rule_engine._endpoint_rule_set import EndpointParams, resolve
29
+ from capo_lambda_core._services._pipeline import AsyncOperationOptions, OperationOptions
30
+ from capo_lambda_core.errors import UnknownServiceError
31
+
32
+
33
+ def handle_error(response: zapros.Response) -> Never:
34
+ data = json.loads(response.read())
35
+ code, message = parse_error_metadata_json(response, data)
36
+ match code:
37
+ case "InvalidParameterValueException":
38
+ raise capo_lambda_core.errors.invalid_parameter_value_exception.InvalidParameterValueException.from_json(
39
+ data, message
40
+ )
41
+ case "ResourceNotFoundException":
42
+ raise capo_lambda_core.errors.resource_not_found_exception.ResourceNotFoundException.from_json(
43
+ data, message
44
+ )
45
+ case "ServiceException":
46
+ raise capo_lambda_core.errors.service_exception.ServiceException.from_json(
47
+ data, message
48
+ )
49
+ case "TooManyRequestsException":
50
+ raise capo_lambda_core.errors.too_many_requests_exception.TooManyRequestsException.from_json(
51
+ data, message
52
+ )
53
+ case _:
54
+ raise UnknownServiceError(code=code, message=message, response=response)
55
+
56
+
57
+ def handle_response(
58
+ response: zapros.Response,
59
+ ) -> capo_lambda_core.types.get_network_connector_response.GetNetworkConnectorResponse:
60
+ out: capo_lambda_core.types.get_network_connector_response.GetNetworkConnectorResponse = capo_lambda_core.types.get_network_connector_response.deserialize_json(
61
+ json.loads(response.read())
62
+ )
63
+ return out
64
+
65
+
66
+ async def async_handle_response(
67
+ response: zapros.Response,
68
+ ) -> capo_lambda_core.types.get_network_connector_response.GetNetworkConnectorResponse:
69
+ out: capo_lambda_core.types.get_network_connector_response.GetNetworkConnectorResponse = capo_lambda_core.types.get_network_connector_response.deserialize_json(
70
+ json.loads(await response.aread())
71
+ )
72
+ return out
73
+
74
+
75
+ def get_signer(
76
+ options: AsyncOperationOptions | OperationOptions,
77
+ auth_schemes: list[dict[str, Any]] | None = None,
78
+ ) -> capo_lambda_core._auth._signers.Signer | None:
79
+ name_to_schema = {s["name"]: s for s in (auth_schemes or [])} # noqa: F841
80
+ if (
81
+ options.credentials_provider is not None
82
+ and name_to_schema
83
+ and not name_to_schema.keys() & {"sigv4", "sigv4-s3express"}
84
+ ):
85
+ raise RuntimeError(
86
+ "Endpoint requires an unsupported auth scheme: " + ", ".join(name_to_schema)
87
+ )
88
+ if options.credentials_provider is not None:
89
+ endpoint_scheme = name_to_schema.get("sigv4") or name_to_schema.get(
90
+ "sigv4-s3express"
91
+ )
92
+ if endpoint_scheme is not None or not name_to_schema:
93
+ sigv4_config = capo_lambda_core._auth._sigv4.build_sigv4_auth_scheme(
94
+ "lambda", options.region, endpoint_scheme
95
+ )
96
+ if sigv4_config is not None:
97
+ return capo_lambda_core._auth._signers.SigV4Signer(
98
+ options.credentials_provider, auth_scheme=sigv4_config
99
+ )
100
+ raise RuntimeError("Auth was not resolved")
101
+
102
+
103
+ def build_request(
104
+ options: OperationOptions | AsyncOperationOptions,
105
+ input_: capo_lambda_core.types.get_network_connector_request.GetNetworkConnectorRequest,
106
+ ) -> zapros.Request:
107
+ endpoint = resolve(
108
+ EndpointParams(
109
+ Region=options.region,
110
+ UseDualStack=options.use_dual_stack,
111
+ UseFIPS=options.use_fips,
112
+ Endpoint=options.endpoint,
113
+ )
114
+ ) # noqa: F841
115
+ url = endpoint.url.rstrip("/") + "/2026-04-04/network-connectors/{Identifier}"
116
+ url = url.replace("{Identifier}", quote(input_["identifier"], safe=""))
117
+ params: list[tuple[str, str]] = []
118
+ headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
119
+ body: bytes | None = b""
120
+ signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
121
+ normalized_url = zapros.URL(url)
122
+ for k, v in params:
123
+ normalized_url.search_params.append(k, v)
124
+ return zapros.Request(
125
+ normalized_url, "GET", headers=headers, body=body, context={"signer": signer}
126
+ )
127
+
128
+
129
+ def get_network_connector(
130
+ options: OperationOptions,
131
+ input_: capo_lambda_core.types.get_network_connector_request.GetNetworkConnectorRequest,
132
+ ) -> tuple[
133
+ capo_lambda_core.types.get_network_connector_response.GetNetworkConnectorResponse,
134
+ zapros.Response,
135
+ ]:
136
+ response = options.client.handler.handle(build_request(options, input_))
137
+ try:
138
+ if response.status >= 300:
139
+ response.read()
140
+ handle_error(response)
141
+ return handle_response(response), response
142
+ except BaseException:
143
+ response.close()
144
+ raise
145
+
146
+
147
+ async def async_get_network_connector(
148
+ options: AsyncOperationOptions,
149
+ input_: capo_lambda_core.types.get_network_connector_request.GetNetworkConnectorRequest,
150
+ ) -> tuple[
151
+ capo_lambda_core.types.get_network_connector_response.GetNetworkConnectorResponse,
152
+ zapros.Response,
153
+ ]:
154
+ response = await options.client.handler.ahandle(build_request(options, input_))
155
+ try:
156
+ if response.status >= 300:
157
+ await response.aread()
158
+ handle_error(response)
159
+ return await async_handle_response(response), response
160
+ except BaseException:
161
+ await response.aclose()
162
+ raise
@@ -0,0 +1,166 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdacore#ListNetworkConnectors``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ from typing import Any
7
+
8
+ import zapros
9
+ from typing_extensions import Never
10
+
11
+ import capo_lambda_core._auth._signers
12
+ import capo_lambda_core._auth._sigv4
13
+ import capo_lambda_core._protocol.eventstream
14
+ import capo_lambda_core.errors.invalid_parameter_value_exception
15
+ import capo_lambda_core.errors.service_exception
16
+ import capo_lambda_core.errors.too_many_requests_exception
17
+ import capo_lambda_core.types.list_network_connectors_request
18
+ import capo_lambda_core.types.list_network_connectors_response
19
+ import capo_lambda_core.types.network_connector_state
20
+ import capo_lambda_core.types.network_connectors_list
21
+ from capo_lambda_core._protocol.errors import parse_error_metadata_json
22
+ from capo_lambda_core._rule_engine._endpoint_rule_set import EndpointParams, resolve
23
+ from capo_lambda_core._services._pipeline import AsyncOperationOptions, OperationOptions
24
+ from capo_lambda_core.errors import UnknownServiceError
25
+
26
+
27
+ def handle_error(response: zapros.Response) -> Never:
28
+ data = json.loads(response.read())
29
+ code, message = parse_error_metadata_json(response, data)
30
+ match code:
31
+ case "InvalidParameterValueException":
32
+ raise capo_lambda_core.errors.invalid_parameter_value_exception.InvalidParameterValueException.from_json(
33
+ data, message
34
+ )
35
+ case "ServiceException":
36
+ raise capo_lambda_core.errors.service_exception.ServiceException.from_json(
37
+ data, message
38
+ )
39
+ case "TooManyRequestsException":
40
+ raise capo_lambda_core.errors.too_many_requests_exception.TooManyRequestsException.from_json(
41
+ data, message
42
+ )
43
+ case _:
44
+ raise UnknownServiceError(code=code, message=message, response=response)
45
+
46
+
47
+ def handle_response(
48
+ response: zapros.Response,
49
+ ) -> capo_lambda_core.types.list_network_connectors_response.ListNetworkConnectorsResponse:
50
+ out: capo_lambda_core.types.list_network_connectors_response.ListNetworkConnectorsResponse = capo_lambda_core.types.list_network_connectors_response.deserialize_json(
51
+ json.loads(response.read())
52
+ )
53
+ return out
54
+
55
+
56
+ async def async_handle_response(
57
+ response: zapros.Response,
58
+ ) -> capo_lambda_core.types.list_network_connectors_response.ListNetworkConnectorsResponse:
59
+ out: capo_lambda_core.types.list_network_connectors_response.ListNetworkConnectorsResponse = capo_lambda_core.types.list_network_connectors_response.deserialize_json(
60
+ json.loads(await response.aread())
61
+ )
62
+ return out
63
+
64
+
65
+ def get_signer(
66
+ options: AsyncOperationOptions | OperationOptions,
67
+ auth_schemes: list[dict[str, Any]] | None = None,
68
+ ) -> capo_lambda_core._auth._signers.Signer | None:
69
+ name_to_schema = {s["name"]: s for s in (auth_schemes or [])} # noqa: F841
70
+ if (
71
+ options.credentials_provider is not None
72
+ and name_to_schema
73
+ and not name_to_schema.keys() & {"sigv4", "sigv4-s3express"}
74
+ ):
75
+ raise RuntimeError(
76
+ "Endpoint requires an unsupported auth scheme: " + ", ".join(name_to_schema)
77
+ )
78
+ if options.credentials_provider is not None:
79
+ endpoint_scheme = name_to_schema.get("sigv4") or name_to_schema.get(
80
+ "sigv4-s3express"
81
+ )
82
+ if endpoint_scheme is not None or not name_to_schema:
83
+ sigv4_config = capo_lambda_core._auth._sigv4.build_sigv4_auth_scheme(
84
+ "lambda", options.region, endpoint_scheme
85
+ )
86
+ if sigv4_config is not None:
87
+ return capo_lambda_core._auth._signers.SigV4Signer(
88
+ options.credentials_provider, auth_scheme=sigv4_config
89
+ )
90
+ raise RuntimeError("Auth was not resolved")
91
+
92
+
93
+ def build_request(
94
+ options: OperationOptions | AsyncOperationOptions,
95
+ input_: capo_lambda_core.types.list_network_connectors_request.ListNetworkConnectorsRequest,
96
+ ) -> zapros.Request:
97
+ endpoint = resolve(
98
+ EndpointParams(
99
+ Region=options.region,
100
+ UseDualStack=options.use_dual_stack,
101
+ UseFIPS=options.use_fips,
102
+ Endpoint=options.endpoint,
103
+ )
104
+ ) # noqa: F841
105
+ import capo_lambda_core.types.network_connector_state
106
+
107
+ url = endpoint.url.rstrip("/") + "/2026-04-04/network-connectors"
108
+ params: list[tuple[str, str]] = []
109
+ if "state" in input_:
110
+ params.append(
111
+ (
112
+ "State",
113
+ capo_lambda_core.types.network_connector_state.serialize_json(
114
+ input_["state"]
115
+ ),
116
+ )
117
+ )
118
+ if "marker" in input_:
119
+ params.append(("Marker", input_["marker"]))
120
+ if "max_items" in input_:
121
+ params.append(("MaxItems", str(input_["max_items"])))
122
+ headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
123
+ body: bytes | None = b""
124
+ signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
125
+ normalized_url = zapros.URL(url)
126
+ for k, v in params:
127
+ normalized_url.search_params.append(k, v)
128
+ return zapros.Request(
129
+ normalized_url, "GET", headers=headers, body=body, context={"signer": signer}
130
+ )
131
+
132
+
133
+ def list_network_connectors(
134
+ options: OperationOptions,
135
+ input_: capo_lambda_core.types.list_network_connectors_request.ListNetworkConnectorsRequest,
136
+ ) -> tuple[
137
+ capo_lambda_core.types.list_network_connectors_response.ListNetworkConnectorsResponse,
138
+ zapros.Response,
139
+ ]:
140
+ response = options.client.handler.handle(build_request(options, input_))
141
+ try:
142
+ if response.status >= 300:
143
+ response.read()
144
+ handle_error(response)
145
+ return handle_response(response), response
146
+ except BaseException:
147
+ response.close()
148
+ raise
149
+
150
+
151
+ async def async_list_network_connectors(
152
+ options: AsyncOperationOptions,
153
+ input_: capo_lambda_core.types.list_network_connectors_request.ListNetworkConnectorsRequest,
154
+ ) -> tuple[
155
+ capo_lambda_core.types.list_network_connectors_response.ListNetworkConnectorsResponse,
156
+ zapros.Response,
157
+ ]:
158
+ response = await options.client.handler.ahandle(build_request(options, input_))
159
+ try:
160
+ if response.status >= 300:
161
+ await response.aread()
162
+ handle_error(response)
163
+ return await async_handle_response(response), response
164
+ except BaseException:
165
+ await response.aclose()
166
+ raise
@@ -0,0 +1,169 @@
1
+ """Generated from Smithy shape ``com.amazonaws.lambdacore#UpdateNetworkConnector``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ from typing import Any
7
+ from urllib.parse import quote
8
+
9
+ import zapros
10
+ from typing_extensions import Never
11
+
12
+ import capo_lambda_core._auth._signers
13
+ import capo_lambda_core._auth._sigv4
14
+ import capo_lambda_core._protocol.eventstream
15
+ import capo_lambda_core.errors.invalid_parameter_value_exception
16
+ import capo_lambda_core.errors.resource_conflict_exception
17
+ import capo_lambda_core.errors.resource_not_found_exception
18
+ import capo_lambda_core.errors.service_exception
19
+ import capo_lambda_core.errors.too_many_requests_exception
20
+ import capo_lambda_core.types.core_timestamp
21
+ import capo_lambda_core.types.network_connector_configuration
22
+ import capo_lambda_core.types.network_connector_last_update_status
23
+ import capo_lambda_core.types.network_connector_state
24
+ import capo_lambda_core.types.update_network_connector_request
25
+ import capo_lambda_core.types.update_network_connector_response
26
+ from capo_lambda_core._protocol.errors import parse_error_metadata_json
27
+ from capo_lambda_core._rule_engine._endpoint_rule_set import EndpointParams, resolve
28
+ from capo_lambda_core._services._pipeline import AsyncOperationOptions, OperationOptions
29
+ from capo_lambda_core.errors import UnknownServiceError
30
+
31
+
32
+ def handle_error(response: zapros.Response) -> Never:
33
+ data = json.loads(response.read())
34
+ code, message = parse_error_metadata_json(response, data)
35
+ match code:
36
+ case "InvalidParameterValueException":
37
+ raise capo_lambda_core.errors.invalid_parameter_value_exception.InvalidParameterValueException.from_json(
38
+ data, message
39
+ )
40
+ case "ResourceConflictException":
41
+ raise capo_lambda_core.errors.resource_conflict_exception.ResourceConflictException.from_json(
42
+ data, message
43
+ )
44
+ case "ResourceNotFoundException":
45
+ raise capo_lambda_core.errors.resource_not_found_exception.ResourceNotFoundException.from_json(
46
+ data, message
47
+ )
48
+ case "ServiceException":
49
+ raise capo_lambda_core.errors.service_exception.ServiceException.from_json(
50
+ data, message
51
+ )
52
+ case "TooManyRequestsException":
53
+ raise capo_lambda_core.errors.too_many_requests_exception.TooManyRequestsException.from_json(
54
+ data, message
55
+ )
56
+ case _:
57
+ raise UnknownServiceError(code=code, message=message, response=response)
58
+
59
+
60
+ def handle_response(
61
+ response: zapros.Response,
62
+ ) -> capo_lambda_core.types.update_network_connector_response.UpdateNetworkConnectorResponse:
63
+ out: capo_lambda_core.types.update_network_connector_response.UpdateNetworkConnectorResponse = capo_lambda_core.types.update_network_connector_response.deserialize_json(
64
+ json.loads(response.read())
65
+ )
66
+ return out
67
+
68
+
69
+ async def async_handle_response(
70
+ response: zapros.Response,
71
+ ) -> capo_lambda_core.types.update_network_connector_response.UpdateNetworkConnectorResponse:
72
+ out: capo_lambda_core.types.update_network_connector_response.UpdateNetworkConnectorResponse = capo_lambda_core.types.update_network_connector_response.deserialize_json(
73
+ json.loads(await response.aread())
74
+ )
75
+ return out
76
+
77
+
78
+ def get_signer(
79
+ options: AsyncOperationOptions | OperationOptions,
80
+ auth_schemes: list[dict[str, Any]] | None = None,
81
+ ) -> capo_lambda_core._auth._signers.Signer | None:
82
+ name_to_schema = {s["name"]: s for s in (auth_schemes or [])} # noqa: F841
83
+ if (
84
+ options.credentials_provider is not None
85
+ and name_to_schema
86
+ and not name_to_schema.keys() & {"sigv4", "sigv4-s3express"}
87
+ ):
88
+ raise RuntimeError(
89
+ "Endpoint requires an unsupported auth scheme: " + ", ".join(name_to_schema)
90
+ )
91
+ if options.credentials_provider is not None:
92
+ endpoint_scheme = name_to_schema.get("sigv4") or name_to_schema.get(
93
+ "sigv4-s3express"
94
+ )
95
+ if endpoint_scheme is not None or not name_to_schema:
96
+ sigv4_config = capo_lambda_core._auth._sigv4.build_sigv4_auth_scheme(
97
+ "lambda", options.region, endpoint_scheme
98
+ )
99
+ if sigv4_config is not None:
100
+ return capo_lambda_core._auth._signers.SigV4Signer(
101
+ options.credentials_provider, auth_scheme=sigv4_config
102
+ )
103
+ raise RuntimeError("Auth was not resolved")
104
+
105
+
106
+ def build_request(
107
+ options: OperationOptions | AsyncOperationOptions,
108
+ input_: capo_lambda_core.types.update_network_connector_request.UpdateNetworkConnectorRequest,
109
+ ) -> zapros.Request:
110
+ endpoint = resolve(
111
+ EndpointParams(
112
+ Region=options.region,
113
+ UseDualStack=options.use_dual_stack,
114
+ UseFIPS=options.use_fips,
115
+ Endpoint=options.endpoint,
116
+ )
117
+ ) # noqa: F841
118
+ url = endpoint.url.rstrip("/") + "/2026-04-04/network-connectors/{Identifier}"
119
+ url = url.replace("{Identifier}", quote(input_["identifier"], safe=""))
120
+ params: list[tuple[str, str]] = []
121
+ headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
122
+ body: bytes | None = json.dumps(
123
+ capo_lambda_core.types.update_network_connector_request.serialize_json(input_),
124
+ allow_nan=False,
125
+ ).encode()
126
+ headers["content-type"] = "application/json"
127
+ signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
128
+ normalized_url = zapros.URL(url)
129
+ for k, v in params:
130
+ normalized_url.search_params.append(k, v)
131
+ return zapros.Request(
132
+ normalized_url, "PUT", headers=headers, body=body, context={"signer": signer}
133
+ )
134
+
135
+
136
+ def update_network_connector(
137
+ options: OperationOptions,
138
+ input_: capo_lambda_core.types.update_network_connector_request.UpdateNetworkConnectorRequest,
139
+ ) -> tuple[
140
+ capo_lambda_core.types.update_network_connector_response.UpdateNetworkConnectorResponse,
141
+ zapros.Response,
142
+ ]:
143
+ response = options.client.handler.handle(build_request(options, input_))
144
+ try:
145
+ if response.status >= 300:
146
+ response.read()
147
+ handle_error(response)
148
+ return handle_response(response), response
149
+ except BaseException:
150
+ response.close()
151
+ raise
152
+
153
+
154
+ async def async_update_network_connector(
155
+ options: AsyncOperationOptions,
156
+ input_: capo_lambda_core.types.update_network_connector_request.UpdateNetworkConnectorRequest,
157
+ ) -> tuple[
158
+ capo_lambda_core.types.update_network_connector_response.UpdateNetworkConnectorResponse,
159
+ zapros.Response,
160
+ ]:
161
+ response = await options.client.handler.ahandle(build_request(options, input_))
162
+ try:
163
+ if response.status >= 300:
164
+ await response.aread()
165
+ handle_error(response)
166
+ return await async_handle_response(response), response
167
+ except BaseException:
168
+ await response.aclose()
169
+ raise
@@ -0,0 +1,21 @@
1
+ """Runtime helpers for generated paginated ``iter_*`` operation methods."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+
8
+ def resolve_path(obj: Any, path: tuple[str, ...]) -> Any:
9
+ """Walk ``path`` segments on a nested ``dict`` (TypedDict at runtime).
10
+
11
+ Returns ``None`` as soon as any intermediate value is missing or non-dict —
12
+ the generated iter loop uses a falsy token as the terminate signal, so this
13
+ short-circuit gives the same semantics for dotted paths as for top-level ones.
14
+ """
15
+ for key in path:
16
+ if not isinstance(obj, dict):
17
+ return None
18
+ obj = obj.get(key)
19
+ if obj is None:
20
+ return None
21
+ return obj
@@ -0,0 +1 @@
1
+ """Protocol runtime modules. Hand-written; not generated."""