AWS SDK

AWS SDK

rev. 5673a7a38b4a4a6973351c005d572863803729fe

Files changed:

tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/src/operation/list_async_invokes/builders.rs

@@ -0,1 +0,215 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub use crate::operation::list_async_invokes::_list_async_invokes_output::ListAsyncInvokesOutputBuilder;
           3  +
           4  +
pub use crate::operation::list_async_invokes::_list_async_invokes_input::ListAsyncInvokesInputBuilder;
           5  +
           6  +
impl crate::operation::list_async_invokes::builders::ListAsyncInvokesInputBuilder {
           7  +
    /// Sends a request with this input using the given client.
           8  +
    pub async fn send_with(
           9  +
        self,
          10  +
        client: &crate::Client,
          11  +
    ) -> ::std::result::Result<
          12  +
        crate::operation::list_async_invokes::ListAsyncInvokesOutput,
          13  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          14  +
            crate::operation::list_async_invokes::ListAsyncInvokesError,
          15  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          16  +
        >,
          17  +
    > {
          18  +
        let mut fluent_builder = client.list_async_invokes();
          19  +
        fluent_builder.inner = self;
          20  +
        fluent_builder.send().await
          21  +
    }
          22  +
}
          23  +
/// Fluent builder constructing a request to `ListAsyncInvokes`.
          24  +
///
          25  +
/// <p>Lists asynchronous invocations.</p>
          26  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          27  +
pub struct ListAsyncInvokesFluentBuilder {
          28  +
    handle: ::std::sync::Arc<crate::client::Handle>,
          29  +
    inner: crate::operation::list_async_invokes::builders::ListAsyncInvokesInputBuilder,
          30  +
    config_override: ::std::option::Option<crate::config::Builder>,
          31  +
}
          32  +
impl
          33  +
    crate::client::customize::internal::CustomizableSend<
          34  +
        crate::operation::list_async_invokes::ListAsyncInvokesOutput,
          35  +
        crate::operation::list_async_invokes::ListAsyncInvokesError,
          36  +
    > for ListAsyncInvokesFluentBuilder
          37  +
{
          38  +
    fn send(
          39  +
        self,
          40  +
        config_override: crate::config::Builder,
          41  +
    ) -> crate::client::customize::internal::BoxFuture<
          42  +
        crate::client::customize::internal::SendResult<
          43  +
            crate::operation::list_async_invokes::ListAsyncInvokesOutput,
          44  +
            crate::operation::list_async_invokes::ListAsyncInvokesError,
          45  +
        >,
          46  +
    > {
          47  +
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
          48  +
    }
          49  +
}
          50  +
