AWS SDK

AWS SDK

rev. aa190e630077955f0bc8f58dee6a16530c1e0578

Files changed:

tmp-codegen-diff/aws-sdk/sdk/ssm/src/operation/put_inventory/_put_inventory_input.rs

@@ -0,1 +0,205 @@
           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 PutInventoryInput {
           6  +
    /// <p>An managed node ID where you want to add or update inventory items.</p>
           7  +
    pub instance_id: ::std::option::Option<::std::string::String>,
           8  +
    /// <p>The inventory items that you want to add or update on managed nodes.</p>
           9  +
    pub items: ::std::option::Option<::std::vec::Vec<crate::types::InventoryItem>>,
          10  +
}
          11  +
impl PutInventoryInput {
          12  +
    /// <p>An managed node ID where you want to add or update inventory items.</p>
          13  +
    pub fn instance_id(&self) -> ::std::option::Option<&str> {
          14  +
        self.instance_id.as_deref()
          15  +
    }
          16  +
    /// <p>The inventory items that you want to add or update on managed nodes.</p>
          17  +
    ///
          18  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.items.is_none()`.
          19  +
    pub fn items(&self) -> &[crate::types::InventoryItem] {
          20  +
        self.items.as_deref().unwrap_or_default()
          21  +
    }
          22  +
}
          23  +
static PUTINVENTORYINPUT_MEMBER_INSTANCE_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          24  +
    ::aws_smithy_schema::ShapeId::from_parts(
          25  +
        "com.amazonaws.ssm.synthetic#PutInventoryInput$InstanceId",
          26  +
        "com.amazonaws.ssm.synthetic",
          27  +
        "PutInventoryInput",
          28  +
    ),
          29  +
    ::aws_smithy_schema::ShapeType::String,
          30  +
    "InstanceId",
          31  +
    0,
          32  +
);
          33  +
static PUTINVENTORYINPUT_MEMBER_ITEMS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          34  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InventoryItemList$member", "com.amazonaws.ssm", "InventoryItemList"),
          35  +
    ::aws_smithy_schema::ShapeType::Structure,
          36  +
    "member",
          37  +
    0,
          38  +
)
          39  +
.with_xml_name("Item");
          40  +
static PUTINVENTORYINPUT_MEMBER_ITEMS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          41  +
    ::aws_smithy_schema::ShapeId::from_parts(
          42  +
        "com.amazonaws.ssm.synthetic#PutInventoryInput$Items",
          43  +
        "com.amazonaws.ssm.synthetic",
          44  +
        "PutInventoryInput",
          45  +
    ),
          46  +
    ::aws_smithy_schema::ShapeType::List,
          47  +
    "Items",
          48  +
    1,
          49  +
)
          50  +
.with_list_member(&PUTINVENTORYINPUT_MEMBER_ITEMS_MEMBER);
          51  +
static PUTINVENTORYINPUT_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          52  +
    ::aws_smithy_schema::ShapeId::from_parts(
          53  +
        "com.amazonaws.ssm.synthetic#PutInventoryInput",
          54  +
        "com.amazonaws.ssm.synthetic",
          55  +
        "PutInventoryInput",
          56  +
    ),
          57  +
    ::aws_smithy_schema::ShapeType::Structure,
          58  +
    &[&PUTINVENTORYINPUT_MEMBER_INSTANCE_ID, &PUTINVENTORYINPUT_MEMBER_ITEMS],
          59  +
)
          60  +
.with_payload_hint(::aws_smithy_schema::PayloadHint::NoStructPayload)
          61  +
.with_original_name("PutInventoryRequest");
          62  +
impl PutInventoryInput {
          63  +
    /// The schema for this shape.
          64  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &PUTINVENTORYINPUT_SCHEMA;
          65  +
}
          66  +
impl ::aws_smithy_schema::serde::SerializableStruct for PutInventoryInput {
          67  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          68  +
    fn serialize_members(
          69  +
        &self,
          70  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          71  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          72  +
        if let Some(ref val) = self.instance_id {
          73  +
            ser.write_string(&PUTINVENTORYINPUT_MEMBER_INSTANCE_ID, val)?;
          74  +
        }
          75  +
        if let Some(ref val) = self.items {
          76  +
            ser.write_list(
          77  +
                &PUTINVENTORYINPUT_MEMBER_ITEMS,
          78  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
          79  +
                    for item in val {
          80  +
                        ser.write_struct(crate::types::InventoryItem::SCHEMA, item)?;
          81  +
                    }
          82  +
                    Ok(())
          83  +
                },
          84  +
            )?;
          85  +
        }
          86  +
        Ok(())
          87  +
    }
          88  +
}
          89  +
impl PutInventoryInput {
          90  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          91  +
    pub fn deserialize(
          92  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          93  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          94  +
        #[allow(unused_variables, unused_mut)]
          95  +
        let mut builder = Self::builder();
          96  +
        #[allow(
          97  +
            unused_variables,
          98  +
            unreachable_code,
          99  +
            clippy::single_match,
         100  +
            clippy::match_single_binding,
         101  +
            clippy::diverging_sub_expression
         102  +
        )]
         103  +
        deserializer.read_struct(&PUTINVENTORYINPUT_SCHEMA, &mut |member, deser| {
         104  +
            match member.member_index() {
         105  +
                Some(0) => {
         106  +
                    if deser.is_null() {
         107  +
                        deser.read_null()?;
         108  +
                    } else {
         109  +
                        builder.instance_id = Some(deser.read_string(member)?);
         110  +
                    }
         111  +
                }
         112  +
                Some(1) => {
         113  +
                    if deser.is_null() {
         114  +
                        deser.read_null()?;
         115  +
                    } else {
         116  +
                        builder.items = Some({
         117  +
                            let mut container = Vec::new();
         118  +
                            deser.read_list(member, &mut |deser| {
         119  +
                                container.push(crate::types::InventoryItem::deserialize(deser)?);
         120  +
                                Ok(())
         121  +
                            })?;
         122  +
                            container
         123  +
                        });
         124  +
                    }
         125  +
                }
         126  +
                _ => {}
         127  +
            }
         128  +
            Ok(())
         129  +
        })?;
         130  +
        builder.instance_id = builder.instance_id.or(Some(String::new()));
         131  +
        builder.items = builder.items.or(Some(Vec::new()));
         132  +
        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
         133  +
    }
         134  +
}
         135  +
impl PutInventoryInput {
         136  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         137  +
    pub fn deserialize_with_response(
         138  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         139  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         140  +
        _status: u16,
         141  +
        _body: &[u8],
         142  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         143  +
        Self::deserialize(deserializer)
         144  +
    }
         145  +
}
         146  +
impl PutInventoryInput {
         147  +
    /// Creates a new builder-style object to manufacture [`PutInventoryInput`](crate::operation::put_inventory::PutInventoryInput).
         148  +
    pub fn builder() -> crate::operation::put_inventory::builders::PutInventoryInputBuilder {
         149  +
        crate::operation::put_inventory::builders::PutInventoryInputBuilder::default()
         150  +
    }
         151  +
}
         152  +
         153  +
/// A builder for [`PutInventoryInput`](crate::operation::put_inventory::PutInventoryInput).
         154  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         155  +
#[non_exhaustive]
         156  +
pub struct PutInventoryInputBuilder {
         157  +
    pub(crate) instance_id: ::std::option::Option<::std::string::String>,
         158  +
    pub(crate) items: ::std::option::Option<::std::vec::Vec<crate::types::InventoryItem>>,
         159  +
}
         160  +
impl PutInventoryInputBuilder {
         161  +
    /// <p>An managed node ID where you want to add or update inventory items.</p>
         162  +
    /// This field is required.
         163  +
    pub fn instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         164  +
        self.instance_id = ::std::option::Option::Some(input.into());
         165  +
        self
         166  +
    }
         167  +
    /// <p>An managed node ID where you want to add or update inventory items.</p>
         168  +
    pub fn set_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         169  +
        self.instance_id = input;
         170  +
        self
         171  +
    }
         172  +
    /// <p>An managed node ID where you want to add or update inventory items.</p>
         173  +
    pub fn get_instance_id(&self) -> &::std::option::Option<::std::string::String> {
         174  +
        &self.instance_id
         175  +
    }
         176  +
    /// Appends an item to `items`.
         177  +
    ///
         178  +
    /// To override the contents of this collection use [`set_items`](Self::set_items).
         179  +
    ///
         180  +
    /// <p>The inventory items that you want to add or update on managed nodes.</p>
         181  +
    pub fn items(mut self, input: crate::types::InventoryItem) -> Self {
         182  +
        let mut v = self.items.unwrap_or_default();
         183  +
        v.push(input);
         184  +
        self.items = ::std::option::Option::Some(v);
         185  +
        self
         186  +
    }
         187  +
    /// <p>The inventory items that you want to add or update on managed nodes.</p>
         188  +
    pub fn set_items(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InventoryItem>>) -> Self {
         189  +
        self.items = input;
         190  +
        self
         191  +
    }
         192  +
    /// <p>The inventory items that you want to add or update on managed nodes.</p>
         193  +
    pub fn get_items(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InventoryItem>> {
         194  +
        &self.items
         195  +
    }
         196  +
    /// Consumes the builder and constructs a [`PutInventoryInput`](crate::operation::put_inventory::PutInventoryInput).
         197  +
    pub fn build(
         198  +
        self,
         199  +
    ) -> ::std::result::Result<crate::operation::put_inventory::PutInventoryInput, ::aws_smithy_types::error::operation::BuildError> {
         200  +
        ::std::result::Result::Ok(crate::operation::put_inventory::PutInventoryInput {
         201  +
            instance_id: self.instance_id,
         202  +
            items: self.items,
         203  +
        })
         204  +
    }
         205  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/operation/put_inventory/_put_inventory_output.rs

@@ -0,1 +0,183 @@
           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 PutInventoryOutput {
           6  +
    /// <p>Information about the request.</p>
           7  +
    pub message: ::std::option::Option<::std::string::String>,
           8  +
    _request_id: Option<String>,
           9  +
}
          10  +
impl PutInventoryOutput {
          11  +
    /// <p>Information about the request.</p>
          12  +
    pub fn message(&self) -> ::std::option::Option<&str> {
          13  +
        self.message.as_deref()
          14  +
    }
          15  +
}
          16  +
static PUTINVENTORYOUTPUT_MEMBER_MESSAGE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          17  +
    ::aws_smithy_schema::ShapeId::from_parts(
          18  +
        "com.amazonaws.ssm.synthetic#PutInventoryOutput$Message",
          19  +
        "com.amazonaws.ssm.synthetic",
          20  +
        "PutInventoryOutput",
          21  +
    ),
          22  +
    ::aws_smithy_schema::ShapeType::String,
          23  +
    "Message",
          24  +
    0,
          25  +
);
          26  +
static PUTINVENTORYOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          27  +
    ::aws_smithy_schema::ShapeId::from_parts("synthetic#request_id", "synthetic", "request_id"),
          28  +
    ::aws_smithy_schema::ShapeType::String,
          29  +
    "request_id",
          30  +
    1,
          31  +
)
          32  +
.with_http_header("x-amzn-requestid");
          33  +
static PUTINVENTORYOUTPUT_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          34  +
    ::aws_smithy_schema::ShapeId::from_parts(
          35  +
        "com.amazonaws.ssm.synthetic#PutInventoryOutput",
          36  +
        "com.amazonaws.ssm.synthetic",
          37  +
        "PutInventoryOutput",
          38  +
    ),
          39  +
    ::aws_smithy_schema::ShapeType::Structure,
          40  +
    &[&PUTINVENTORYOUTPUT_MEMBER_MESSAGE, &PUTINVENTORYOUTPUT_MEMBER__REQUEST_ID],
          41  +
)
          42  +
.with_original_name("PutInventoryResult");
          43  +
impl PutInventoryOutput {
          44  +
    /// The schema for this shape.
          45  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &PUTINVENTORYOUTPUT_SCHEMA;
          46  +
}
          47  +
impl ::aws_smithy_schema::serde::SerializableStruct for PutInventoryOutput {
          48  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          49  +
    fn serialize_members(
          50  +
        &self,
          51  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          52  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          53  +
        if let Some(ref val) = self.message {
          54  +
            ser.write_string(&PUTINVENTORYOUTPUT_MEMBER_MESSAGE, val)?;
          55  +
        }
          56  +
        Ok(())
          57  +
    }
          58  +
}
          59  +
impl PutInventoryOutput {
          60  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          61  +
    pub fn deserialize(
          62  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          63  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          64  +
        #[allow(unused_variables, unused_mut)]
          65  +
        let mut builder = Self::builder();
          66  +
        #[allow(
          67  +
            unused_variables,
          68  +
            unreachable_code,
          69  +
            clippy::single_match,
          70  +
            clippy::match_single_binding,
          71  +
            clippy::diverging_sub_expression
          72  +
        )]
          73  +
        deserializer.read_struct(&PUTINVENTORYOUTPUT_SCHEMA, &mut |member, deser| {
          74  +
            match member.member_index() {
          75  +
                Some(0) => {
          76  +
                    if deser.is_null() {
          77  +
                        deser.read_null()?;
          78  +
                    } else {
          79  +
                        builder.message = Some(deser.read_string(member)?);
          80  +
                    }
          81  +
                }
          82  +
                Some(1) => {
          83  +
                    builder._request_id = Some(deser.read_string(member)?);
          84  +
                }
          85  +
                _ => {}
          86  +
            }
          87  +
            Ok(())
          88  +
        })?;
          89  +
        Ok(builder.build())
          90  +
    }
          91  +
}
          92  +
impl PutInventoryOutput {
          93  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          94  +
    /// Header-bound members are read directly from headers, avoiding runtime
          95  +
    /// member iteration overhead. Body members are read via the deserializer.
          96  +
    pub fn deserialize_with_response(
          97  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          98  +
        headers: &::aws_smithy_runtime_api::http::Headers,
          99  +
        _status: u16,
         100  +
        _body: &[u8],
         101  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         102  +
        #[allow(unused_variables, unused_mut)]
         103  +
        let mut builder = Self::builder();
         104  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         105  +
            builder._request_id = Some(val.to_string());
         106  +
        }
         107  +
         108  +
        #[allow(
         109  +
            unused_variables,
         110  +
            unreachable_code,
         111  +
            clippy::single_match,
         112  +
            clippy::match_single_binding,
         113  +
            clippy::diverging_sub_expression
         114  +
        )]
         115  +
        deserializer.read_struct(&PUTINVENTORYOUTPUT_SCHEMA, &mut |member, deser| {
         116  +
            match member.member_index() {
         117  +
                Some(0) => {
         118  +
                    builder.message = Some(deser.read_string(member)?);
         119  +
                }
         120  +
                _ => {}
         121  +
            }
         122  +
            Ok(())
         123  +
        })?;
         124  +
        Ok(builder.build())
         125  +
    }
         126  +
}
         127  +
impl ::aws_types::request_id::RequestId for PutInventoryOutput {
         128  +
    fn request_id(&self) -> Option<&str> {
         129  +
        self._request_id.as_deref()
         130  +
    }
         131  +
}
         132  +
impl PutInventoryOutput {
         133  +
    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
         134  +
        self._request_id = request_id;
         135  +
        self
         136  +
    }
         137  +
}
         138  +
impl PutInventoryOutput {
         139  +
    /// Creates a new builder-style object to manufacture [`PutInventoryOutput`](crate::operation::put_inventory::PutInventoryOutput).
         140  +
    pub fn builder() -> crate::operation::put_inventory::builders::PutInventoryOutputBuilder {
         141  +
        crate::operation::put_inventory::builders::PutInventoryOutputBuilder::default()
         142  +
    }
         143  +
}
         144  +
         145  +
/// A builder for [`PutInventoryOutput`](crate::operation::put_inventory::PutInventoryOutput).
         146  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         147  +
#[non_exhaustive]
         148  +
pub struct PutInventoryOutputBuilder {
         149  +
    pub(crate) message: ::std::option::Option<::std::string::String>,
         150  +
    _request_id: Option<String>,
         151  +
}
         152  +
impl PutInventoryOutputBuilder {
         153  +
    /// <p>Information about the request.</p>
         154  +
    pub fn message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         155  +
        self.message = ::std::option::Option::Some(input.into());
         156  +
        self
         157  +
    }
         158  +
    /// <p>Information about the request.</p>
         159  +
    pub fn set_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         160  +
        self.message = input;
         161  +
        self
         162  +
    }
         163  +
    /// <p>Information about the request.</p>
         164  +
    pub fn get_message(&self) -> &::std::option::Option<::std::string::String> {
         165  +
        &self.message
         166  +
    }
         167  +
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
         168  +
        self._request_id = Some(request_id.into());
         169  +
        self
         170  +
    }
         171  +
         172  +
    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
         173  +
        self._request_id = request_id;
         174  +
        self
         175  +
    }
         176  +
    /// Consumes the builder and constructs a [`PutInventoryOutput`](crate::operation::put_inventory::PutInventoryOutput).
         177  +
    pub fn build(self) -> crate::operation::put_inventory::PutInventoryOutput {
         178  +
        crate::operation::put_inventory::PutInventoryOutput {
         179  +
            message: self.message,
         180  +
            _request_id: self._request_id,
         181  +
        }
         182  +
    }
         183  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/operation/put_inventory/builders.rs

@@ -0,1 +0,144 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub use crate::operation::put_inventory::_put_inventory_input::PutInventoryInputBuilder;
           3  +
           4  +
pub use crate::operation::put_inventory::_put_inventory_output::PutInventoryOutputBuilder;
           5  +
           6  +
impl crate::operation::put_inventory::builders::PutInventoryInputBuilder {
           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::put_inventory::PutInventoryOutput,
          13  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          14  +
            crate::operation::put_inventory::PutInventoryError,
          15  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          16  +
        >,
          17  +
    > {
          18  +
        let mut fluent_builder = client.put_inventory();
          19  +
        fluent_builder.inner = self;
          20  +
        fluent_builder.send().await
          21  +
    }
          22  +
}
          23  +
/// Fluent builder constructing a request to `PutInventory`.
          24  +
///
          25  +
/// <p>Bulk update custom inventory items on one or more managed nodes. The request adds an inventory item, if it doesn't already exist, or updates an inventory item, if it does exist.</p>
          26  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          27  +
pub struct PutInventoryFluentBuilder {
          28  +
    handle: ::std::sync::Arc<crate::client::Handle>,
          29  +
    inner: crate::operation::put_inventory::builders::PutInventoryInputBuilder,
          30  +
    config_override: ::std::option::Option<crate::config::Builder>,
          31  +
}
          32  +
impl
          33  +
    crate::client::customize::internal::CustomizableSend<
          34  +
        crate::operation::put_inventory::PutInventoryOutput,
          35  +
        crate::operation::put_inventory::PutInventoryError,
          36  +
    > for PutInventoryFluentBuilder
          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::put_inventory::PutInventoryOutput,
          44  +
            crate::operation::put_inventory::PutInventoryError,
          45  +
        >,
          46  +
    > {
          47  +
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
          48  +
    }
          49  +
}
          50  +
impl PutInventoryFluentBuilder {
          51  +
    /// Creates a new `PutInventoryFluentBuilder`.
          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 PutInventory as a reference.
          60  +
    pub fn as_input(&self) -> &crate::operation::put_inventory::builders::PutInventoryInputBuilder {
          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::put_inventory::PutInventoryOutput,
          75  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          76  +
            crate::operation::put_inventory::PutInventoryError,
          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::put_inventory::PutInventory::operation_runtime_plugins(
          85  +
            self.handle.runtime_plugins.clone(),
          86  +
            &self.handle.conf,
          87  +
            self.config_override,
          88  +
        );
          89  +
        crate::operation::put_inventory::PutInventory::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::put_inventory::PutInventoryOutput,
          97  +
        crate::operation::put_inventory::PutInventoryError,
          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  +
    /// <p>An managed node ID where you want to add or update inventory items.</p>
         112  +
    pub fn instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         113  +
        self.inner = self.inner.instance_id(input.into());
         114  +
        self
         115  +
    }
         116  +
    /// <p>An managed node ID where you want to add or update inventory items.</p>
         117  +
    pub fn set_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         118  +
        self.inner = self.inner.set_instance_id(input);
         119  +
        self
         120  +
    }
         121  +
    /// <p>An managed node ID where you want to add or update inventory items.</p>
         122  +
    pub fn get_instance_id(&self) -> &::std::option::Option<::std::string::String> {
         123  +
        self.inner.get_instance_id()
         124  +
    }
         125  +
    ///
         126  +
    /// Appends an item to `Items`.
         127  +
    ///
         128  +
    /// To override the contents of this collection use [`set_items`](Self::set_items).
         129  +
    ///
         130  +
    /// <p>The inventory items that you want to add or update on managed nodes.</p>
         131  +
    pub fn items(mut self, input: crate::types::InventoryItem) -> Self {
         132  +
        self.inner = self.inner.items(input);
         133  +
        self
         134  +
    }
         135  +
    /// <p>The inventory items that you want to add or update on managed nodes.</p>
         136  +
    pub fn set_items(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InventoryItem>>) -> Self {
         137  +
        self.inner = self.inner.set_items(input);
         138  +
        self
         139  +
    }
         140  +
    /// <p>The inventory items that you want to add or update on managed nodes.</p>
         141  +
    pub fn get_items(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InventoryItem>> {
         142  +
        self.inner.get_items()
         143  +
    }
         144  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/operation/put_parameter.rs

@@ -0,1 +0,1108 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/// Orchestration and serialization glue logic for `PutParameter`.
           3  +
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
           4  +
#[non_exhaustive]
           5  +
pub struct PutParameter;
           6  +
impl PutParameter {
           7  +
    /// Creates a new `PutParameter`
           8  +
    pub fn new() -> Self {
           9  +
        Self
          10  +
    }
          11  +
    /// The schema for this operation's input shape.
          12  +
    pub const INPUT_SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = crate::operation::put_parameter::PutParameterInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = crate::operation::put_parameter::PutParameterOutput::SCHEMA;
          15  +
    pub(crate) async fn orchestrate(
          16  +
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
          17  +
        input: crate::operation::put_parameter::PutParameterInput,
          18  +
    ) -> ::std::result::Result<
          19  +
        crate::operation::put_parameter::PutParameterOutput,
          20  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          21  +
            crate::operation::put_parameter::PutParameterError,
          22  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          23  +
        >,
          24  +
    > {
          25  +
        let map_err = |err: ::aws_smithy_runtime_api::client::result::SdkError<
          26  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
          27  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          28  +
        >| {
          29  +
            err.map_service_error(|err| {
          30  +
                err.downcast::<crate::operation::put_parameter::PutParameterError>()
          31  +
                    .expect("correct error type")
          32  +
            })
          33  +
        };
          34  +
        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
          35  +
            .await
          36  +
            .map_err(map_err)?;
          37  +
        let output = context.finalize().map_err(map_err)?;
          38  +
        ::std::result::Result::Ok(
          39  +
            output
          40  +
                .downcast::<crate::operation::put_parameter::PutParameterOutput>()
          41  +
                .expect("correct output type"),
          42  +
        )
          43  +
    }
          44  +
          45  +
    pub(crate) async fn orchestrate_with_stop_point(
          46  +
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
          47  +
        input: crate::operation::put_parameter::PutParameterInput,
          48  +
        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
          49  +
    ) -> ::std::result::Result<
          50  +
        ::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext,
          51  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          52  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
          53  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          54  +
        >,
          55  +
    > {
          56  +
        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
          57  +
        use ::tracing::Instrument;
          58  +
        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point("SSM", "PutParameter", input, runtime_plugins, stop_point)
          59  +
            // Create a parent span for the entire operation. Includes a random, internal-only,
          60  +
            // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
          61  +
            .instrument(::tracing::debug_span!(
          62  +
                "SSM.PutParameter",
          63  +
                "rpc.service" = "SSM",
          64  +
                "rpc.method" = "PutParameter",
          65  +
                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
          66  +
                "rpc.system" = "aws-api",
          67  +
            ))
          68  +
            .await
          69  +
    }
          70  +
          71  +
    pub(crate) fn operation_runtime_plugins(
          72  +
        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
          73  +
        client_config: &crate::config::Config,
          74  +
        config_override: ::std::option::Option<crate::config::Builder>,
          75  +
    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
          76  +
        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
          77  +
          78  +
        if let ::std::option::Option::Some(config_override) = config_override {
          79  +
            for plugin in config_override.runtime_plugins.iter().cloned() {
          80  +
                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
          81  +
            }
          82  +
            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
          83  +
                config_override,
          84  +
                client_config.config.clone(),
          85  +
                &client_config.runtime_components,
          86  +
            ));
          87  +
        }
          88  +
        runtime_plugins
          89  +
    }
          90  +
}
          91  +
/// Per-operation error registry. Contains an entry for every modeled
          92  +
/// error this operation can throw.
          93  +
///
          94  +
/// Used by the schema-serde error path as the operation-scoped lookup
          95  +
/// for registry-backed error reification: an error code that does not
          96  +
/// match one of the operation's modeled errors directly is resolved
          97  +
/// against this registry first, then widened to the service-wide error
          98  +
/// registry.
          99  +
pub(crate) mod error_registry {
         100  +
    pub(crate) static REGISTRY: ::std::sync::LazyLock<::aws_smithy_schema::registry::TypeRegistry> = ::std::sync::LazyLock::new(|| {
         101  +
        ::aws_smithy_schema::registry::TypeRegistry::builder()
         102  +
                            .insert_error_shape(
         103  +
                        crate::types::error::HierarchyLevelLimitExceededException::SCHEMA,
         104  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         105  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::HierarchyLevelLimitExceededException::deserialize(d)?))
         106  +
                        },
         107  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         108  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::HierarchyLevelLimitExceededException::deserialize(d)?))
         109  +
                        },
         110  +
                    )
         111  +
.insert_error_shape(
         112  +
                        crate::types::error::HierarchyTypeMismatchException::SCHEMA,
         113  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         114  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::HierarchyTypeMismatchException::deserialize(d)?))
         115  +
                        },
         116  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         117  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::HierarchyTypeMismatchException::deserialize(d)?))
         118  +
                        },
         119  +
                    )
         120  +
.insert_error_shape(
         121  +
                        crate::types::error::IncompatiblePolicyException::SCHEMA,
         122  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         123  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::IncompatiblePolicyException::deserialize(d)?))
         124  +
                        },
         125  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         126  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::IncompatiblePolicyException::deserialize(d)?))
         127  +
                        },
         128  +
                    )
         129  +
.insert_error_shape(
         130  +
                        crate::types::error::InternalServerError::SCHEMA,
         131  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         132  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::InternalServerError::deserialize(d)?))
         133  +
                        },
         134  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         135  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::InternalServerError::deserialize(d)?))
         136  +
                        },
         137  +
                    )
         138  +
.insert_error_shape(
         139  +
                        crate::types::error::InvalidAllowedPatternException::SCHEMA,
         140  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         141  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::InvalidAllowedPatternException::deserialize(d)?))
         142  +
                        },
         143  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         144  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::InvalidAllowedPatternException::deserialize(d)?))
         145  +
                        },
         146  +
                    )
         147  +
.insert_error_shape(
         148  +
                        crate::types::error::InvalidKeyId::SCHEMA,
         149  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         150  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::InvalidKeyId::deserialize(d)?))
         151  +
                        },
         152  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         153  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::InvalidKeyId::deserialize(d)?))
         154  +
                        },
         155  +
                    )
         156  +
.insert_error_shape(
         157  +
                        crate::types::error::InvalidPolicyAttributeException::SCHEMA,
         158  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         159  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::InvalidPolicyAttributeException::deserialize(d)?))
         160  +
                        },
         161  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         162  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::InvalidPolicyAttributeException::deserialize(d)?))
         163  +
                        },
         164  +
                    )
         165  +
.insert_error_shape(
         166  +
                        crate::types::error::InvalidPolicyTypeException::SCHEMA,
         167  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         168  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::InvalidPolicyTypeException::deserialize(d)?))
         169  +
                        },
         170  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         171  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::InvalidPolicyTypeException::deserialize(d)?))
         172  +
                        },
         173  +
                    )
         174  +
.insert_error_shape(
         175  +
                        crate::types::error::ParameterAlreadyExists::SCHEMA,
         176  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         177  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::ParameterAlreadyExists::deserialize(d)?))
         178  +
                        },
         179  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         180  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::ParameterAlreadyExists::deserialize(d)?))
         181  +
                        },
         182  +
                    )
         183  +
.insert_error_shape(
         184  +
                        crate::types::error::ParameterLimitExceeded::SCHEMA,
         185  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         186  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::ParameterLimitExceeded::deserialize(d)?))
         187  +
                        },
         188  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         189  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::ParameterLimitExceeded::deserialize(d)?))
         190  +
                        },
         191  +
                    )
         192  +
.insert_error_shape(
         193  +
                        crate::types::error::ParameterMaxVersionLimitExceeded::SCHEMA,
         194  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         195  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::ParameterMaxVersionLimitExceeded::deserialize(d)?))
         196  +
                        },
         197  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         198  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::ParameterMaxVersionLimitExceeded::deserialize(d)?))
         199  +
                        },
         200  +
                    )
         201  +
.insert_error_shape(
         202  +
                        crate::types::error::ParameterPatternMismatchException::SCHEMA,
         203  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         204  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::ParameterPatternMismatchException::deserialize(d)?))
         205  +
                        },
         206  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         207  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::ParameterPatternMismatchException::deserialize(d)?))
         208  +
                        },
         209  +
                    )
         210  +
.insert_error_shape(
         211  +
                        crate::types::error::PoliciesLimitExceededException::SCHEMA,
         212  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         213  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::PoliciesLimitExceededException::deserialize(d)?))
         214  +
                        },
         215  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         216  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::PoliciesLimitExceededException::deserialize(d)?))
         217  +
                        },
         218  +
                    )
         219  +
.insert_error_shape(
         220  +
                        crate::types::error::TooManyUpdates::SCHEMA,
         221  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         222  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::TooManyUpdates::deserialize(d)?))
         223  +
                        },
         224  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         225  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::TooManyUpdates::deserialize(d)?))
         226  +
                        },
         227  +
                    )
         228  +
.insert_error_shape(
         229  +
                        crate::types::error::UnsupportedParameterType::SCHEMA,
         230  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::aws_smithy_types::type_erasure::TypeErasedBox, ::aws_smithy_schema::serde::SerdeError> {
         231  +
                            ::std::result::Result::Ok(::aws_smithy_types::type_erasure::TypeErasedBox::new(crate::types::error::UnsupportedParameterType::deserialize(d)?))
         232  +
                        },
         233  +
                        |d: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer| -> ::std::result::Result<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync>, ::aws_smithy_schema::serde::SerdeError> {
         234  +
                            ::std::result::Result::Ok(::std::boxed::Box::new(crate::types::error::UnsupportedParameterType::deserialize(d)?))
         235  +
                        },
         236  +
                    )
         237  +
                            .build()
         238  +
    });
         239  +
}
         240  +
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for PutParameter {
         241  +
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
         242  +
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("PutParameter");
         243  +
         244  +
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
         245  +
            PutParameterRequestSerializer,
         246  +
        ));
         247  +
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
         248  +
            PutParameterResponseDeserializer,
         249  +
        ));
         250  +
         251  +
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
         252  +
            crate::config::auth::Params::builder()
         253  +
                .operation_name("PutParameter")
         254  +
                .build()
         255  +
                .expect("required fields set"),
         256  +
        ));
         257  +
         258  +
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("PutParameter", "SSM"));
         259  +
        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
         260  +
        signing_options.double_uri_encode = true;
         261  +
        signing_options.content_sha256_header = false;
         262  +
        signing_options.normalize_uri_path = true;
         263  +
        signing_options.payload_override = None;
         264  +
         265  +
        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
         266  +
            signing_options,
         267  +
            ..::std::default::Default::default()
         268  +
        });
         269  +
         270  +
        ::std::option::Option::Some(cfg.freeze())
         271  +
    }
         272  +
         273  +
    fn runtime_components(
         274  +
        &self,
         275  +
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
         276  +
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
         277  +
        #[allow(unused_mut)]
         278  +
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("PutParameter")
         279  +
            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
         280  +
                PutParameterTelemetryInputCaptureInterceptor,
         281  +
            ))
         282  +
            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
         283  +
                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
         284  +
            ))
         285  +
            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
         286  +
                PutParameterEndpointParamsInterceptor,
         287  +
            ))
         288  +
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
         289  +
                crate::operation::put_parameter::PutParameterError,
         290  +
            >::new())
         291  +
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
         292  +
                crate::operation::put_parameter::PutParameterError,
         293  +
            >::new())
         294  +
            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
         295  +
                crate::operation::put_parameter::PutParameterError,
         296  +
            >::new())
         297  +
            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
         298  +
                crate::operation::put_parameter::PutParameterError,
         299  +
            >::new());
         300  +
         301  +
        ::std::borrow::Cow::Owned(rcb)
         302  +
    }
         303  +
}
         304  +
         305  +
#[derive(Debug)]
         306  +
struct PutParameterTelemetryInputCaptureInterceptor;
         307  +
         308  +
#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
         309  +
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for PutParameterTelemetryInputCaptureInterceptor {
         310  +
    fn name(&self) -> &'static str {
         311  +
        "PutParameterTelemetryInputCaptureInterceptor"
         312  +
    }
         313  +
         314  +
    fn read_before_execution(
         315  +
        &self,
         316  +
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
         317  +
            '_,
         318  +
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
         319  +
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
         320  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
         321  +
        >,
         322  +
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         323  +
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
         324  +
        // Nothing to do unless the customer opted in by naming members to record.
         325  +
        let ::std::option::Option::Some(requested) = cfg
         326  +
            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
         327  +
            .filter(|r| !r.is_empty())
         328  +
        else {
         329  +
            return ::std::result::Result::Ok(());
         330  +
        };
         331  +
         332  +
        let ::std::option::Option::Some(input) = context.input().downcast_ref::<PutParameterInput>() else {
         333  +
            // A mismatched input is not this interceptor's concern; skip quietly.
         334  +
            return ::std::result::Result::Ok(());
         335  +
        };
         336  +
         337  +
        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
         338  +
        if requested.should_capture("Name") {
         339  +
            if let ::std::option::Option::Some(value) = input.name.as_deref() {
         340  +
                captured.insert("Name", value);
         341  +
            }
         342  +
        }
         343  +
        if requested.should_capture("Description") {
         344  +
            if let ::std::option::Option::Some(value) = input.description.as_deref() {
         345  +
                captured.insert("Description", value);
         346  +
            }
         347  +
        }
         348  +
        if requested.should_capture("KeyId") {
         349  +
            if let ::std::option::Option::Some(value) = input.key_id.as_deref() {
         350  +
                captured.insert("KeyId", value);
         351  +
            }
         352  +
        }
         353  +
        if requested.should_capture("AllowedPattern") {
         354  +
            if let ::std::option::Option::Some(value) = input.allowed_pattern.as_deref() {
         355  +
                captured.insert("AllowedPattern", value);
         356  +
            }
         357  +
        }
         358  +
        if requested.should_capture("Policies") {
         359  +
            if let ::std::option::Option::Some(value) = input.policies.as_deref() {
         360  +
                captured.insert("Policies", value);
         361  +
            }
         362  +
        }
         363  +
        if requested.should_capture("DataType") {
         364  +
            if let ::std::option::Option::Some(value) = input.data_type.as_deref() {
         365  +
                captured.insert("DataType", value);
         366  +
            }
         367  +
        }
         368  +
         369  +
        cfg.interceptor_state().store_put(captured);
         370  +
        ::std::result::Result::Ok(())
         371  +
    }
         372  +
}
         373  +
#[derive(Debug)]
         374  +
struct PutParameterResponseDeserializer;
         375  +
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutParameterResponseDeserializer {
         376  +
    fn deserialize_nonstreaming_with_config(
         377  +
        &self,
         378  +
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         379  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
         380  +
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
         381  +
        let (success, status) = (response.status().is_success(), response.status().as_u16());
         382  +
        // Load body and headers BEFORE BeforeParseResponse so customizations
         383  +
        // (e.g., S3's `body_is_error` check that detects errors returned with
         384  +
        // HTTP 200) can inspect them. The legacy non-streaming path also
         385  +
        // loads `body` before firing this hook.
         386  +
        let body = response.body().bytes().expect("body loaded");
         387  +
        let headers = response.headers();
         388  +
        #[allow(unused_mut)]
         389  +
        let mut force_error = false;
         390  +
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
         391  +
        if !success && status != 200 || force_error {
         392  +
            let protocol = _cfg
         393  +
                .load::<::aws_smithy_schema::protocol::SharedClientProtocol>()
         394  +
                .expect("a SharedClientProtocol is required");
         395  +
            #[allow(unused_mut)]
         396  +
            let mut generic_builder = protocol.parse_error_metadata(response, _cfg).map_err(|e| {
         397  +
                ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(::aws_smithy_runtime_api::box_error::BoxError::from(e))
         398  +
            })?;
         399  +
            generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, headers);
         400  +
            let generic = generic_builder.build();
         401  +
            let error_code = match generic.code() {
         402  +
                ::std::option::Option::Some(code) => code,
         403  +
                ::std::option::Option::None => {
         404  +
                    return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         405  +
                        ::aws_smithy_runtime_api::box_error::BoxError::from(crate::operation::put_parameter::PutParameterError::unhandled(generic)),
         406  +
                    ))
         407  +
                }
         408  +
            };
         409  +
            let _error_message = generic.message().map(|msg| msg.to_owned());
         410  +
            let err = match error_code {
         411  +
                "HierarchyLevelLimitExceededException" => crate::operation::put_parameter::PutParameterError::HierarchyLevelLimitExceededException({
         412  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         413  +
                        crate::types::error::HierarchyLevelLimitExceededException::deserialize_with_response(
         414  +
                            &mut *deser,
         415  +
                            response.headers(),
         416  +
                            response.status().into(),
         417  +
                            body,
         418  +
                        )
         419  +
                    }) {
         420  +
                        ::std::result::Result::Ok(val) => val,
         421  +
                        ::std::result::Result::Err(e) => {
         422  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         423  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         424  +
                            ))
         425  +
                        }
         426  +
                    };
         427  +
                    tmp.meta = generic;
         428  +
                    if tmp.message.is_none() {
         429  +
                        tmp.message = _error_message;
         430  +
                    }
         431  +
                    tmp
         432  +
                }),
         433  +
                "HierarchyTypeMismatchException" => crate::operation::put_parameter::PutParameterError::HierarchyTypeMismatchException({
         434  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         435  +
                        crate::types::error::HierarchyTypeMismatchException::deserialize_with_response(
         436  +
                            &mut *deser,
         437  +
                            response.headers(),
         438  +
                            response.status().into(),
         439  +
                            body,
         440  +
                        )
         441  +
                    }) {
         442  +
                        ::std::result::Result::Ok(val) => val,
         443  +
                        ::std::result::Result::Err(e) => {
         444  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         445  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         446  +
                            ))
         447  +
                        }
         448  +
                    };
         449  +
                    tmp.meta = generic;
         450  +
                    if tmp.message.is_none() {
         451  +
                        tmp.message = _error_message;
         452  +
                    }
         453  +
                    tmp
         454  +
                }),
         455  +
                "IncompatiblePolicyException" => crate::operation::put_parameter::PutParameterError::IncompatiblePolicyException({
         456  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         457  +
                        crate::types::error::IncompatiblePolicyException::deserialize_with_response(
         458  +
                            &mut *deser,
         459  +
                            response.headers(),
         460  +
                            response.status().into(),
         461  +
                            body,
         462  +
                        )
         463  +
                    }) {
         464  +
                        ::std::result::Result::Ok(val) => val,
         465  +
                        ::std::result::Result::Err(e) => {
         466  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         467  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         468  +
                            ))
         469  +
                        }
         470  +
                    };
         471  +
                    tmp.meta = generic;
         472  +
                    if tmp.message.is_none() {
         473  +
                        tmp.message = _error_message;
         474  +
                    }
         475  +
                    tmp
         476  +
                }),
         477  +
                "InternalServerError" => crate::operation::put_parameter::PutParameterError::InternalServerError({
         478  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         479  +
                        crate::types::error::InternalServerError::deserialize_with_response(
         480  +
                            &mut *deser,
         481  +
                            response.headers(),
         482  +
                            response.status().into(),
         483  +
                            body,
         484  +
                        )
         485  +
                    }) {
         486  +
                        ::std::result::Result::Ok(val) => val,
         487  +
                        ::std::result::Result::Err(e) => {
         488  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         489  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         490  +
                            ))
         491  +
                        }
         492  +
                    };
         493  +
                    tmp.meta = generic;
         494  +
                    if tmp.message.is_none() {
         495  +
                        tmp.message = _error_message;
         496  +
                    }
         497  +
                    tmp
         498  +
                }),
         499  +
                "InvalidAllowedPatternException" => crate::operation::put_parameter::PutParameterError::InvalidAllowedPatternException({
         500  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         501  +
                        crate::types::error::InvalidAllowedPatternException::deserialize_with_response(
         502  +
                            &mut *deser,
         503  +
                            response.headers(),
         504  +
                            response.status().into(),
         505  +
                            body,
         506  +
                        )
         507  +
                    }) {
         508  +
                        ::std::result::Result::Ok(val) => val,
         509  +
                        ::std::result::Result::Err(e) => {
         510  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         511  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         512  +
                            ))
         513  +
                        }
         514  +
                    };
         515  +
                    tmp.meta = generic;
         516  +
                    if tmp.message.is_none() {
         517  +
                        tmp.message = _error_message;
         518  +
                    }
         519  +
                    tmp
         520  +
                }),
         521  +
                "InvalidKeyId" => crate::operation::put_parameter::PutParameterError::InvalidKeyId({
         522  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         523  +
                        crate::types::error::InvalidKeyId::deserialize_with_response(&mut *deser, response.headers(), response.status().into(), body)
         524  +
                    }) {
         525  +
                        ::std::result::Result::Ok(val) => val,
         526  +
                        ::std::result::Result::Err(e) => {
         527  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         528  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         529  +
                            ))
         530  +
                        }
         531  +
                    };
         532  +
                    tmp.meta = generic;
         533  +
                    if tmp.message.is_none() {
         534  +
                        tmp.message = _error_message;
         535  +
                    }
         536  +
                    tmp
         537  +
                }),
         538  +
                "InvalidPolicyAttributeException" => crate::operation::put_parameter::PutParameterError::InvalidPolicyAttributeException({
         539  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         540  +
                        crate::types::error::InvalidPolicyAttributeException::deserialize_with_response(
         541  +
                            &mut *deser,
         542  +
                            response.headers(),
         543  +
                            response.status().into(),
         544  +
                            body,
         545  +
                        )
         546  +
                    }) {
         547  +
                        ::std::result::Result::Ok(val) => val,
         548  +
                        ::std::result::Result::Err(e) => {
         549  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         550  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         551  +
                            ))
         552  +
                        }
         553  +
                    };
         554  +
                    tmp.meta = generic;
         555  +
                    if tmp.message.is_none() {
         556  +
                        tmp.message = _error_message;
         557  +
                    }
         558  +
                    tmp
         559  +
                }),
         560  +
                "InvalidPolicyTypeException" => crate::operation::put_parameter::PutParameterError::InvalidPolicyTypeException({
         561  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         562  +
                        crate::types::error::InvalidPolicyTypeException::deserialize_with_response(
         563  +
                            &mut *deser,
         564  +
                            response.headers(),
         565  +
                            response.status().into(),
         566  +
                            body,
         567  +
                        )
         568  +
                    }) {
         569  +
                        ::std::result::Result::Ok(val) => val,
         570  +
                        ::std::result::Result::Err(e) => {
         571  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         572  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         573  +
                            ))
         574  +
                        }
         575  +
                    };
         576  +
                    tmp.meta = generic;
         577  +
                    if tmp.message.is_none() {
         578  +
                        tmp.message = _error_message;
         579  +
                    }
         580  +
                    tmp
         581  +
                }),
         582  +
                "ParameterAlreadyExists" => crate::operation::put_parameter::PutParameterError::ParameterAlreadyExists({
         583  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         584  +
                        crate::types::error::ParameterAlreadyExists::deserialize_with_response(
         585  +
                            &mut *deser,
         586  +
                            response.headers(),
         587  +
                            response.status().into(),
         588  +
                            body,
         589  +
                        )
         590  +
                    }) {
         591  +
                        ::std::result::Result::Ok(val) => val,
         592  +
                        ::std::result::Result::Err(e) => {
         593  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         594  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         595  +
                            ))
         596  +
                        }
         597  +
                    };
         598  +
                    tmp.meta = generic;
         599  +
                    if tmp.message.is_none() {
         600  +
                        tmp.message = _error_message;
         601  +
                    }
         602  +
                    tmp
         603  +
                }),
         604  +
                "ParameterLimitExceeded" => crate::operation::put_parameter::PutParameterError::ParameterLimitExceeded({
         605  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         606  +
                        crate::types::error::ParameterLimitExceeded::deserialize_with_response(
         607  +
                            &mut *deser,
         608  +
                            response.headers(),
         609  +
                            response.status().into(),
         610  +
                            body,
         611  +
                        )
         612  +
                    }) {
         613  +
                        ::std::result::Result::Ok(val) => val,
         614  +
                        ::std::result::Result::Err(e) => {
         615  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         616  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         617  +
                            ))
         618  +
                        }
         619  +
                    };
         620  +
                    tmp.meta = generic;
         621  +
                    if tmp.message.is_none() {
         622  +
                        tmp.message = _error_message;
         623  +
                    }
         624  +
                    tmp
         625  +
                }),
         626  +
                "ParameterMaxVersionLimitExceeded" => crate::operation::put_parameter::PutParameterError::ParameterMaxVersionLimitExceeded({
         627  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         628  +
                        crate::types::error::ParameterMaxVersionLimitExceeded::deserialize_with_response(
         629  +
                            &mut *deser,
         630  +
                            response.headers(),
         631  +
                            response.status().into(),
         632  +
                            body,
         633  +
                        )
         634  +
                    }) {
         635  +
                        ::std::result::Result::Ok(val) => val,
         636  +
                        ::std::result::Result::Err(e) => {
         637  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         638  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         639  +
                            ))
         640  +
                        }
         641  +
                    };
         642  +
                    tmp.meta = generic;
         643  +
                    if tmp.message.is_none() {
         644  +
                        tmp.message = _error_message;
         645  +
                    }
         646  +
                    tmp
         647  +
                }),
         648  +
                "ParameterPatternMismatchException" => crate::operation::put_parameter::PutParameterError::ParameterPatternMismatchException({
         649  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         650  +
                        crate::types::error::ParameterPatternMismatchException::deserialize_with_response(
         651  +
                            &mut *deser,
         652  +
                            response.headers(),
         653  +
                            response.status().into(),
         654  +
                            body,
         655  +
                        )
         656  +
                    }) {
         657  +
                        ::std::result::Result::Ok(val) => val,
         658  +
                        ::std::result::Result::Err(e) => {
         659  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         660  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         661  +
                            ))
         662  +
                        }
         663  +
                    };
         664  +
                    tmp.meta = generic;
         665  +
                    if tmp.message.is_none() {
         666  +
                        tmp.message = _error_message;
         667  +
                    }
         668  +
                    tmp
         669  +
                }),
         670  +
                "PoliciesLimitExceededException" => crate::operation::put_parameter::PutParameterError::PoliciesLimitExceededException({
         671  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         672  +
                        crate::types::error::PoliciesLimitExceededException::deserialize_with_response(
         673  +
                            &mut *deser,
         674  +
                            response.headers(),
         675  +
                            response.status().into(),
         676  +
                            body,
         677  +
                        )
         678  +
                    }) {
         679  +
                        ::std::result::Result::Ok(val) => val,
         680  +
                        ::std::result::Result::Err(e) => {
         681  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         682  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         683  +
                            ))
         684  +
                        }
         685  +
                    };
         686  +
                    tmp.meta = generic;
         687  +
                    if tmp.message.is_none() {
         688  +
                        tmp.message = _error_message;
         689  +
                    }
         690  +
                    tmp
         691  +
                }),
         692  +
                "TooManyUpdates" => crate::operation::put_parameter::PutParameterError::TooManyUpdates({
         693  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         694  +
                        crate::types::error::TooManyUpdates::deserialize_with_response(
         695  +
                            &mut *deser,
         696  +
                            response.headers(),
         697  +
                            response.status().into(),
         698  +
                            body,
         699  +
                        )
         700  +
                    }) {
         701  +
                        ::std::result::Result::Ok(val) => val,
         702  +
                        ::std::result::Result::Err(e) => {
         703  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         704  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         705  +
                            ))
         706  +
                        }
         707  +
                    };
         708  +
                    tmp.meta = generic;
         709  +
                    if tmp.message.is_none() {
         710  +
                        tmp.message = _error_message;
         711  +
                    }
         712  +
                    tmp
         713  +
                }),
         714  +
                "UnsupportedParameterType" => crate::operation::put_parameter::PutParameterError::UnsupportedParameterType({
         715  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         716  +
                        crate::types::error::UnsupportedParameterType::deserialize_with_response(
         717  +
                            &mut *deser,
         718  +
                            response.headers(),
         719  +
                            response.status().into(),
         720  +
                            body,
         721  +
                        )
         722  +
                    }) {
         723  +
                        ::std::result::Result::Ok(val) => val,
         724  +
                        ::std::result::Result::Err(e) => {
         725  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         726  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         727  +
                            ))
         728  +
                        }
         729  +
                    };
         730  +
                    tmp.meta = generic;
         731  +
                    if tmp.message.is_none() {
         732  +
                        tmp.message = _error_message;
         733  +
                    }
         734  +
                    tmp
         735  +
                }),
         736  +
                _ => {
         737  +
                    // Registry-backed, operation-scoped reification of an error whose
         738  +
                    // code this operation does not model directly: the operation's own
         739  +
                    // error registry is consulted first, then the lookup widens to the
         740  +
                    // service-wide error registry. On a hit, the reified error is attached
         741  +
                    // as the source of the returned unhandled error while its metadata
         742  +
                    // (code, message, request id) is preserved; on a miss the generic
         743  +
                    // error is returned unchanged.
         744  +
                    match protocol
         745  +
                        .deserialize_error_response(response, _cfg)
         746  +
                        .ok()
         747  +
                        .and_then(|mut deser| {
         748  +
                            ::aws_smithy_schema::registry::reify_error(
         749  +
                                crate::operation::put_parameter::error_registry::REGISTRY
         750  +
                                    .or(&crate::error_type_registry::REGISTRY),
         751  +
                                error_code,
         752  +
                                &mut *deser,
         753  +
                            )
         754  +
                        }) {
         755  +
                        ::std::option::Option::Some(source) => <crate::operation::put_parameter::PutParameterError as ::aws_smithy_runtime_api::client::result::CreateUnhandledError>::create_unhandled_error(source, ::std::option::Option::Some(generic)),
         756  +
                        ::std::option::Option::None => crate::operation::put_parameter::PutParameterError::generic(generic),
         757  +
                    }
         758  +
                }
         759  +
            };
         760  +
            ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::operation(
         761  +
                ::aws_smithy_runtime_api::client::interceptors::context::Error::erase(err),
         762  +
            ))
         763  +
        } else {
         764  +
            let protocol = _cfg
         765  +
                .load::<::aws_smithy_schema::protocol::SharedClientProtocol>()
         766  +
                .expect("a SharedClientProtocol is required");
         767  +
            let mut deser = protocol.deserialize_response(response, PutParameter::OUTPUT_SCHEMA, _cfg).map_err(|e| {
         768  +
                ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(::aws_smithy_runtime_api::box_error::BoxError::from(e))
         769  +
            })?;
         770  +
            // body and headers are already in scope from the top of the function;
         771  +
            // alias `headers` as `_response_headers` so MutateOutput
         772  +
            // customizations have a stable name to read from.
         773  +
            let _response_headers = headers;
         774  +
            #[allow(unused_mut)]
         775  +
            let mut output = crate::operation::put_parameter::PutParameterOutput::deserialize_with_response(
         776  +
                &mut *deser,
         777  +
                _response_headers,
         778  +
                response.status().into(),
         779  +
                body,
         780  +
            )
         781  +
            .map_err(|e| {
         782  +
                ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(::aws_smithy_runtime_api::box_error::BoxError::from(e))
         783  +
            })?;
         784  +
            output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
         785  +
            ::std::result::Result::Ok(::aws_smithy_runtime_api::client::interceptors::context::Output::erase(output))
         786  +
        }
         787  +
    }
         788  +
}
         789  +
#[derive(Debug)]
         790  +
struct PutParameterRequestSerializer;
         791  +
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for PutParameterRequestSerializer {
         792  +
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
         793  +
    fn serialize_input(
         794  +
        &self,
         795  +
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
         796  +
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         797  +
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
         798  +
        let input = input
         799  +
            .downcast::<crate::operation::put_parameter::PutParameterInput>()
         800  +
            .expect("correct type");
         801  +
         802  +
        let protocol = _cfg
         803  +
            .load::<::aws_smithy_schema::protocol::SharedClientProtocol>()
         804  +
            .expect("a SharedClientProtocol is required");
         805  +
        let mut request = protocol
         806  +
            .serialize_request(&input, PutParameter::INPUT_SCHEMA, "/", _cfg)
         807  +
            .map_err(::aws_smithy_runtime_api::box_error::BoxError::from)?;
         808  +
         809  +
        return ::std::result::Result::Ok(request);
         810  +
    }
         811  +
}
         812  +
#[derive(Debug)]
         813  +
struct PutParameterEndpointParamsInterceptor;
         814  +
         815  +
#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
         816  +
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for PutParameterEndpointParamsInterceptor {
         817  +
    fn name(&self) -> &'static str {
         818  +
        "PutParameterEndpointParamsInterceptor"
         819  +
    }
         820  +
         821  +
    fn read_before_execution(
         822  +
        &self,
         823  +
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
         824  +
            '_,
         825  +
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
         826  +
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
         827  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
         828  +
        >,
         829  +
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         830  +
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
         831  +
        let _input = context
         832  +
            .input()
         833  +
            .downcast_ref::<PutParameterInput>()
         834  +
            .ok_or("failed to downcast to PutParameterInput")?;
         835  +
         836  +
        let params = crate::config::endpoint::Params::builder()
         837  +
            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
         838  +
            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
         839  +
            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
         840  +
            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
         841  +
            .build()
         842  +
            .map_err(|err| {
         843  +
                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
         844  +
            })?;
         845  +
        cfg.interceptor_state()
         846  +
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
         847  +
        ::std::result::Result::Ok(())
         848  +
    }
         849  +
}
         850  +
         851  +
// The get_* functions below are generated from JMESPath expressions in the
         852  +
// operationContextParams trait. They target the operation's input shape.
         853  +
         854  +
/// Error type for the `PutParameterError` operation.
         855  +
#[non_exhaustive]
         856  +
#[derive(::std::fmt::Debug)]
         857  +
pub enum PutParameterError {
         858  +
    /// <p>A hierarchy can have a maximum of 15 levels. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html">Requirements and constraints for parameter names</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         859  +
    HierarchyLevelLimitExceededException(crate::types::error::HierarchyLevelLimitExceededException),
         860  +
    /// <p>Parameter Store doesn't support changing a parameter type in a hierarchy. For example, you can't change a parameter from a <code>String</code> type to a <code>SecureString</code> type. You must create a new, unique parameter.</p>
         861  +
    HierarchyTypeMismatchException(crate::types::error::HierarchyTypeMismatchException),
         862  +
    /// <p>There is a conflict in the policies specified for this parameter. You can't, for example, specify two Expiration policies for a parameter. Review your policies, and try again.</p>
         863  +
    IncompatiblePolicyException(crate::types::error::IncompatiblePolicyException),
         864  +
    /// <p>An error occurred on the server side.</p>
         865  +
    InternalServerError(crate::types::error::InternalServerError),
         866  +
    /// <p>The request doesn't meet the regular expression requirement.</p>
         867  +
    InvalidAllowedPatternException(crate::types::error::InvalidAllowedPatternException),
         868  +
    /// <p>The query key ID isn't valid.</p>
         869  +
    InvalidKeyId(crate::types::error::InvalidKeyId),
         870  +
    /// <p>A policy attribute or its value is invalid.</p>
         871  +
    InvalidPolicyAttributeException(crate::types::error::InvalidPolicyAttributeException),
         872  +
    /// <p>The policy type isn't supported. Parameter Store supports the following policy types: Expiration, ExpirationNotification, and NoChangeNotification.</p>
         873  +
    InvalidPolicyTypeException(crate::types::error::InvalidPolicyTypeException),
         874  +
    /// <p>The parameter already exists. You can't create duplicate parameters.</p>
         875  +
    ParameterAlreadyExists(crate::types::error::ParameterAlreadyExists),
         876  +
    /// <p>You have exceeded the number of parameters for this Amazon Web Services account. Delete one or more parameters and try again.</p>
         877  +
    ParameterLimitExceeded(crate::types::error::ParameterLimitExceeded),
         878  +
    /// <p>Parameter Store retains the 100 most recently created versions of a parameter. After this number of versions has been created, Parameter Store deletes the oldest version when a new one is created. However, if the oldest version has a <i>label</i> attached to it, Parameter Store won't delete the version and instead presents this error message:</p>
         879  +
    /// <p><code>An error occurred (ParameterMaxVersionLimitExceeded) when calling the PutParameter operation: You attempted to create a new version of <i>parameter-name</i> by calling the PutParameter API with the overwrite flag. Version <i>version-number</i>, the oldest version, can't be deleted because it has a label associated with it. Move the label to another version of the parameter, and try again.</code></p>
         880  +
    /// <p>This safeguard is to prevent parameter versions with mission critical labels assigned to them from being deleted. To continue creating new parameters, first move the label from the oldest version of the parameter to a newer one for use in your operations. For information about moving parameter labels, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-console-move">Move a parameter label (console)</a> or <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-cli-move">Move a parameter label (CLI)</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         881  +
    ParameterMaxVersionLimitExceeded(crate::types::error::ParameterMaxVersionLimitExceeded),
         882  +
    /// <p>The parameter name isn't valid.</p>
         883  +
    ParameterPatternMismatchException(crate::types::error::ParameterPatternMismatchException),
         884  +
    /// <p>You specified more than the maximum number of allowed policies for the parameter. The maximum is 10.</p>
         885  +
    PoliciesLimitExceededException(crate::types::error::PoliciesLimitExceededException),
         886  +
    /// <p>There are concurrent updates for a resource that supports one update at a time.</p>
         887  +
    TooManyUpdates(crate::types::error::TooManyUpdates),
         888  +
    /// <p>The parameter type isn't supported.</p>
         889  +
    UnsupportedParameterType(crate::types::error::UnsupportedParameterType),
         890  +
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
         891  +
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
         892  +
    variable wildcard pattern and check `.code()`:
         893  +
     \
         894  +
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
         895  +
     \
         896  +
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-PutParameterError) for what information is available for the error.")]
         897  +
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         898  +
}
         899  +
impl PutParameterError {
         900  +
    /// Creates the `PutParameterError::Unhandled` variant from any error type.
         901  +
    pub fn unhandled(
         902  +
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
         903  +
    ) -> Self {
         904  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         905  +
            source: err.into(),
         906  +
            meta: ::std::default::Default::default(),
         907  +
        })
         908  +
    }
         909  +
         910  +
    /// Creates the `PutParameterError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
         911  +
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
         912  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         913  +
            source: err.clone().into(),
         914  +
            meta: err,
         915  +
        })
         916  +
    }
         917  +
    ///
         918  +
    /// Returns error metadata, which includes the error code, message,
         919  +
    /// request ID, and potentially additional information.
         920  +
    ///
         921  +
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         922  +
        match self {
         923  +
            Self::HierarchyLevelLimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         924  +
            Self::HierarchyTypeMismatchException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         925  +
            Self::IncompatiblePolicyException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         926  +
            Self::InternalServerError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         927  +
            Self::InvalidAllowedPatternException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         928  +
            Self::InvalidKeyId(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         929  +
            Self::InvalidPolicyAttributeException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         930  +
            Self::InvalidPolicyTypeException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         931  +
            Self::ParameterAlreadyExists(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         932  +
            Self::ParameterLimitExceeded(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         933  +
            Self::ParameterMaxVersionLimitExceeded(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         934  +
            Self::ParameterPatternMismatchException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         935  +
            Self::PoliciesLimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         936  +
            Self::TooManyUpdates(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         937  +
            Self::UnsupportedParameterType(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         938  +
            Self::Unhandled(e) => &e.meta,
         939  +
        }
         940  +
    }
         941  +
    /// Returns `true` if the error kind is `PutParameterError::HierarchyLevelLimitExceededException`.
         942  +
    pub fn is_hierarchy_level_limit_exceeded_exception(&self) -> bool {
         943  +
        matches!(self, Self::HierarchyLevelLimitExceededException(_))
         944  +
    }
         945  +
    /// Returns `true` if the error kind is `PutParameterError::HierarchyTypeMismatchException`.
         946  +
    pub fn is_hierarchy_type_mismatch_exception(&self) -> bool {
         947  +
        matches!(self, Self::HierarchyTypeMismatchException(_))
         948  +
    }
         949  +
    /// Returns `true` if the error kind is `PutParameterError::IncompatiblePolicyException`.
         950  +
    pub fn is_incompatible_policy_exception(&self) -> bool {
         951  +
        matches!(self, Self::IncompatiblePolicyException(_))
         952  +
    }
         953  +
    /// Returns `true` if the error kind is `PutParameterError::InternalServerError`.
         954  +
    pub fn is_internal_server_error(&self) -> bool {
         955  +
        matches!(self, Self::InternalServerError(_))
         956  +
    }
         957  +
    /// Returns `true` if the error kind is `PutParameterError::InvalidAllowedPatternException`.
         958  +
    pub fn is_invalid_allowed_pattern_exception(&self) -> bool {
         959  +
        matches!(self, Self::InvalidAllowedPatternException(_))
         960  +
    }
         961  +
    /// Returns `true` if the error kind is `PutParameterError::InvalidKeyId`.
         962  +
    pub fn is_invalid_key_id(&self) -> bool {
         963  +
        matches!(self, Self::InvalidKeyId(_))
         964  +
    }
         965  +
    /// Returns `true` if the error kind is `PutParameterError::InvalidPolicyAttributeException`.
         966  +
    pub fn is_invalid_policy_attribute_exception(&self) -> bool {
         967  +
        matches!(self, Self::InvalidPolicyAttributeException(_))
         968  +
    }
         969  +
    /// Returns `true` if the error kind is `PutParameterError::InvalidPolicyTypeException`.
         970  +
    pub fn is_invalid_policy_type_exception(&self) -> bool {
         971  +
        matches!(self, Self::InvalidPolicyTypeException(_))
         972  +
    }
         973  +
    /// Returns `true` if the error kind is `PutParameterError::ParameterAlreadyExists`.
         974  +
    pub fn is_parameter_already_exists(&self) -> bool {
         975  +
        matches!(self, Self::ParameterAlreadyExists(_))
         976  +
    }
         977  +
    /// Returns `true` if the error kind is `PutParameterError::ParameterLimitExceeded`.
         978  +
    pub fn is_parameter_limit_exceeded(&self) -> bool {
         979  +
        matches!(self, Self::ParameterLimitExceeded(_))
         980  +
    }
         981  +
    /// Returns `true` if the error kind is `PutParameterError::ParameterMaxVersionLimitExceeded`.
         982  +
    pub fn is_parameter_max_version_limit_exceeded(&self) -> bool {
         983  +
        matches!(self, Self::ParameterMaxVersionLimitExceeded(_))
         984  +
    }
         985  +
    /// Returns `true` if the error kind is `PutParameterError::ParameterPatternMismatchException`.
         986  +
    pub fn is_parameter_pattern_mismatch_exception(&self) -> bool {
         987  +
        matches!(self, Self::ParameterPatternMismatchException(_))
         988  +
    }
         989  +
    /// Returns `true` if the error kind is `PutParameterError::PoliciesLimitExceededException`.
         990  +
    pub fn is_policies_limit_exceeded_exception(&self) -> bool {
         991  +
        matches!(self, Self::PoliciesLimitExceededException(_))
         992  +
    }
         993  +
    /// Returns `true` if the error kind is `PutParameterError::TooManyUpdates`.
         994  +
    pub fn is_too_many_updates(&self) -> bool {
         995  +
        matches!(self, Self::TooManyUpdates(_))
         996  +
    }
         997  +
    /// Returns `true` if the error kind is `PutParameterError::UnsupportedParameterType`.
         998  +
    pub fn is_unsupported_parameter_type(&self) -> bool {
         999  +
        matches!(self, Self::UnsupportedParameterType(_))
        1000  +
    }
        1001  +
}
        1002  +
impl ::std::error::Error for PutParameterError {
        1003  +
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
        1004  +
        match self {
        1005  +
            Self::HierarchyLevelLimitExceededException(_inner) => ::std::option::Option::Some(_inner),
        1006  +
            Self::HierarchyTypeMismatchException(_inner) => ::std::option::Option::Some(_inner),
        1007  +
            Self::IncompatiblePolicyException(_inner) => ::std::option::Option::Some(_inner),
        1008  +
            Self::InternalServerError(_inner) => ::std::option::Option::Some(_inner),
        1009  +
            Self::InvalidAllowedPatternException(_inner) => ::std::option::Option::Some(_inner),
        1010  +
            Self::InvalidKeyId(_inner) => ::std::option::Option::Some(_inner),
        1011  +
            Self::InvalidPolicyAttributeException(_inner) => ::std::option::Option::Some(_inner),
        1012  +
            Self::InvalidPolicyTypeException(_inner) => ::std::option::Option::Some(_inner),
        1013  +
            Self::ParameterAlreadyExists(_inner) => ::std::option::Option::Some(_inner),
        1014  +
            Self::ParameterLimitExceeded(_inner) => ::std::option::Option::Some(_inner),
        1015  +
            Self::ParameterMaxVersionLimitExceeded(_inner) => ::std::option::Option::Some(_inner),
        1016  +
            Self::ParameterPatternMismatchException(_inner) => ::std::option::Option::Some(_inner),
        1017  +
            Self::PoliciesLimitExceededException(_inner) => ::std::option::Option::Some(_inner),
        1018  +
            Self::TooManyUpdates(_inner) => ::std::option::Option::Some(_inner),
        1019  +
            Self::UnsupportedParameterType(_inner) => ::std::option::Option::Some(_inner),
        1020  +
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
        1021  +
        }
        1022  +
    }
        1023  +
}
        1024  +
impl ::std::fmt::Display for PutParameterError {
        1025  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        1026  +
        match self {
        1027  +
            Self::HierarchyLevelLimitExceededException(_inner) => _inner.fmt(f),
        1028  +
            Self::HierarchyTypeMismatchException(_inner) => _inner.fmt(f),
        1029  +
            Self::IncompatiblePolicyException(_inner) => _inner.fmt(f),
        1030  +
            Self::InternalServerError(_inner) => _inner.fmt(f),
        1031  +
            Self::InvalidAllowedPatternException(_inner) => _inner.fmt(f),
        1032  +
            Self::InvalidKeyId(_inner) => _inner.fmt(f),
        1033  +
            Self::InvalidPolicyAttributeException(_inner) => _inner.fmt(f),
        1034  +
            Self::InvalidPolicyTypeException(_inner) => _inner.fmt(f),
        1035  +
            Self::ParameterAlreadyExists(_inner) => _inner.fmt(f),
        1036  +
            Self::ParameterLimitExceeded(_inner) => _inner.fmt(f),
        1037  +
            Self::ParameterMaxVersionLimitExceeded(_inner) => _inner.fmt(f),
        1038  +
            Self::ParameterPatternMismatchException(_inner) => _inner.fmt(f),
        1039  +
            Self::PoliciesLimitExceededException(_inner) => _inner.fmt(f),
        1040  +
            Self::TooManyUpdates(_inner) => _inner.fmt(f),
        1041  +
            Self::UnsupportedParameterType(_inner) => _inner.fmt(f),
        1042  +
            Self::Unhandled(_inner) => {
        1043  +
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
        1044  +
                    write!(f, "unhandled error ({code})")
        1045  +
                } else {
        1046  +
                    f.write_str("unhandled error")
        1047  +
                }
        1048  +
            }
        1049  +
        }
        1050  +
    }
        1051  +
}
        1052  +
impl ::aws_smithy_types::retry::ProvideErrorKind for PutParameterError {
        1053  +
    fn code(&self) -> ::std::option::Option<&str> {
        1054  +
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
        1055  +
    }
        1056  +
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
        1057  +
        ::std::option::Option::None
        1058  +
    }
        1059  +
}
        1060  +
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for PutParameterError {
        1061  +
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
        1062  +
        match self {
        1063  +
            Self::HierarchyLevelLimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1064  +
            Self::HierarchyTypeMismatchException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1065  +
            Self::IncompatiblePolicyException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1066  +
            Self::InternalServerError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1067  +
            Self::InvalidAllowedPatternException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1068  +
            Self::InvalidKeyId(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1069  +
            Self::InvalidPolicyAttributeException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1070  +
            Self::InvalidPolicyTypeException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1071  +
            Self::ParameterAlreadyExists(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1072  +
            Self::ParameterLimitExceeded(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1073  +
            Self::ParameterMaxVersionLimitExceeded(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1074  +
            Self::ParameterPatternMismatchException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1075  +
            Self::PoliciesLimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1076  +
            Self::TooManyUpdates(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1077  +
            Self::UnsupportedParameterType(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
        1078  +
            Self::Unhandled(_inner) => &_inner.meta,
        1079  +
        }
        1080  +
    }
        1081  +
}
        1082  +
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for PutParameterError {
        1083  +
    fn create_unhandled_error(
        1084  +
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
        1085  +
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
        1086  +
    ) -> Self {
        1087  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
        1088  +
            source,
        1089  +
            meta: meta.unwrap_or_default(),
        1090  +
        })
        1091  +
    }
        1092  +
}
        1093  +
impl ::aws_types::request_id::RequestId for crate::operation::put_parameter::PutParameterError {
        1094  +
    fn request_id(&self) -> Option<&str> {
        1095  +
        self.meta().request_id()
        1096  +
    }
        1097  +
}
        1098  +
        1099  +
pub use crate::operation::put_parameter::_put_parameter_input::PutParameterInput;
        1100  +
        1101  +
pub use crate::operation::put_parameter::_put_parameter_output::PutParameterOutput;
        1102  +
        1103  +
mod _put_parameter_input;
        1104  +
        1105  +
mod _put_parameter_output;
        1106  +
        1107  +
/// Builders
        1108  +
pub mod builders;