33 33 | )
|
34 34 | },
|
35 35 | )?,
|
36 36 | );
|
37 37 | output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
|
38 38 | crate::serde_util::invoke_model_with_response_stream_output_output_correct_errors(output)
|
39 39 | .build()
|
40 40 | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?
|
41 41 | })
|
42 42 | }
|
43 - |
|
44 - | #[allow(clippy::unnecessary_wraps)]
|
45 - | pub fn de_invoke_model_with_response_stream_http_error(
|
46 - | _response_status: u16,
|
47 - | _response_headers: &::aws_smithy_runtime_api::http::Headers,
|
48 - | _response_body: &[u8],
|
49 - | ) -> std::result::Result<
|
50 - | crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamOutput,
|
51 - | crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError,
|
52 - | > {
|
53 - | #[allow(unused_mut)]
|
54 - | let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
|
55 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
56 - | generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
|
57 - | let generic = generic_builder.build();
|
58 - | let error_code = match generic.code() {
|
59 - | Some(code) => code,
|
60 - | None => return Err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled(generic)),
|
61 - | };
|
62 - |
|
63 - | let _error_message = generic.message().map(|msg| msg.to_owned());
|
64 - | Err(match error_code {
|
65 - | "AccessDeniedException" => crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::AccessDeniedException({
|
66 - | #[allow(unused_mut)]
|
67 - | let mut tmp = {
|
68 - | #[allow(unused_mut)]
|
69 - | let mut output = crate::types::error::builders::AccessDeniedExceptionBuilder::default();
|
70 - | output = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(_response_body, output)
|
71 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
72 - | let output = output.meta(generic);
|
73 - | output.build()
|
74 - | };
|
75 - | if tmp.message.is_none() {
|
76 - | tmp.message = _error_message;
|
77 - | }
|
78 - | tmp
|
79 - | }),
|
80 - | "InternalServerException" => {
|
81 - | crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::InternalServerException({
|
82 - | #[allow(unused_mut)]
|
83 - | let mut tmp = {
|
84 - | #[allow(unused_mut)]
|
85 - | let mut output = crate::types::error::builders::InternalServerExceptionBuilder::default();
|
86 - | output = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(_response_body, output)
|
87 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
88 - | let output = output.meta(generic);
|
89 - | output.build()
|
90 - | };
|
91 - | if tmp.message.is_none() {
|
92 - | tmp.message = _error_message;
|
93 - | }
|
94 - | tmp
|
95 - | })
|
96 - | }
|
97 - | "ModelErrorException" => crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::ModelErrorException({
|
98 - | #[allow(unused_mut)]
|
99 - | let mut tmp = {
|
100 - | #[allow(unused_mut)]
|
101 - | let mut output = crate::types::error::builders::ModelErrorExceptionBuilder::default();
|
102 - | output = crate::protocol_serde::shape_model_error_exception::de_model_error_exception_json_err(_response_body, output)
|
103 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
104 - | let output = output.meta(generic);
|
105 - | output.build()
|
106 - | };
|
107 - | if tmp.message.is_none() {
|
108 - | tmp.message = _error_message;
|
109 - | }
|
110 - | tmp
|
111 - | }),
|
112 - | "ModelNotReadyException" => {
|
113 - | crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::ModelNotReadyException({
|
114 - | #[allow(unused_mut)]
|
115 - | let mut tmp = {
|
116 - | #[allow(unused_mut)]
|
117 - | let mut output = crate::types::error::builders::ModelNotReadyExceptionBuilder::default();
|
118 - | output = crate::protocol_serde::shape_model_not_ready_exception::de_model_not_ready_exception_json_err(_response_body, output)
|
119 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
120 - | let output = output.meta(generic);
|
121 - | output.build()
|
122 - | };
|
123 - | if tmp.message.is_none() {
|
124 - | tmp.message = _error_message;
|
125 - | }
|
126 - | tmp
|
127 - | })
|
128 - | }
|
129 - | "ModelStreamErrorException" => {
|
130 - | crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::ModelStreamErrorException({
|
131 - | #[allow(unused_mut)]
|
132 - | let mut tmp = {
|
133 - | #[allow(unused_mut)]
|
134 - | let mut output = crate::types::error::builders::ModelStreamErrorExceptionBuilder::default();
|
135 - | output =
|
136 - | crate::protocol_serde::shape_model_stream_error_exception::de_model_stream_error_exception_json_err(_response_body, output)
|
137 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
138 - | let output = output.meta(generic);
|
139 - | output.build()
|
140 - | };
|
141 - | if tmp.message.is_none() {
|
142 - | tmp.message = _error_message;
|
143 - | }
|
144 - | tmp
|
145 - | })
|
146 - | }
|
147 - | "ModelTimeoutException" => crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::ModelTimeoutException({
|
148 - | #[allow(unused_mut)]
|
149 - | let mut tmp = {
|
150 - | #[allow(unused_mut)]
|
151 - | let mut output = crate::types::error::builders::ModelTimeoutExceptionBuilder::default();
|
152 - | output = crate::protocol_serde::shape_model_timeout_exception::de_model_timeout_exception_json_err(_response_body, output)
|
153 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
154 - | let output = output.meta(generic);
|
155 - | output.build()
|
156 - | };
|
157 - | if tmp.message.is_none() {
|
158 - | tmp.message = _error_message;
|
159 - | }
|
160 - | tmp
|
161 - | }),
|
162 - | "ResourceNotFoundException" => {
|
163 - | crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::ResourceNotFoundException({
|
164 - | #[allow(unused_mut)]
|
165 - | let mut tmp = {
|
166 - | #[allow(unused_mut)]
|
167 - | let mut output = crate::types::error::builders::ResourceNotFoundExceptionBuilder::default();
|
168 - | output =
|
169 - | crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output)
|
170 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
171 - | let output = output.meta(generic);
|
172 - | output.build()
|
173 - | };
|
174 - | if tmp.message.is_none() {
|
175 - | tmp.message = _error_message;
|
176 - | }
|
177 - | tmp
|
178 - | })
|
179 - | }
|
180 - | "ServiceQuotaExceededException" => {
|
181 - | crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::ServiceQuotaExceededException({
|
182 - | #[allow(unused_mut)]
|
183 - | let mut tmp = {
|
184 - | #[allow(unused_mut)]
|
185 - | let mut output = crate::types::error::builders::ServiceQuotaExceededExceptionBuilder::default();
|
186 - | output = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(
|
187 - | _response_body,
|
188 - | output,
|
189 - | )
|
190 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
191 - | let output = output.meta(generic);
|
192 - | output.build()
|
193 - | };
|
194 - | if tmp.message.is_none() {
|
195 - | tmp.message = _error_message;
|
196 - | }
|
197 - | tmp
|
198 - | })
|
199 - | }
|
200 - | "ServiceUnavailableException" => {
|
201 - | crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::ServiceUnavailableException({
|
202 - | #[allow(unused_mut)]
|
203 - | let mut tmp = {
|
204 - | #[allow(unused_mut)]
|
205 - | let mut output = crate::types::error::builders::ServiceUnavailableExceptionBuilder::default();
|
206 - | output =
|
207 - | crate::protocol_serde::shape_service_unavailable_exception::de_service_unavailable_exception_json_err(_response_body, output)
|
208 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
209 - | let output = output.meta(generic);
|
210 - | output.build()
|
211 - | };
|
212 - | if tmp.message.is_none() {
|
213 - | tmp.message = _error_message;
|
214 - | }
|
215 - | tmp
|
216 - | })
|
217 - | }
|
218 - | "ThrottlingException" => crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::ThrottlingException({
|
219 - | #[allow(unused_mut)]
|
220 - | let mut tmp = {
|
221 - | #[allow(unused_mut)]
|
222 - | let mut output = crate::types::error::builders::ThrottlingExceptionBuilder::default();
|
223 - | output = crate::protocol_serde::shape_throttling_exception::de_throttling_exception_json_err(_response_body, output)
|
224 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
225 - | let output = output.meta(generic);
|
226 - | output.build()
|
227 - | };
|
228 - | if tmp.message.is_none() {
|
229 - | tmp.message = _error_message;
|
230 - | }
|
231 - | tmp
|
232 - | }),
|
233 - | "ValidationException" => crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::ValidationException({
|
234 - | #[allow(unused_mut)]
|
235 - | let mut tmp = {
|
236 - | #[allow(unused_mut)]
|
237 - | let mut output = crate::types::error::builders::ValidationExceptionBuilder::default();
|
238 - | output = crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(_response_body, output)
|
239 - | .map_err(crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::unhandled)?;
|
240 - | let output = output.meta(generic);
|
241 - | output.build()
|
242 - | };
|
243 - | if tmp.message.is_none() {
|
244 - | tmp.message = _error_message;
|
245 - | }
|
246 - | tmp
|
247 - | }),
|
248 - | _ => crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamError::generic(generic),
|
249 - | })
|
250 - | }
|
251 - |
|
252 - | pub fn ser_invoke_model_with_response_stream_headers(
|
253 - | input: &crate::operation::invoke_model_with_response_stream::InvokeModelWithResponseStreamInput,
|
254 - | mut builder: ::http_1x::request::Builder,
|
255 - | ) -> std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
|
256 - | if let ::std::option::Option::Some(inner_1) = &input.content_type {
|
257 - | let formatted_2 = inner_1.as_str();
|
258 - | let header_value = formatted_2;
|
259 - | let header_value: ::http_1x::HeaderValue = header_value.parse().map_err(|err| {
|
260 - | ::aws_smithy_types::error::operation::BuildError::invalid_field(
|
261 - | "content_type",
|
262 - | format!("`{}` cannot be used as a header value: {}", &header_value, err),
|
263 - | )
|
264 - | })?;
|
265 - | builder = builder.header("Content-Type", header_value);
|
266 - | }
|
267 - | if let ::std::option::Option::Some(inner_3) = &input.accept {
|
268 - | let formatted_4 = inner_3.as_str();
|
269 - | let header_value = formatted_4;
|
270 - | let header_value: ::http_1x::HeaderValue = header_value.parse().map_err(|err| {
|
271 - | ::aws_smithy_types::error::operation::BuildError::invalid_field(
|
272 - | "accept",
|
273 - | format!("`{}` cannot be used as a header value: {}", &header_value, err),
|
274 - | )
|
275 - | })?;
|
276 - | builder = builder.header("X-Amzn-Bedrock-Accept", header_value);
|
277 - | }
|
278 - | if let ::std::option::Option::Some(inner_5) = &input.trace {
|
279 - | let formatted_6 = inner_5.as_str();
|
280 - | let header_value = formatted_6;
|
281 - | let header_value: ::http_1x::HeaderValue = header_value.parse().map_err(|err| {
|
282 - | ::aws_smithy_types::error::operation::BuildError::invalid_field(
|
283 - | "trace",
|
284 - | format!("`{}` cannot be used as a header value: {}", &header_value, err),
|
285 - | )
|
286 - | })?;
|
287 - | builder = builder.header("X-Amzn-Bedrock-Trace", header_value);
|
288 - | }
|
289 - | if let ::std::option::Option::Some(inner_7) = &input.guardrail_identifier {
|
290 - | let formatted_8 = inner_7.as_str();
|
291 - | let header_value = formatted_8;
|
292 - | let header_value: ::http_1x::HeaderValue = header_value.parse().map_err(|err| {
|
293 - | ::aws_smithy_types::error::operation::BuildError::invalid_field(
|
294 - | "guardrail_identifier",
|
295 - | format!("`{}` cannot be used as a header value: {}", &header_value, err),
|
296 - | )
|
297 - | })?;
|
298 - | builder = builder.header("X-Amzn-Bedrock-GuardrailIdentifier", header_value);
|
299 - | }
|
300 - | if let ::std::option::Option::Some(inner_9) = &input.guardrail_version {
|
301 - | let formatted_10 = inner_9.as_str();
|
302 - | let header_value = formatted_10;
|
303 - | let header_value: ::http_1x::HeaderValue = header_value.parse().map_err(|err| {
|
304 - | ::aws_smithy_types::error::operation::BuildError::invalid_field(
|
305 - | "guardrail_version",
|
306 - | format!("`{}` cannot be used as a header value: {}", &header_value, err),
|
307 - | )
|
308 - | })?;
|
309 - | builder = builder.header("X-Amzn-Bedrock-GuardrailVersion", header_value);
|
310 - | }
|
311 - | if let ::std::option::Option::Some(inner_11) = &input.performance_config_latency {
|
312 - | let formatted_12 = inner_11.as_str();
|
313 - | let header_value = formatted_12;
|
314 - | let header_value: ::http_1x::HeaderValue = header_value.parse().map_err(|err| {
|
315 - | ::aws_smithy_types::error::operation::BuildError::invalid_field(
|
316 - | "performance_config_latency",
|
317 - | format!("`{}` cannot be used as a header value: {}", &header_value, err),
|
318 - | )
|
319 - | })?;
|
320 - | builder = builder.header("X-Amzn-Bedrock-PerformanceConfig-Latency", header_value);
|
321 - | }
|
322 - | Ok(builder)
|
323 - | }
|