impl ListAsyncInvokesFluentBuilder {
          51  +
    /// Creates a new `ListAsyncInvokesFluentBuilder`.
          52  +
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
          53  +
        Self {
          54  +
            handle,
          55  +
            inner: ::std::default::Default::default(),
          56  +
            config_override: ::std::option::Option::None,
          57  +
        }
          58  +
    }
          59  +
    /// Access the ListAsyncInvokes as a reference.
          60  +
    pub fn as_input(&self) -> &crate::operation::list_async_invokes::builders::ListAsyncInvokesInputBuilder {
          61  +
        &self.inner
          62  +
    }
          63  +
    /// Sends the request and returns the response.
          64  +
    ///
          65  +
    /// If an error occurs, an `SdkError` will be returned with additional details that
          66  +
    /// can be matched against.
          67  +
    ///
          68  +
    /// By default, any retryable failures will be retried twice. Retry behavior
          69  +
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
          70  +
    /// set when configuring the client.
          71  +
    pub async fn send(
          72  +
        self,
          73  +
    ) -> ::std::result::Result<
          74  +
        crate::operation::list_async_invokes::ListAsyncInvokesOutput,
          75  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          76  +
            crate::operation::list_async_invokes::ListAsyncInvokesError,
          77  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          78  +
        >,
          79  +
    > {
          80  +
        let input = self
          81  +
            .inner
          82  +
            .build()
          83  +
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
          84  +
        let runtime_plugins = crate::operation::list_async_invokes::ListAsyncInvokes::operation_runtime_plugins(
          85  +
            self.handle.runtime_plugins.clone(),
          86  +
            &self.handle.conf,
          87  +
            self.config_override,
          88  +
        );
          89  +
        crate::operation::list_async_invokes::ListAsyncInvokes::orchestrate(&runtime_plugins, input).await
          90  +
    }
          91  +
          92  +
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
          93  +
    pub fn customize(
          94  +
        self,
          95  +
    ) -> crate::client::customize::CustomizableOperation<
          96  +
        crate::operation::list_async_invokes::ListAsyncInvokesOutput,
          97  +
        crate::operation::list_async_invokes::ListAsyncInvokesError,
          98  +
        Self,
          99  +
    > {
         100  +
        crate::client::customize::CustomizableOperation::new(self)
         101  +
    }
         102  +
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
         103  +
        self.set_config_override(::std::option::Option::Some(config_override.into()));
         104  +
        self
         105  +
    }
         106  +
         107  +
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
         108  +
        self.config_override = config_override;
         109  +
        self
         110  +
    }
         111  +
    /// Create a paginator for this request
         112  +
    ///
         113  +
    /// Paginators are used by calling [`send().await`](crate::operation::list_async_invokes::paginator::ListAsyncInvokesPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
         114  +
    pub fn into_paginator(self) -> crate::operation::list_async_invokes::paginator::ListAsyncInvokesPaginator {
         115  +
        crate::operation::list_async_invokes::paginator::ListAsyncInvokesPaginator::new(self.handle, self.inner)
         116  +
    }
         117  +
    /// <p>Include invocations submitted after this time.</p>
         118  +
    pub fn submit_time_after(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         119  +
        self.inner = self.inner.submit_time_after(input);
         120  +
        self
         121  +
    }
         122  +
    /// <p>Include invocations submitted after this time.</p>
         123  +
    pub fn set_submit_time_after(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         124  +
        self.inner = self.inner.set_submit_time_after(input);
         125  +
        self
         126  +
    }
         127  +
    /// <p>Include invocations submitted after this time.</p>
         128  +
    pub fn get_submit_time_after(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         129  +
        self.inner.get_submit_time_after()
         130  +
    }
         131  +
    /// <p>Include invocations submitted before this time.</p>
         132  +
    pub fn submit_time_before(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         133  +
        self.inner = self.inner.submit_time_before(input);
         134  +
        self
         135  +
    }
         136  +
    /// <p>Include invocations submitted before this time.</p>
         137  +
    pub fn set_submit_time_before(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         138  +
        self.inner = self.inner.set_submit_time_before(input);
         139  +
        self
         140  +
    }
         141  +
    /// <p>Include invocations submitted before this time.</p>
         142  +
    pub fn get_submit_time_before(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         143  +
        self.inner.get_submit_time_before()
         144  +
    }
         145  +
    /// <p>Filter invocations by status.</p>
         146  +
    pub fn status_equals(mut self, input: crate::types::AsyncInvokeStatus) -> Self {
         147  +
        self.inner = self.inner.status_equals(input);
         148  +
        self
         149  +
    }
         150  +
    /// <p>Filter invocations by status.</p>
         151  +
    pub fn set_status_equals(mut self, input: ::std::option::Option<crate::types::AsyncInvokeStatus>) -> Self {
         152  +
        self.inner = self.inner.set_status_equals(input);
         153  +
        self
         154  +
    }
         155  +
    /// <p>Filter invocations by status.</p>
         156  +
    pub fn get_status_equals(&self) -> &::std::option::Option<crate::types::AsyncInvokeStatus> {
         157  +
        self.inner.get_status_equals()
         158  +
    }
         159  +
    /// <p>The maximum number of invocations to return in one page of results.</p>
         160  +
    pub fn max_results(mut self, input: i32) -> Self {
         161  +
        self.inner = self.inner.max_results(input);
         162  +
        self
         163  +
    }
         164  +
    /// <p>The maximum number of invocations to return in one page of results.</p>
         165  +
    pub fn set_max_results(mut self, input: ::std::option::Option<i32>) -> Self {
         166  +
        self.inner = self.inner.set_max_results(input);
         167  +
        self
         168  +
    }
         169  +
    /// <p>The maximum number of invocations to return in one page of results.</p>
         170  +
    pub fn get_max_results(&self) -> &::std::option::Option<i32> {
         171  +
        self.inner.get_max_results()
         172  +
    }
         173  +
    /// <p>Specify the pagination token from a previous request to retrieve the next page of results.</p>
         174  +
    pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         175  +
        self.inner = self.inner.next_token(input.into());
         176  +
        self
         177  +
    }
         178  +
    /// <p>Specify the pagination token from a previous request to retrieve the next page of results.</p>
         179  +
    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         180  +
        self.inner = self.inner.set_next_token(input);
         181  +
        self
         182  +
    }
         183  +
    /// <p>Specify the pagination token from a previous request to retrieve the next page of results.</p>
         184  +
    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
         185  +
        self.inner.get_next_token()
         186  +
    }
         187  +
    /// <p>How to sort the response.</p>
         188  +
    pub fn sort_by(mut self, input: crate::types::SortAsyncInvocationBy) -> Self {
         189  +
        self.inner = self.inner.sort_by(input);
         190  +
        self
         191  +
    }
         192  +
    /// <p>How to sort the response.</p>
         193  +
    pub fn set_sort_by(mut self, input: ::std::option::Option<crate::types::SortAsyncInvocationBy>) -> Self {
         194  +
        self.inner = self.inner.set_sort_by(input);
         195  +
        self
         196  +
    }
         197  +
    /// <p>How to sort the response.</p>
         198  +
    pub fn get_sort_by(&self) -> &::std::option::Option<crate::types::SortAsyncInvocationBy> {
         199  +
        self.inner.get_sort_by()
         200  +
    }
         201  +
    /// <p>The sorting order for the response.</p>
         202  +
    pub fn sort_order(mut self, input: crate::types::SortOrder) -> Self {
         203  +
        self.inner = self.inner.sort_order(input);
         204  +
        self
         205  +
    }
         206  +
    /// <p>The sorting order for the response.</p>
         207  +
    pub fn set_sort_order(mut self, input: ::std::option::Option<crate::types::SortOrder>) -> Self {
         208  +
        self.inner = self.inner.set_sort_order(input);
         209  +
        self
         210  +
    }
         211  +
    /// <p>The sorting order for the response.</p>
         212  +
    pub fn get_sort_order(&self) -> &::std::option::Option<crate::types::SortOrder> {
         213  +
        self.inner.get_sort_order()
         214  +
    }
         215  +
}

tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/src/operation/list_async_invokes/paginator.rs

@@ -0,1 +0,148 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/// Paginator for [`ListAsyncInvokes`](crate::operation::list_async_invokes::ListAsyncInvokes)
           3  +
pub struct ListAsyncInvokesPaginator {
           4  +
    handle: std::sync::Arc<crate::client::Handle>,
           5  +
    builder: crate::operation::list_async_invokes::builders::ListAsyncInvokesInputBuilder,
           6  +
    stop_on_duplicate_token: bool,
           7  +
}
           8  +
           9  +
