#[non_exhaustive]
#[derive(Debug)]
pub struct ResponseStreamUnmarshaller;
impl ResponseStreamUnmarshaller {
pub fn new() -> Self {
ResponseStreamUnmarshaller
}
}
impl ::aws_smithy_eventstream::frame::UnmarshallMessage for ResponseStreamUnmarshaller {
type Output = crate::types::ResponseStream;
type Error = crate::types::error::ResponseStreamError;
fn unmarshall(
&self,
message: &::aws_smithy_types::event_stream::Message,
) -> std::result::Result<::aws_smithy_eventstream::frame::UnmarshalledMessage<Self::Output, Self::Error>, ::aws_smithy_eventstream::error::Error>
{
let response_headers = ::aws_smithy_eventstream::smithy::parse_response_headers(message)?;
match response_headers.message_type.as_str() {
"event" => match response_headers.smithy_type.as_str() {
"chunk" => {
let parsed = crate::protocol_serde::shape_payload_part::de_payload_part_payload(&message.payload()[..])
.map_err(|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall Chunk: {err}")))?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::ResponseStream::Chunk(parsed),
))
}
"trace" => {
let parsed = crate::protocol_serde::shape_trace_part::de_trace_part_payload(&message.payload()[..])
.map_err(|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall Trace: {err}")))?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::ResponseStream::Trace(parsed),
))
}
"returnControl" => {
let parsed = crate::protocol_serde::shape_return_control_payload::de_return_control_payload_payload(&message.payload()[..])
.map_err(|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall ReturnControl: {err}")))?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::ResponseStream::ReturnControl(parsed),
))
}
"files" => {
let parsed = crate::protocol_serde::shape_file_part::de_file_part_payload(&message.payload()[..])
.map_err(|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall Files: {err}")))?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::ResponseStream::Files(parsed),
))
}
_unknown_variant => Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::ResponseStream::Unknown,
)),
},
"exception" => {
let generic = match crate::protocol_serde::parse_event_stream_error_metadata(message.payload()) {
Ok(builder) => builder.build(),
Err(err) => {
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::unhandled(err),
))
}
};
match response_headers.smithy_type.as_str() {
"internalServerException" => {
let mut builder = crate::types::error::builders::InternalServerExceptionBuilder::default();
builder = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall internalServerException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::InternalServerException(builder.build()),
));
}
"validationException" => {
let mut builder = crate::types::error::builders::ValidationExceptionBuilder::default();
builder =
crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall validationException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::ValidationException(builder.build()),
));
}
"resourceNotFoundException" => {
let mut builder = crate::types::error::builders::ResourceNotFoundExceptionBuilder::default();
builder = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall resourceNotFoundException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::ResourceNotFoundException(builder.build()),
));
}
"serviceQuotaExceededException" => {
let mut builder = crate::types::error::builders::ServiceQuotaExceededExceptionBuilder::default();
builder = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!(
"failed to unmarshall serviceQuotaExceededException: {err}"
))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::ServiceQuotaExceededException(builder.build()),
));
}
"throttlingException" => {
let mut builder = crate::types::error::builders::ThrottlingExceptionBuilder::default();
builder =
crate::protocol_serde::shape_throttling_exception::de_throttling_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall throttlingException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::ThrottlingException(builder.build()),
));
}
"accessDeniedException" => {
let mut builder = crate::types::error::builders::AccessDeniedExceptionBuilder::default();
builder = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall accessDeniedException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::AccessDeniedException(builder.build()),
));
}
"conflictException" => {
let mut builder = crate::types::error::builders::ConflictExceptionBuilder::default();
builder = crate::protocol_serde::shape_conflict_exception::de_conflict_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall conflictException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::ConflictException(builder.build()),
));
}
"dependencyFailedException" => {
let mut builder = crate::types::error::builders::DependencyFailedExceptionBuilder::default();
builder = crate::protocol_serde::shape_dependency_failed_exception::de_dependency_failed_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall dependencyFailedException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::DependencyFailedException(builder.build()),
));
}
"badGatewayException" => {
let mut builder = crate::types::error::builders::BadGatewayExceptionBuilder::default();
builder =
crate::protocol_serde::shape_bad_gateway_exception::de_bad_gateway_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall badGatewayException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::BadGatewayException(builder.build()),
));
}
"modelNotReadyException" => {
let mut builder = crate::types::error::builders::ModelNotReadyExceptionBuilder::default();
builder = crate::protocol_serde::shape_model_not_ready_exception::de_model_not_ready_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall modelNotReadyException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::ModelNotReadyException(builder.build()),
));
}
_ => {}
}
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::ResponseStreamError::generic(generic),
))
}
value => {
return Err(::aws_smithy_eventstream::error::Error::unmarshalling(format!(
"unrecognized :message-type: {value}"
)));
}
}
}
}
#[non_exhaustive]
#[derive(Debug)]
pub struct FlowResponseStreamUnmarshaller;
impl FlowResponseStreamUnmarshaller {
pub fn new() -> Self {
FlowResponseStreamUnmarshaller
}
}
impl ::aws_smithy_eventstream::frame::UnmarshallMessage for FlowResponseStreamUnmarshaller {
type Output = crate::types::FlowResponseStream;
type Error = crate::types::error::FlowResponseStreamError;
fn unmarshall(
&self,
message: &::aws_smithy_types::event_stream::Message,
) -> std::result::Result<::aws_smithy_eventstream::frame::UnmarshalledMessage<Self::Output, Self::Error>, ::aws_smithy_eventstream::error::Error>
{
let response_headers = ::aws_smithy_eventstream::smithy::parse_response_headers(message)?;
match response_headers.message_type.as_str() {
"event" => match response_headers.smithy_type.as_str() {
"flowOutputEvent" => {
let parsed =
crate::protocol_serde::shape_flow_output_event::de_flow_output_event_payload(&message.payload()[..]).map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall FlowOutputEvent: {err}"))
})?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::FlowResponseStream::FlowOutputEvent(parsed),
))
}
"flowCompletionEvent" => {
let parsed = crate::protocol_serde::shape_flow_completion_event::de_flow_completion_event_payload(&message.payload()[..])
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall FlowCompletionEvent: {err}"))
})?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::FlowResponseStream::FlowCompletionEvent(parsed),
))
}
"flowTraceEvent" => {
let parsed =
crate::protocol_serde::shape_flow_trace_event::de_flow_trace_event_payload(&message.payload()[..]).map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall FlowTraceEvent: {err}"))
})?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::FlowResponseStream::FlowTraceEvent(parsed),
))
}
"flowMultiTurnInputRequestEvent" => {
let parsed = crate::protocol_serde::shape_flow_multi_turn_input_request_event::de_flow_multi_turn_input_request_event_payload(
&message.payload()[..],
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall FlowMultiTurnInputRequestEvent: {err}"))
})?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::FlowResponseStream::FlowMultiTurnInputRequestEvent(parsed),
))
}
_unknown_variant => Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::FlowResponseStream::Unknown,
)),
},
"exception" => {
let generic = match crate::protocol_serde::parse_event_stream_error_metadata(message.payload()) {
Ok(builder) => builder.build(),
Err(err) => {
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::FlowResponseStreamError::unhandled(err),
))
}
};
match response_headers.smithy_type.as_str() {
"internalServerException" => {
let mut builder = crate::types::error::builders::InternalServerExceptionBuilder::default();
builder = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall internalServerException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::FlowResponseStreamError::InternalServerException(builder.build()),
));
}
"validationException" => {
let mut builder = crate::types::error::builders::ValidationExceptionBuilder::default();
builder =
crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall validationException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::FlowResponseStreamError::ValidationException(builder.build()),
));
}
"resourceNotFoundException" => {
let mut builder = crate::types::error::builders::ResourceNotFoundExceptionBuilder::default();
builder = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall resourceNotFoundException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::FlowResponseStreamError::ResourceNotFoundException(builder.build()),
));
}
"serviceQuotaExceededException" => {
let mut builder = crate::types::error::builders::ServiceQuotaExceededExceptionBuilder::default();
builder = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!(
"failed to unmarshall serviceQuotaExceededException: {err}"
))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::FlowResponseStreamError::ServiceQuotaExceededException(builder.build()),
));
}
"throttlingException" => {
let mut builder = crate::types::error::builders::ThrottlingExceptionBuilder::default();
builder =
crate::protocol_serde::shape_throttling_exception::de_throttling_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall throttlingException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::FlowResponseStreamError::ThrottlingException(builder.build()),
));
}
"accessDeniedException" => {
let mut builder = crate::types::error::builders::AccessDeniedExceptionBuilder::default();
builder = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall accessDeniedException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::FlowResponseStreamError::AccessDeniedException(builder.build()),
));
}
"conflictException" => {
let mut builder = crate::types::error::builders::ConflictExceptionBuilder::default();
builder = crate::protocol_serde::shape_conflict_exception::de_conflict_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall conflictException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::FlowResponseStreamError::ConflictException(builder.build()),
));
}
"dependencyFailedException" => {
let mut builder = crate::types::error::builders::DependencyFailedExceptionBuilder::default();
builder = crate::protocol_serde::shape_dependency_failed_exception::de_dependency_failed_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall dependencyFailedException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::FlowResponseStreamError::DependencyFailedException(builder.build()),
));
}
"badGatewayException" => {
let mut builder = crate::types::error::builders::BadGatewayExceptionBuilder::default();
builder =
crate::protocol_serde::shape_bad_gateway_exception::de_bad_gateway_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall badGatewayException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::FlowResponseStreamError::BadGatewayException(builder.build()),
));
}
_ => {}
}
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::FlowResponseStreamError::generic(generic),
))
}
value => {
return Err(::aws_smithy_eventstream::error::Error::unmarshalling(format!(
"unrecognized :message-type: {value}"
)));
}
}
}
}
#[non_exhaustive]
#[derive(Debug)]
pub struct InlineAgentResponseStreamUnmarshaller;
impl InlineAgentResponseStreamUnmarshaller {
pub fn new() -> Self {
InlineAgentResponseStreamUnmarshaller
}
}
impl ::aws_smithy_eventstream::frame::UnmarshallMessage for InlineAgentResponseStreamUnmarshaller {
type Output = crate::types::InlineAgentResponseStream;
type Error = crate::types::error::InlineAgentResponseStreamError;
fn unmarshall(
&self,
message: &::aws_smithy_types::event_stream::Message,
) -> std::result::Result<::aws_smithy_eventstream::frame::UnmarshalledMessage<Self::Output, Self::Error>, ::aws_smithy_eventstream::error::Error>
{
let response_headers = ::aws_smithy_eventstream::smithy::parse_response_headers(message)?;
match response_headers.message_type.as_str() {
"event" => match response_headers.smithy_type.as_str() {
"chunk" => {
let parsed = crate::protocol_serde::shape_inline_agent_payload_part::de_inline_agent_payload_part_payload(&message.payload()[..])
.map_err(|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall Chunk: {err}")))?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::InlineAgentResponseStream::Chunk(parsed),
))
}
"trace" => {
let parsed = crate::protocol_serde::shape_inline_agent_trace_part::de_inline_agent_trace_part_payload(&message.payload()[..])
.map_err(|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall Trace: {err}")))?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::InlineAgentResponseStream::Trace(parsed),
))
}
"returnControl" => {
let parsed = crate::protocol_serde::shape_inline_agent_return_control_payload::de_inline_agent_return_control_payload_payload(
&message.payload()[..],
)
.map_err(|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall ReturnControl: {err}")))?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::InlineAgentResponseStream::ReturnControl(parsed),
))
}
"files" => {
let parsed = crate::protocol_serde::shape_inline_agent_file_part::de_inline_agent_file_part_payload(&message.payload()[..])
.map_err(|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall Files: {err}")))?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::InlineAgentResponseStream::Files(parsed),
))
}
_unknown_variant => Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::InlineAgentResponseStream::Unknown,
)),
},
"exception" => {
let generic = match crate::protocol_serde::parse_event_stream_error_metadata(message.payload()) {
Ok(builder) => builder.build(),
Err(err) => {
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::InlineAgentResponseStreamError::unhandled(err),
))
}
};
match response_headers.smithy_type.as_str() {
"internalServerException" => {
let mut builder = crate::types::error::builders::InternalServerExceptionBuilder::default();
builder = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall internalServerException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::InlineAgentResponseStreamError::InternalServerException(builder.build()),
));
}
"validationException" => {
let mut builder = crate::types::error::builders::ValidationExceptionBuilder::default();
builder =
crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall validationException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::InlineAgentResponseStreamError::ValidationException(builder.build()),
));
}
"resourceNotFoundException" => {
let mut builder = crate::types::error::builders::ResourceNotFoundExceptionBuilder::default();
builder = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall resourceNotFoundException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::InlineAgentResponseStreamError::ResourceNotFoundException(builder.build()),
));
}
"serviceQuotaExceededException" => {
let mut builder = crate::types::error::builders::ServiceQuotaExceededExceptionBuilder::default();
builder = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!(
"failed to unmarshall serviceQuotaExceededException: {err}"
))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::InlineAgentResponseStreamError::ServiceQuotaExceededException(builder.build()),
));
}
"throttlingException" => {
let mut builder = crate::types::error::builders::ThrottlingExceptionBuilder::default();
builder =
crate::protocol_serde::shape_throttling_exception::de_throttling_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall throttlingException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::InlineAgentResponseStreamError::ThrottlingException(builder.build()),
));
}
"accessDeniedException" => {
let mut builder = crate::types::error::builders::AccessDeniedExceptionBuilder::default();
builder = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall accessDeniedException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::InlineAgentResponseStreamError::AccessDeniedException(builder.build()),
));
}
"conflictException" => {
let mut builder = crate::types::error::builders::ConflictExceptionBuilder::default();
builder = crate::protocol_serde::shape_conflict_exception::de_conflict_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall conflictException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::InlineAgentResponseStreamError::ConflictException(builder.build()),
));
}
"dependencyFailedException" => {
let mut builder = crate::types::error::builders::DependencyFailedExceptionBuilder::default();
builder = crate::protocol_serde::shape_dependency_failed_exception::de_dependency_failed_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall dependencyFailedException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::InlineAgentResponseStreamError::DependencyFailedException(builder.build()),
));
}
"badGatewayException" => {
let mut builder = crate::types::error::builders::BadGatewayExceptionBuilder::default();
builder =
crate::protocol_serde::shape_bad_gateway_exception::de_bad_gateway_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall badGatewayException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::InlineAgentResponseStreamError::BadGatewayException(builder.build()),
));
}
_ => {}
}
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::InlineAgentResponseStreamError::generic(generic),
))
}
value => {
return Err(::aws_smithy_eventstream::error::Error::unmarshalling(format!(
"unrecognized :message-type: {value}"
)));
}
}
}
}
#[non_exhaustive]
#[derive(Debug)]
pub struct OptimizedPromptStreamUnmarshaller;
impl OptimizedPromptStreamUnmarshaller {
pub fn new() -> Self {
OptimizedPromptStreamUnmarshaller
}
}
impl ::aws_smithy_eventstream::frame::UnmarshallMessage for OptimizedPromptStreamUnmarshaller {
type Output = crate::types::OptimizedPromptStream;
type Error = crate::types::error::OptimizedPromptStreamError;
fn unmarshall(
&self,
message: &::aws_smithy_types::event_stream::Message,
) -> std::result::Result<::aws_smithy_eventstream::frame::UnmarshalledMessage<Self::Output, Self::Error>, ::aws_smithy_eventstream::error::Error>
{
let response_headers = ::aws_smithy_eventstream::smithy::parse_response_headers(message)?;
match response_headers.message_type.as_str() {
"event" => match response_headers.smithy_type.as_str() {
"optimizedPromptEvent" => {
let parsed = crate::protocol_serde::shape_optimized_prompt_event::de_optimized_prompt_event_payload(&message.payload()[..])
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall OptimizedPromptEvent: {err}"))
})?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::OptimizedPromptStream::OptimizedPromptEvent(parsed),
))
}
"analyzePromptEvent" => {
let parsed = crate::protocol_serde::shape_analyze_prompt_event::de_analyze_prompt_event_payload(&message.payload()[..]).map_err(
|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall AnalyzePromptEvent: {err}")),
)?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::OptimizedPromptStream::AnalyzePromptEvent(parsed),
))
}
_unknown_variant => Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::OptimizedPromptStream::Unknown,
)),
},
"exception" => {
let generic = match crate::protocol_serde::parse_event_stream_error_metadata(message.payload()) {
Ok(builder) => builder.build(),
Err(err) => {
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::OptimizedPromptStreamError::unhandled(err),
))
}
};
match response_headers.smithy_type.as_str() {
"internalServerException" => {
let mut builder = crate::types::error::builders::InternalServerExceptionBuilder::default();
builder = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall internalServerException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::OptimizedPromptStreamError::InternalServerException(builder.build()),
));
}
"throttlingException" => {
let mut builder = crate::types::error::builders::ThrottlingExceptionBuilder::default();
builder =
crate::protocol_serde::shape_throttling_exception::de_throttling_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall throttlingException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::OptimizedPromptStreamError::ThrottlingException(builder.build()),
));
}
"validationException" => {
let mut builder = crate::types::error::builders::ValidationExceptionBuilder::default();
builder =
crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall validationException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::OptimizedPromptStreamError::ValidationException(builder.build()),
));
}
"dependencyFailedException" => {
let mut builder = crate::types::error::builders::DependencyFailedExceptionBuilder::default();
builder = crate::protocol_serde::shape_dependency_failed_exception::de_dependency_failed_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall dependencyFailedException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::OptimizedPromptStreamError::DependencyFailedException(builder.build()),
));
}
"accessDeniedException" => {
let mut builder = crate::types::error::builders::AccessDeniedExceptionBuilder::default();
builder = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall accessDeniedException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::OptimizedPromptStreamError::AccessDeniedException(builder.build()),
));
}
"badGatewayException" => {
let mut builder = crate::types::error::builders::BadGatewayExceptionBuilder::default();
builder =
crate::protocol_serde::shape_bad_gateway_exception::de_bad_gateway_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall badGatewayException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::OptimizedPromptStreamError::BadGatewayException(builder.build()),
));
}
_ => {}
}
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::OptimizedPromptStreamError::generic(generic),
))
}
value => {
return Err(::aws_smithy_eventstream::error::Error::unmarshalling(format!(
"unrecognized :message-type: {value}"
)));
}
}
}
}
#[non_exhaustive]
#[derive(Debug)]
pub struct RetrieveAndGenerateStreamResponseOutputUnmarshaller;
impl RetrieveAndGenerateStreamResponseOutputUnmarshaller {
pub fn new() -> Self {
RetrieveAndGenerateStreamResponseOutputUnmarshaller
}
}
impl ::aws_smithy_eventstream::frame::UnmarshallMessage for RetrieveAndGenerateStreamResponseOutputUnmarshaller {
type Output = crate::types::RetrieveAndGenerateStreamResponseOutput;
type Error = crate::types::error::RetrieveAndGenerateStreamResponseOutputError;
fn unmarshall(
&self,
message: &::aws_smithy_types::event_stream::Message,
) -> std::result::Result<::aws_smithy_eventstream::frame::UnmarshalledMessage<Self::Output, Self::Error>, ::aws_smithy_eventstream::error::Error>
{
let response_headers = ::aws_smithy_eventstream::smithy::parse_response_headers(message)?;
match response_headers.message_type.as_str() {
"event" => match response_headers.smithy_type.as_str() {
"output" => {
let parsed = crate::protocol_serde::shape_retrieve_and_generate_output_event::de_retrieve_and_generate_output_event_payload(
&message.payload()[..],
)
.map_err(|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall Output: {err}")))?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::RetrieveAndGenerateStreamResponseOutput::Output(parsed),
))
}
"citation" => {
let parsed = crate::protocol_serde::shape_citation_event::de_citation_event_payload(&message.payload()[..])
.map_err(|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall Citation: {err}")))?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::RetrieveAndGenerateStreamResponseOutput::Citation(parsed),
))
}
"guardrail" => {
let parsed = crate::protocol_serde::shape_guardrail_event::de_guardrail_event_payload(&message.payload()[..])
.map_err(|err| ::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall Guardrail: {err}")))?;
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::RetrieveAndGenerateStreamResponseOutput::Guardrail(parsed),
))
}
_unknown_variant => Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Event(
crate::types::RetrieveAndGenerateStreamResponseOutput::Unknown,
)),
},
"exception" => {
let generic = match crate::protocol_serde::parse_event_stream_error_metadata(message.payload()) {
Ok(builder) => builder.build(),
Err(err) => {
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::RetrieveAndGenerateStreamResponseOutputError::unhandled(err),
))
}
};
match response_headers.smithy_type.as_str() {
"internalServerException" => {
let mut builder = crate::types::error::builders::InternalServerExceptionBuilder::default();
builder = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall internalServerException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::RetrieveAndGenerateStreamResponseOutputError::InternalServerException(builder.build()),
));
}
"validationException" => {
let mut builder = crate::types::error::builders::ValidationExceptionBuilder::default();
builder =
crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall validationException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::RetrieveAndGenerateStreamResponseOutputError::ValidationException(builder.build()),
));
}
"resourceNotFoundException" => {
let mut builder = crate::types::error::builders::ResourceNotFoundExceptionBuilder::default();
builder = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall resourceNotFoundException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::RetrieveAndGenerateStreamResponseOutputError::ResourceNotFoundException(builder.build()),
));
}
"serviceQuotaExceededException" => {
let mut builder = crate::types::error::builders::ServiceQuotaExceededExceptionBuilder::default();
builder = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!(
"failed to unmarshall serviceQuotaExceededException: {err}"
))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::RetrieveAndGenerateStreamResponseOutputError::ServiceQuotaExceededException(builder.build()),
));
}
"throttlingException" => {
let mut builder = crate::types::error::builders::ThrottlingExceptionBuilder::default();
builder =
crate::protocol_serde::shape_throttling_exception::de_throttling_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall throttlingException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::RetrieveAndGenerateStreamResponseOutputError::ThrottlingException(builder.build()),
));
}
"accessDeniedException" => {
let mut builder = crate::types::error::builders::AccessDeniedExceptionBuilder::default();
builder = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall accessDeniedException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::RetrieveAndGenerateStreamResponseOutputError::AccessDeniedException(builder.build()),
));
}
"conflictException" => {
let mut builder = crate::types::error::builders::ConflictExceptionBuilder::default();
builder = crate::protocol_serde::shape_conflict_exception::de_conflict_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall conflictException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::RetrieveAndGenerateStreamResponseOutputError::ConflictException(builder.build()),
));
}
"dependencyFailedException" => {
let mut builder = crate::types::error::builders::DependencyFailedExceptionBuilder::default();
builder = crate::protocol_serde::shape_dependency_failed_exception::de_dependency_failed_exception_json_err(
&message.payload()[..],
builder,
)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall dependencyFailedException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::RetrieveAndGenerateStreamResponseOutputError::DependencyFailedException(builder.build()),
));
}
"badGatewayException" => {
let mut builder = crate::types::error::builders::BadGatewayExceptionBuilder::default();
builder =
crate::protocol_serde::shape_bad_gateway_exception::de_bad_gateway_exception_json_err(&message.payload()[..], builder)
.map_err(|err| {
::aws_smithy_eventstream::error::Error::unmarshalling(format!("failed to unmarshall badGatewayException: {err}"))
})?;
builder.set_meta(Some(generic));
return Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::RetrieveAndGenerateStreamResponseOutputError::BadGatewayException(builder.build()),
));
}
_ => {}
}
Ok(::aws_smithy_eventstream::frame::UnmarshalledMessage::Error(
crate::types::error::RetrieveAndGenerateStreamResponseOutputError::generic(generic),
))
}
value => {
return Err(::aws_smithy_eventstream::error::Error::unmarshalling(format!(
"unrecognized :message-type: {value}"
)));
}
}
}
}