impl ListAsyncInvokesPaginator {
          10  +
    /// Create a new paginator-wrapper
          11  +
    pub(crate) fn new(
          12  +
        handle: std::sync::Arc<crate::client::Handle>,
          13  +
        builder: crate::operation::list_async_invokes::builders::ListAsyncInvokesInputBuilder,
          14  +
    ) -> Self {
          15  +
        Self {
          16  +
            handle,
          17  +
            builder,
          18  +
            stop_on_duplicate_token: true,
          19  +
        }
          20  +
    }
          21  +
          22  +
    /// Set the page size
          23  +
    ///
          24  +
    /// _Note: this method will override any previously set value for `max_results`_
          25  +
    pub fn page_size(mut self, limit: i32) -> Self {
          26  +
        self.builder.max_results = ::std::option::Option::Some(limit);
          27  +
        self
          28  +
    }
          29  +
          30  +
    /// Create a flattened paginator
          31  +
    ///
          32  +
    /// This paginator automatically flattens results using `async_invoke_summaries`. Queries to the underlying service
          33  +
    /// are dispatched lazily.
          34  +
    pub fn items(self) -> crate::operation::list_async_invokes::paginator::ListAsyncInvokesPaginatorItems {
          35  +
        crate::operation::list_async_invokes::paginator::ListAsyncInvokesPaginatorItems(self)
          36  +
    }
          37  +
          38  +
    /// Stop paginating when the service returns the same pagination token twice in a row.
          39  +
    ///
          40  +
    /// Defaults to true.
          41  +
    ///
          42  +
    /// For certain operations, it may be useful to continue on duplicate token. For example,
          43  +
    /// if an operation is for tailing a log file in real-time, then continuing may be desired.
          44  +
    /// This option can be set to `false` to accommodate these use cases.
          45  +
    pub fn stop_on_duplicate_token(mut self, stop_on_duplicate_token: bool) -> Self {
          46  +
        self.stop_on_duplicate_token = stop_on_duplicate_token;
          47  +
        self
          48  +
    }
          49  +
          50  +
    /// Create the pagination stream
          51  +
    ///
          52  +
    /// _Note:_ No requests will be dispatched until the stream is used
          53  +
    /// (e.g. with the [`.next().await`](aws_smithy_async::future::pagination_stream::PaginationStream::next) method).
          54  +
    pub fn send(
          55  +
        self,
          56  +
    ) -> ::aws_smithy_async::future::pagination_stream::PaginationStream<
          57  +
        ::std::result::Result<
          58  +
            crate::operation::list_async_invokes::ListAsyncInvokesOutput,
          59  +
            ::aws_smithy_runtime_api::client::result::SdkError<
          60  +
                crate::operation::list_async_invokes::ListAsyncInvokesError,
          61  +
                ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          62  +
            >,
          63  +
        >,
          64  +
    > {
          65  +
        // Move individual fields out of self for the borrow checker
          66  +
        let builder = self.builder;
          67  +
        let handle = self.handle;
          68  +
        let runtime_plugins = crate::operation::list_async_invokes::ListAsyncInvokes::operation_runtime_plugins(
          69  +
            handle.runtime_plugins.clone(),
          70  +
            &handle.conf,
          71  +
            ::std::option::Option::None,
          72  +
        )
          73  +
        .with_operation_plugin(crate::sdk_feature_tracker::paginator::PaginatorFeatureTrackerRuntimePlugin::new());
          74  +
        ::aws_smithy_async::future::pagination_stream::PaginationStream::new(::aws_smithy_async::future::pagination_stream::fn_stream::FnStream::new(
          75  +
            move |tx| {
          76  +
                ::std::boxed::Box::pin(async move {
          77  +
                    // Build the input for the first time. If required fields are missing, this is where we'll produce an early error.
          78  +
                    let mut input = match builder
          79  +
                        .build()
          80  +
                        .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)
          81  +
                    {
          82  +
                        ::std::result::Result::Ok(input) => input,
          83  +
                        ::std::result::Result::Err(e) => {
          84  +
                            let _ = tx.send(::std::result::Result::Err(e)).await;
          85  +
                            return;
          86  +
                        }
          87  +
                    };
          88  +
                    loop {
          89  +
                        let resp = crate::operation::list_async_invokes::ListAsyncInvokes::orchestrate(&runtime_plugins, input.clone()).await;
          90  +
                        // If the input member is None or it was an error
          91  +
                        let done = match resp {
          92  +
                            ::std::result::Result::Ok(ref resp) => {
          93  +
                                let new_token = crate::lens::reflens_list_async_invokes_output_output_next_token(resp);
          94  +
                                // Pagination is exhausted when the next token is an empty string
          95  +
                                let is_empty = new_token.map(|token| token.is_empty()).unwrap_or(true);
          96  +
                                if !is_empty && new_token == input.next_token.as_ref() && self.stop_on_duplicate_token {
          97  +
                                    true
          98  +
                                } else {
          99  +
                                    input.next_token = new_token.cloned();
         100  +
                                    is_empty
         101  +
                                }
         102  +
                            }
         103  +
                            ::std::result::Result::Err(_) => true,
         104  +
                        };
         105  +
                        if tx.send(resp).await.is_err() {
         106  +
                            // receiving end was dropped
         107  +
                            return;
         108  +
                        }
         109  +
                        if done {
         110  +
                            return;
         111  +
                        }
         112  +
                    }
         113  +
                })
         114  +
            },
         115  +
        ))
         116  +
    }
         117  +
}
         118  +
         119  +
/// Flattened paginator for `ListAsyncInvokesPaginator`
         120  +
///
         121  +
/// This is created with [`.items()`](ListAsyncInvokesPaginator::items)
         122  +
pub struct ListAsyncInvokesPaginatorItems(ListAsyncInvokesPaginator);
         123  +
         124  +
impl ListAsyncInvokesPaginatorItems {
         125  +
    /// Create the pagination stream
         126  +
    ///
         127  +
    /// _Note_: No requests will be dispatched until the stream is used
         128  +
    /// (e.g. with the [`.next().await`](aws_smithy_async::future::pagination_stream::PaginationStream::next) method).
         129  +
    ///
         130  +
    /// To read the entirety of the paginator, use [`.collect::<Result<Vec<_>, _>()`](aws_smithy_async::future::pagination_stream::PaginationStream::collect).
         131  +
    pub fn send(
         132  +
        self,
         133  +
    ) -> ::aws_smithy_async::future::pagination_stream::PaginationStream<
         134  +
        ::std::result::Result<
         135  +
            crate::types::AsyncInvokeSummary,
         136  +
            ::aws_smithy_runtime_api::client::result::SdkError<
         137  +
                crate::operation::list_async_invokes::ListAsyncInvokesError,
         138  +
                ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         139  +
            >,
         140  +
        >,
         141  +
    > {
         142  +
        ::aws_smithy_async::future::pagination_stream::TryFlatMap::new(self.0.send()).flat_map(|page| {
         143  +
            crate::lens::lens_list_async_invokes_output_output_async_invoke_summaries(page)
         144  +
                .unwrap_or_default()
         145  +
                .into_iter()
         146  +
        })
         147  +
    }
         148  +
}

tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/src/operation/start_async_invoke.rs

@@ -0,1 +0,442 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/// Orchestration and serialization glue logic for `StartAsyncInvoke`.
           3  +
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
           4  +
#[non_exhaustive]
           5  +
pub struct StartAsyncInvoke;
           6  +
impl StartAsyncInvoke {
           7  +
    /// Creates a new `StartAsyncInvoke`
           8  +
    pub fn new() -> Self {
           9  +
        Self
          10  +
    }
          11  +
    pub(crate) async fn orchestrate(
          12  +
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
          13  +
        input: crate::operation::start_async_invoke::StartAsyncInvokeInput,
          14  +
    ) -> ::std::result::Result<
          15  +
        crate::operation::start_async_invoke::StartAsyncInvokeOutput,
          16  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          17  +
            crate::operation::start_async_invoke::StartAsyncInvokeError,
          18  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          19  +
        >,
          20  +
    > {
          21  +
        let map_err = |err: ::aws_smithy_runtime_api::client::result::SdkError<
          22  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
          23  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          24  +
        >| {
          25  +
            err.map_service_error(|err| {
          26  +
                err.downcast::<crate::operation::start_async_invoke::StartAsyncInvokeError>()
          27  +
                    .expect("correct error type")
          28  +
            })
          29  +
        };
          30  +
        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
          31  +
            .await
          32  +
            .map_err(map_err)?;
          33  +
        let output = context.finalize().map_err(map_err)?;
          34  +
        ::std::result::Result::Ok(
          35  +
            output
          36  +
                .downcast::<crate::operation::start_async_invoke::StartAsyncInvokeOutput>()
          37  +
                .expect("correct output type"),
          38  +
        )
          39  +
    }
          40  +
          41  +
    pub(crate) async fn orchestrate_with_stop_point(
          42  +
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
          43  +
        input: crate::operation::start_async_invoke::StartAsyncInvokeInput,
          44  +
        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
          45  +
    ) -> ::std::result::Result<
          46  +
        ::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext,
          47  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          48  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
          49  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          50  +
        >,
          51  +
    > {
          52  +
        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
          53  +
        use ::tracing::Instrument;
          54  +
        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point("Bedrock Runtime", "StartAsyncInvoke", input, runtime_plugins, stop_point)
          55  +
            // Create a parent span for the entire operation. Includes a random, internal-only,
          56  +
            // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
          57  +
            .instrument(::tracing::debug_span!(
          58  +
                "Bedrock Runtime.StartAsyncInvoke",
          59  +
                "rpc.service" = "Bedrock Runtime",
          60  +
                "rpc.method" = "StartAsyncInvoke",
          61  +
                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
          62  +
                "rpc.system" = "aws-api",
          63  +
            ))
          64  +
            .await
          65  +
    }
          66  +
          67  +
    pub(crate) fn operation_runtime_plugins(
          68  +
        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
          69  +
        client_config: &crate::config::Config,
          70  +
        config_override: ::std::option::Option<crate::config::Builder>,
          71  +
    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
          72  +
        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
          73  +
        runtime_plugins = runtime_plugins.with_operation_plugin(crate::client_idempotency_token::IdempotencyTokenRuntimePlugin::new(
          74  +
            |token_provider, input| {
          75  +
                let input: &mut crate::operation::start_async_invoke::StartAsyncInvokeInput = input.downcast_mut().expect("correct type");
          76  +
                if input.client_request_token.is_none() {
          77  +
                    input.client_request_token = ::std::option::Option::Some(token_provider.make_idempotency_token());
          78  +
                }
          79  +
            },
          80  +
        ));
          81  +
        if let ::std::option::Option::Some(config_override) = config_override {
          82  +
            for plugin in config_override.runtime_plugins.iter().cloned() {
          83  +
                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
          84  +
            }
          85  +
            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
          86  +
                config_override,
          87  +
                client_config.config.clone(),
          88  +
                &client_config.runtime_components,
          89  +
            ));
          90  +
        }
          91  +
        runtime_plugins
          92  +
    }
          93  +
}
          94  +
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for StartAsyncInvoke {
          95  +
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
          96  +
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("StartAsyncInvoke");
          97  +
          98  +
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
          99  +
            StartAsyncInvokeRequestSerializer,
         100  +
        ));
         101  +
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
         102  +
            StartAsyncInvokeResponseDeserializer,
         103  +
        ));
         104  +
         105  +
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
         106  +
            crate::config::auth::Params::builder()
         107  +
                .operation_name("StartAsyncInvoke")
         108  +
                .build()
         109  +
                .expect("required fields set"),
         110  +
        ));
         111  +
         112  +
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
         113  +
            "StartAsyncInvoke",
         114  +
            "Bedrock Runtime",
         115  +
        ));
         116  +
        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
         117  +
        signing_options.double_uri_encode = true;
         118  +
        signing_options.content_sha256_header = false;
         119  +
        signing_options.normalize_uri_path = true;
         120  +
        signing_options.payload_override = None;
         121  +
         122  +
        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
         123  +
            signing_options,
         124  +
            ..::std::default::Default::default()
         125  +
        });
         126  +
         127  +
        ::std::option::Option::Some(cfg.freeze())
         128  +
    }
         129  +
         130  +
    fn runtime_components(
         131  +
        &self,
         132  +
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
         133  +
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
         134  +
        #[allow(unused_mut)]
         135  +
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("StartAsyncInvoke")
         136  +
            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
         137  +
            .with_interceptor(StartAsyncInvokeEndpointParamsInterceptor)
         138  +
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
         139  +
                crate::operation::start_async_invoke::StartAsyncInvokeError,
         140  +
            >::new())
         141  +
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
         142  +
                crate::operation::start_async_invoke::StartAsyncInvokeError,
         143  +
            >::new())
         144  +
            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
         145  +
                crate::operation::start_async_invoke::StartAsyncInvokeError,
         146  +
            >::new());
         147  +
         148  +
        ::std::borrow::Cow::Owned(rcb)
         149  +
    }
         150  +
}
         151  +
         152  +
#[derive(Debug)]
         153  +
struct StartAsyncInvokeResponseDeserializer;
         154  +
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for StartAsyncInvokeResponseDeserializer {
         155  +
    fn deserialize_nonstreaming(
         156  +
        &self,
         157  +
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         158  +
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
         159  +
        let (success, status) = (response.status().is_success(), response.status().as_u16());
         160  +
        let headers = response.headers();
         161  +
        let body = response.body().bytes().expect("body loaded");
         162  +
        #[allow(unused_mut)]
         163  +
        let mut force_error = false;
         164  +
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
         165  +
        let parse_result = if !success && status != 200 || force_error {
         166  +
            crate::protocol_serde::shape_start_async_invoke::de_start_async_invoke_http_error(status, headers, body)
         167  +
        } else {
         168  +
            crate::protocol_serde::shape_start_async_invoke::de_start_async_invoke_http_response(status, headers, body)
         169  +
        };
         170  +
        crate::protocol_serde::type_erase_result(parse_result)
         171  +
    }
         172  +
}
         173  +
#[derive(Debug)]
         174  +
struct StartAsyncInvokeRequestSerializer;
         175  +
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for StartAsyncInvokeRequestSerializer {
         176  +
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
         177  +
    fn serialize_input(
         178  +
        &self,
         179  +
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
         180  +
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         181  +
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
         182  +
        let input = input
         183  +
            .downcast::<crate::operation::start_async_invoke::StartAsyncInvokeInput>()
         184  +
            .expect("correct type");
         185  +
        let _header_serialization_settings = _cfg
         186  +
            .load::<crate::serialization_settings::HeaderSerializationSettings>()
         187  +
            .cloned()
         188  +
            .unwrap_or_default();
         189  +
        let mut request_builder = {
         190  +
            fn uri_base(
         191  +
                _input: &crate::operation::start_async_invoke::StartAsyncInvokeInput,
         192  +
                output: &mut ::std::string::String,
         193  +
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
         194  +
                use ::std::fmt::Write as _;
         195  +
                ::std::write!(output, "/async-invoke").expect("formatting should succeed");
         196  +
                ::std::result::Result::Ok(())
         197  +
            }
         198  +
            #[allow(clippy::unnecessary_wraps)]
         199  +
            fn update_http_builder(
         200  +
                input: &crate::operation::start_async_invoke::StartAsyncInvokeInput,
         201  +
                builder: ::http::request::Builder,
         202  +
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
         203  +
                let mut uri = ::std::string::String::new();
         204  +
                uri_base(input, &mut uri)?;
         205  +
                ::std::result::Result::Ok(builder.method("POST").uri(uri))
         206  +
            }
         207  +
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
         208  +
            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/json");
         209  +
            builder
         210  +
        };
         211  +
        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_start_async_invoke::ser_start_async_invoke_input(&input)?);
         212  +
        if let Some(content_length) = body.content_length() {
         213  +
            let content_length = content_length.to_string();
         214  +
            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
         215  +
        }
         216  +
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
         217  +
    }
         218  +
}
         219  +
#[derive(Debug)]
         220  +
struct StartAsyncInvokeEndpointParamsInterceptor;
         221  +
         222  +
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for StartAsyncInvokeEndpointParamsInterceptor {
         223  +
    fn name(&self) -> &'static str {
         224  +
        "StartAsyncInvokeEndpointParamsInterceptor"
         225  +
    }
         226  +
         227  +
    fn read_before_execution(
         228  +
        &self,
         229  +
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
         230  +
            '_,
         231  +
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
         232  +
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
         233  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
         234  +
        >,
         235  +
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         236  +
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
         237  +
        let _input = context
         238  +
            .input()
         239  +
            .downcast_ref::<StartAsyncInvokeInput>()
         240  +
            .ok_or("failed to downcast to StartAsyncInvokeInput")?;
         241  +
         242  +
        let params = crate::config::endpoint::Params::builder()
         243  +
            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
         244  +
            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
         245  +
            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
         246  +
            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
         247  +
            .build()
         248  +
            .map_err(|err| {
         249  +
                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
         250  +
            })?;
         251  +
        cfg.interceptor_state()
         252  +
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
         253  +
        ::std::result::Result::Ok(())
         254  +
    }
         255  +
}
         256  +
         257  +
// The get_* functions below are generated from JMESPath expressions in the
         258  +
// operationContextParams trait. They target the operation's input shape.
         259  +
         260  +
/// Error type for the `StartAsyncInvokeError` operation.
         261  +
#[non_exhaustive]
         262  +
#[derive(::std::fmt::Debug)]
         263  +
pub enum StartAsyncInvokeError {
         264  +
    /// <p>The request is denied because you do not have sufficient permissions to perform the requested action. For troubleshooting this error, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/troubleshooting-api-error-codes.html#ts-access-denied">AccessDeniedException</a> in the Amazon Bedrock User Guide</p>
         265  +
    AccessDeniedException(crate::types::error::AccessDeniedException),
         266  +
    /// <p>Error occurred because of a conflict while performing an operation.</p>
         267  +
    ConflictException(crate::types::error::ConflictException),
         268  +
    /// <p>An internal server error occurred. For troubleshooting this error, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/troubleshooting-api-error-codes.html#ts-internal-failure">InternalFailure</a> in the Amazon Bedrock User Guide</p>
         269  +
    InternalServerException(crate::types::error::InternalServerException),
         270  +
    /// <p>The specified resource ARN was not found. For troubleshooting this error, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/troubleshooting-api-error-codes.html#ts-resource-not-found">ResourceNotFound</a> in the Amazon Bedrock User Guide</p>
         271  +
    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
         272  +
    /// <p>Your request exceeds the service quota for your account. You can view your quotas at <a href="https://docs.aws.amazon.com/servicequotas/latest/userguide/gs-request-quota.html">Viewing service quotas</a>. You can resubmit your request later.</p>
         273  +
    ServiceQuotaExceededException(crate::types::error::ServiceQuotaExceededException),
         274  +
    /// <p>The service isn't currently available. For troubleshooting this error, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/troubleshooting-api-error-codes.html#ts-service-unavailable">ServiceUnavailable</a> in the Amazon Bedrock User Guide</p>
         275  +
    ServiceUnavailableException(crate::types::error::ServiceUnavailableException),
         276  +
    /// <p>Your request was denied due to exceeding the account quotas for <i>Amazon Bedrock</i>. For troubleshooting this error, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/troubleshooting-api-error-codes.html#ts-throttling-exception">ThrottlingException</a> in the Amazon Bedrock User Guide</p>
         277  +
    ThrottlingException(crate::types::error::ThrottlingException),
         278  +
    /// <p>The input fails to satisfy the constraints specified by <i>Amazon Bedrock</i>. For troubleshooting this error, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/troubleshooting-api-error-codes.html#ts-validation-error">ValidationError</a> in the Amazon Bedrock User Guide</p>
         279  +
    ValidationException(crate::types::error::ValidationException),
         280  +
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
         281  +
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
         282  +
    variable wildcard pattern and check `.code()`:
         283  +
     \
         284  +
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
         285  +
     \
         286  +
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-StartAsyncInvokeError) for what information is available for the error.")]
         287  +
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         288  +
}
         289  +
impl StartAsyncInvokeError {
         290  +
    /// Creates the `StartAsyncInvokeError::Unhandled` variant from any error type.
         291  +
    pub fn unhandled(
         292  +
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
         293  +
    ) -> Self {
         294  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         295  +
            source: err.into(),
         296  +
            meta: ::std::default::Default::default(),
         297  +
        })
         298  +
    }
         299  +
         300  +
    /// Creates the `StartAsyncInvokeError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
         301  +
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
         302  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         303  +
            source: err.clone().into(),
         304  +
            meta: err,
         305  +
        })
         306  +
    }
         307  +
    ///
         308  +
    /// Returns error metadata, which includes the error code, message,
         309  +
    /// request ID, and potentially additional information.
         310  +
    ///
         311  +
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         312  +
        match self {
         313  +
            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         314  +
            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         315  +
            Self::InternalServerException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         316  +
            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         317  +
            Self::ServiceQuotaExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         318  +
            Self::ServiceUnavailableException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         319  +
            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         320  +
            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         321  +
            Self::Unhandled(e) => &e.meta,
         322  +
        }
         323  +
    }
         324  +
    /// Returns `true` if the error kind is `StartAsyncInvokeError::AccessDeniedException`.
         325  +
    pub fn is_access_denied_exception(&self) -> bool {
         326  +
        matches!(self, Self::AccessDeniedException(_))
         327  +
    }
         328  +
    /// Returns `true` if the error kind is `StartAsyncInvokeError::ConflictException`.
         329  +
    pub fn is_conflict_exception(&self) -> bool {
         330  +
        matches!(self, Self::ConflictException(_))
         331  +
    }
         332  +
    /// Returns `true` if the error kind is `StartAsyncInvokeError::InternalServerException`.
         333  +
    pub fn is_internal_server_exception(&self) -> bool {
         334  +
        matches!(self, Self::InternalServerException(_))
         335  +
    }
         336  +
    /// Returns `true` if the error kind is `StartAsyncInvokeError::ResourceNotFoundException`.
         337  +
    pub fn is_resource_not_found_exception(&self) -> bool {
         338  +
        matches!(self, Self::ResourceNotFoundException(_))
         339  +
    }
         340  +
    /// Returns `true` if the error kind is `StartAsyncInvokeError::ServiceQuotaExceededException`.
         341  +
    pub fn is_service_quota_exceeded_exception(&self) -> bool {
         342  +
        matches!(self, Self::ServiceQuotaExceededException(_))
         343  +
    }
         344  +
    /// Returns `true` if the error kind is `StartAsyncInvokeError::ServiceUnavailableException`.
         345  +
    pub fn is_service_unavailable_exception(&self) -> bool {
         346  +
        matches!(self, Self::ServiceUnavailableException(_))
         347  +
    }
         348  +
    /// Returns `true` if the error kind is `StartAsyncInvokeError::ThrottlingException`.
         349  +
    pub fn is_throttling_exception(&self) -> bool {
         350  +
        matches!(self, Self::ThrottlingException(_))
         351  +
    }
         352  +
    /// Returns `true` if the error kind is `StartAsyncInvokeError::ValidationException`.
         353  +
    pub fn is_validation_exception(&self) -> bool {
         354  +
        matches!(self, Self::ValidationException(_))
         355  +
    }
         356  +
}
         357  +
impl ::std::error::Error for StartAsyncInvokeError {
         358  +
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         359  +
        match self {
         360  +
            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
         361  +
            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
         362  +
            Self::InternalServerException(_inner) => ::std::option::Option::Some(_inner),
         363  +
            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
         364  +
            Self::ServiceQuotaExceededException(_inner) => ::std::option::Option::Some(_inner),
         365  +
            Self::ServiceUnavailableException(_inner) => ::std::option::Option::Some(_inner),
         366  +
            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
         367  +
            Self::ValidationException(_inner) => ::std::option::Option::Some(_inner),
         368  +
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         369  +
        }
         370  +
    }
         371  +
}
         372  +
impl ::std::fmt::Display for StartAsyncInvokeError {
         373  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         374  +
        match self {
         375  +
            Self::AccessDeniedException(_inner) => _inner.fmt(f),
         376  +
            Self::ConflictException(_inner) => _inner.fmt(f),
         377  +
            Self::InternalServerException(_inner) => _inner.fmt(f),
         378  +
            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
         379  +
            Self::ServiceQuotaExceededException(_inner) => _inner.fmt(f),
         380  +
            Self::ServiceUnavailableException(_inner) => _inner.fmt(f),
         381  +
            Self::ThrottlingException(_inner) => _inner.fmt(f),
         382  +
            Self::ValidationException(_inner) => _inner.fmt(f),
         383  +
            Self::Unhandled(_inner) => {
         384  +
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
         385  +
                    write!(f, "unhandled error ({code})")
         386  +
                } else {
         387  +
                    f.write_str("unhandled error")
         388  +
                }
         389  +
            }
         390  +
        }
         391  +
    }
         392  +
}
         393  +
impl ::aws_smithy_types::retry::ProvideErrorKind for StartAsyncInvokeError {
         394  +
    fn code(&self) -> ::std::option::Option<&str> {
         395  +
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         396  +
    }
         397  +
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         398  +
        ::std::option::Option::None
         399  +
    }
         400  +
}
         401  +
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for StartAsyncInvokeError {
         402  +
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         403  +
        match self {
         404  +
            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         405  +
            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         406  +
            Self::InternalServerException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         407  +
            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         408  +
            Self::ServiceQuotaExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         409  +
            Self::ServiceUnavailableException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         410  +
            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         411  +
            Self::ValidationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         412  +
            Self::Unhandled(_inner) => &_inner.meta,
         413  +
        }
         414  +
    }
         415  +
}
         416  +
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for StartAsyncInvokeError {
         417  +
    fn create_unhandled_error(
         418  +
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
         419  +
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
         420  +
    ) -> Self {
         421  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         422  +
            source,
         423  +
            meta: meta.unwrap_or_default(),
         424  +
        })
         425  +
    }
         426  +
}
         427  +
impl ::aws_types::request_id::RequestId for crate::operation::start_async_invoke::StartAsyncInvokeError {
         428  +
    fn request_id(&self) -> Option<&str> {
         429  +
        self.meta().request_id()
         430  +
    }
         431  +
}
         432  +
         433  +
pub use crate::operation::start_async_invoke::_start_async_invoke_output::StartAsyncInvokeOutput;
         434  +
         435  +
pub use crate::operation::start_async_invoke::_start_async_invoke_input::StartAsyncInvokeInput;
         436  +
         437  +
mod _start_async_invoke_input;
         438  +
         439  +
mod _start_async_invoke_output;
         440  +
         441  +
/// Builders
         442  +
pub mod builders;

tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/src/operation/start_async_invoke/_start_async_invoke_input.rs

@@ -0,1 +0,172 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
#[allow(missing_docs)] // documentation missing in model
           3  +
#[non_exhaustive]
           4  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
           5  +
pub struct StartAsyncInvokeInput {
           6  +
    /// <p>Specify idempotency token to ensure that requests are not duplicated.</p>
           7  +
    pub client_request_token: ::std::option::Option<::std::string::String>,
           8  +
    /// <p>The model to invoke.</p>
           9  +
    pub model_id: ::std::option::Option<::std::string::String>,
          10  +
    /// <p>Input to send to the model.</p>
          11  +
    pub model_input: ::std::option::Option<::aws_smithy_types::Document>,
          12  +
    /// <p>Where to store the output.</p>
          13  +
    pub output_data_config: ::std::option::Option<crate::types::AsyncInvokeOutputDataConfig>,
          14  +
    /// <p>Tags to apply to the invocation.</p>
          15  +
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
          16  +
}
          17  +
impl StartAsyncInvokeInput {
          18  +
    /// <p>Specify idempotency token to ensure that requests are not duplicated.</p>
          19  +
    pub fn client_request_token(&self) -> ::std::option::Option<&str> {
          20  +
        self.client_request_token.as_deref()
          21  +
    }
          22  +
    /// <p>The model to invoke.</p>
          23  +
    pub fn model_id(&self) -> ::std::option::Option<&str> {
          24  +
        self.model_id.as_deref()
          25  +
    }
          26  +
    /// <p>Input to send to the model.</p>
          27  +
    pub fn model_input(&self) -> ::std::option::Option<&::aws_smithy_types::Document> {
          28  +
        self.model_input.as_ref()
          29  +
    }
          30  +
    /// <p>Where to store the output.</p>
          31  +
    pub fn output_data_config(&self) -> ::std::option::Option<&crate::types::AsyncInvokeOutputDataConfig> {
          32  +
        self.output_data_config.as_ref()
          33  +
    }
          34  +
    /// <p>Tags to apply to the invocation.</p>
          35  +
    ///
          36  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
          37  +
    pub fn tags(&self) -> &[crate::types::Tag] {
          38  +
        self.tags.as_deref().unwrap_or_default()
          39  +
    }
          40  +
}
          41  +
impl ::std::fmt::Debug for StartAsyncInvokeInput {
          42  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
          43  +
        let mut formatter = f.debug_struct("StartAsyncInvokeInput");
          44  +
        formatter.field("client_request_token", &self.client_request_token);
          45  +
        formatter.field("model_id", &self.model_id);
          46  +
        formatter.field("model_input", &"*** Sensitive Data Redacted ***");
          47  +
        formatter.field("output_data_config", &self.output_data_config);
          48  +
        formatter.field("tags", &self.tags);
          49  +
        formatter.finish()
          50  +
    }
          51  +
}
          52  +
impl StartAsyncInvokeInput {
          53  +
    /// Creates a new builder-style object to manufacture [`StartAsyncInvokeInput`](crate::operation::start_async_invoke::StartAsyncInvokeInput).
          54  +
    pub fn builder() -> crate::operation::start_async_invoke::builders::StartAsyncInvokeInputBuilder {
          55  +
        crate::operation::start_async_invoke::builders::StartAsyncInvokeInputBuilder::default()
          56  +
    }
          57  +
}
          58  +
          59  +
/// A builder for [`StartAsyncInvokeInput`](crate::operation::start_async_invoke::StartAsyncInvokeInput).
          60  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
          61  +
#[non_exhaustive]
          62  +
pub struct StartAsyncInvokeInputBuilder {
          63  +
    pub(crate) client_request_token: ::std::option::Option<::std::string::String>,
          64  +
    pub(crate) model_id: ::std::option::Option<::std::string::String>,
          65  +
    pub(crate) model_input: ::std::option::Option<::aws_smithy_types::Document>,
          66  +
    pub(crate) output_data_config: ::std::option::Option<crate::types::AsyncInvokeOutputDataConfig>,
          67  +
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
          68  +
}
          69  +
impl StartAsyncInvokeInputBuilder {
          70  +
    /// <p>Specify idempotency token to ensure that requests are not duplicated.</p>
          71  +
    pub fn client_request_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          72  +
        self.client_request_token = ::std::option::Option::Some(input.into());
          73  +
        self
          74  +
    }
          75  +
    /// <p>Specify idempotency token to ensure that requests are not duplicated.</p>
          76  +
    pub fn set_client_request_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          77  +
        self.client_request_token = input;
          78  +
        self
          79  +
    }
          80  +
    /// <p>Specify idempotency token to ensure that requests are not duplicated.</p>
          81  +
    pub fn get_client_request_token(&self) -> &::std::option::Option<::std::string::String> {
          82  +
        &self.client_request_token
          83  +
    }
          84  +
    /// <p>The model to invoke.</p>
          85  +
    /// This field is required.
          86  +
    pub fn model_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          87  +
        self.model_id = ::std::option::Option::Some(input.into());
          88  +
        self
          89  +
    }
          90  +
    /// <p>The model to invoke.</p>
          91  +
    pub fn set_model_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          92  +
        self.model_id = input;
          93  +
        self
          94  +
    }
          95  +
    /// <p>The model to invoke.</p>
          96  +
    pub fn get_model_id(&self) -> &::std::option::Option<::std::string::String> {
          97  +
        &self.model_id
          98  +
    }
          99  +
    /// <p>Input to send to the model.</p>
         100  +
    /// This field is required.
         101  +
    pub fn model_input(mut self, input: ::aws_smithy_types::Document) -> Self {
         102  +
        self.model_input = ::std::option::Option::Some(input);
         103  +
        self
         104  +
    }
         105  +
    /// <p>Input to send to the model.</p>
         106  +
    pub fn set_model_input(mut self, input: ::std::option::Option<::aws_smithy_types::Document>) -> Self {
         107  +
        self.model_input = input;
         108  +
        self
         109  +
    }
         110  +
    /// <p>Input to send to the model.</p>
         111  +
    pub fn get_model_input(&self) -> &::std::option::Option<::aws_smithy_types::Document> {
         112  +
        &self.model_input
         113  +
    }
         114  +
    /// <p>Where to store the output.</p>
         115  +
    /// This field is required.
         116  +
    pub fn output_data_config(mut self, input: crate::types::AsyncInvokeOutputDataConfig) -> Self {
         117  +
        self.output_data_config = ::std::option::Option::Some(input);
         118  +
        self
         119  +
    }
         120  +
    /// <p>Where to store the output.</p>
         121  +
    pub fn set_output_data_config(mut self, input: ::std::option::Option<crate::types::AsyncInvokeOutputDataConfig>) -> Self {
         122  +
        self.output_data_config = input;
         123  +
        self
         124  +
    }
         125  +
    /// <p>Where to store the output.</p>
         126  +
    pub fn get_output_data_config(&self) -> &::std::option::Option<crate::types::AsyncInvokeOutputDataConfig> {
         127  +
        &self.output_data_config
         128  +
    }
         129  +
    /// Appends an item to `tags`.
         130  +
    ///
         131  +
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
         132  +
    ///
         133  +
    /// <p>Tags to apply to the invocation.</p>
         134  +
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
         135  +
        let mut v = self.tags.unwrap_or_default();
         136  +
        v.push(input);
         137  +
        self.tags = ::std::option::Option::Some(v);
         138  +
        self
         139  +
    }
         140  +
    /// <p>Tags to apply to the invocation.</p>
         141  +
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
         142  +
        self.tags = input;
         143  +
        self
         144  +
    }
         145  +
    /// <p>Tags to apply to the invocation.</p>
         146  +
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
         147  +
        &self.tags
         148  +
    }
         149  +
    /// Consumes the builder and constructs a [`StartAsyncInvokeInput`](crate::operation::start_async_invoke::StartAsyncInvokeInput).
         150  +
    pub fn build(
         151  +
        self,
         152  +
    ) -> ::std::result::Result<crate::operation::start_async_invoke::StartAsyncInvokeInput, ::aws_smithy_types::error::operation::BuildError> {
         153  +
        ::std::result::Result::Ok(crate::operation::start_async_invoke::StartAsyncInvokeInput {
         154  +
            client_request_token: self.client_request_token,
         155  +
            model_id: self.model_id,
         156  +
            model_input: self.model_input,
         157  +
            output_data_config: self.output_data_config,
         158  +
            tags: self.tags,
         159  +
        })
         160  +
    }
         161  +
}
         162  +
impl ::std::fmt::Debug for StartAsyncInvokeInputBuilder {
         163  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         164  +
        let mut formatter = f.debug_struct("StartAsyncInvokeInputBuilder");
         165  +
        formatter.field("client_request_token", &self.client_request_token);
         166  +
        formatter.field("model_id", &self.model_id);
         167  +
        formatter.field("model_input", &"*** Sensitive Data Redacted ***");
         168  +
        formatter.field("output_data_config", &self.output_data_config);
         169  +
        formatter.field("tags", &self.tags);
         170  +
        formatter.finish()
         171  +
    }
         172  +
}

tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/src/operation/start_async_invoke/_start_async_invoke_output.rs

@@ -0,1 +0,77 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
#[allow(missing_docs)] // documentation missing in model
           3  +
#[non_exhaustive]
           4  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           5  +
pub struct StartAsyncInvokeOutput {
           6  +
    /// <p>The ARN of the invocation.</p>
           7  +
    pub invocation_arn: ::std::string::String,
           8  +
    _request_id: Option<String>,
           9  +
}
          10  +
impl StartAsyncInvokeOutput {
          11  +
    /// <p>The ARN of the invocation.</p>
          12  +
    pub fn invocation_arn(&self) -> &str {
          13  +
        use std::ops::Deref;
          14  +
        self.invocation_arn.deref()
          15  +
    }
          16  +
}
          17  +
impl ::aws_types::request_id::RequestId for StartAsyncInvokeOutput {
          18  +
    fn request_id(&self) -> Option<&str> {
          19  +
        self._request_id.as_deref()
          20  +
    }
          21  +
}
          22  +
impl StartAsyncInvokeOutput {
          23  +
    /// Creates a new builder-style object to manufacture [`StartAsyncInvokeOutput`](crate::operation::start_async_invoke::StartAsyncInvokeOutput).
          24  +
    pub fn builder() -> crate::operation::start_async_invoke::builders::StartAsyncInvokeOutputBuilder {
          25  +
        crate::operation::start_async_invoke::builders::StartAsyncInvokeOutputBuilder::default()
          26  +
    }
          27  +
}
          28  +
          29  +
/// A builder for [`StartAsyncInvokeOutput`](crate::operation::start_async_invoke::StartAsyncInvokeOutput).
          30  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          31  +
#[non_exhaustive]
          32  +
pub struct StartAsyncInvokeOutputBuilder {
          33  +
    pub(crate) invocation_arn: ::std::option::Option<::std::string::String>,
          34  +
    _request_id: Option<String>,
          35  +
}
          36  +
impl StartAsyncInvokeOutputBuilder {
          37  +
    /// <p>The ARN of the invocation.</p>
          38  +
    /// This field is required.
          39  +
    pub fn invocation_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          40  +
        self.invocation_arn = ::std::option::Option::Some(input.into());
          41  +
        self
          42  +
    }
          43  +
    /// <p>The ARN of the invocation.</p>
          44  +
    pub fn set_invocation_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          45  +
        self.invocation_arn = input;
          46  +
        self
          47  +
    }
          48  +
    /// <p>The ARN of the invocation.</p>
          49  +
    pub fn get_invocation_arn(&self) -> &::std::option::Option<::std::string::String> {
          50  +
        &self.invocation_arn
          51  +
    }
          52  +
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
          53  +
        self._request_id = Some(request_id.into());
          54  +
        self
          55  +
    }
          56  +
          57  +
    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
          58  +
        self._request_id = request_id;
          59  +
        self
          60  +
    }
          61  +
    /// Consumes the builder and constructs a [`StartAsyncInvokeOutput`](crate::operation::start_async_invoke::StartAsyncInvokeOutput).
          62  +
    /// This method will fail if any of the following fields are not set:
          63  +
    /// - [`invocation_arn`](crate::operation::start_async_invoke::builders::StartAsyncInvokeOutputBuilder::invocation_arn)
          64  +
    pub fn build(
          65  +
        self,
          66  +
    ) -> ::std::result::Result<crate::operation::start_async_invoke::StartAsyncInvokeOutput, ::aws_smithy_types::error::operation::BuildError> {
          67  +
        ::std::result::Result::Ok(crate::operation::start_async_invoke::StartAsyncInvokeOutput {
          68  +
            invocation_arn: self.invocation_arn.ok_or_else(|| {
          69  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
          70  +
                    "invocation_arn",
          71  +
                    "invocation_arn was not specified but it is required when building StartAsyncInvokeOutput",
          72  +
                )
          73  +
            })?,
          74  +
            _request_id: self._request_id,
          75  +
        })
          76  +
    }
          77  +
}