AWS SDK

AWS SDK

rev. 3388bf5e18f4269f2b46f39cdc814c5c39d413d0 (ignoring whitespace)

Files changed:

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

@@ -0,1 +0,327 @@
           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 SendAutomationSignalInput {
           6  +
    /// <p>The unique identifier for an existing Automation execution that you want to send the signal to.</p>
           7  +
    pub automation_execution_id: ::std::option::Option<::std::string::String>,
           8  +
    /// <p>The type of signal to send to an Automation execution.</p>
           9  +
    pub signal_type: ::std::option::Option<crate::types::SignalType>,
          10  +
    /// <p>The data sent with the signal. The data schema depends on the type of signal used in the request.</p>
          11  +
    /// <p>For <code>Approve</code> and <code>Reject</code> signal types, the payload is an optional comment that you can send with the signal type. For example:</p>
          12  +
    /// <p><code>Comment="Looks good"</code></p>
          13  +
    /// <p>For <code>StartStep</code> and <code>Resume</code> signal types, you must send the name of the Automation step to start or resume as the payload. For example:</p>
          14  +
    /// <p><code>StepName="step1"</code></p>
          15  +
    /// <p>For the <code>StopStep</code> signal type, you must send the step execution ID as the payload. For example:</p>
          16  +
    /// <p><code>StepExecutionId="97fff367-fc5a-4299-aed8-0123456789ab"</code></p>
          17  +
    pub payload: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
          18  +
}
          19  +
impl SendAutomationSignalInput {
          20  +
    /// <p>The unique identifier for an existing Automation execution that you want to send the signal to.</p>
          21  +
    pub fn automation_execution_id(&self) -> ::std::option::Option<&str> {
          22  +
        self.automation_execution_id.as_deref()
          23  +
    }
          24  +
    /// <p>The type of signal to send to an Automation execution.</p>
          25  +
    pub fn signal_type(&self) -> ::std::option::Option<&crate::types::SignalType> {
          26  +
        self.signal_type.as_ref()
          27  +
    }
          28  +
    /// <p>The data sent with the signal. The data schema depends on the type of signal used in the request.</p>
          29  +
    /// <p>For <code>Approve</code> and <code>Reject</code> signal types, the payload is an optional comment that you can send with the signal type. For example:</p>
          30  +
    /// <p><code>Comment="Looks good"</code></p>
          31  +
    /// <p>For <code>StartStep</code> and <code>Resume</code> signal types, you must send the name of the Automation step to start or resume as the payload. For example:</p>
          32  +
    /// <p><code>StepName="step1"</code></p>
          33  +
    /// <p>For the <code>StopStep</code> signal type, you must send the step execution ID as the payload. For example:</p>
          34  +
    /// <p><code>StepExecutionId="97fff367-fc5a-4299-aed8-0123456789ab"</code></p>
          35  +
    pub fn payload(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
          36  +
        self.payload.as_ref()
          37  +
    }
          38  +
}
          39  +
static SENDAUTOMATIONSIGNALINPUT_MEMBER_AUTOMATION_EXECUTION_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          40  +
    ::aws_smithy_schema::ShapeId::from_parts(
          41  +
        "com.amazonaws.ssm.synthetic#SendAutomationSignalInput$AutomationExecutionId",
          42  +
        "com.amazonaws.ssm.synthetic",
          43  +
        "SendAutomationSignalInput",
          44  +
    ),
          45  +
    ::aws_smithy_schema::ShapeType::String,
          46  +
    "AutomationExecutionId",
          47  +
    0,
          48  +
);
          49  +
static SENDAUTOMATIONSIGNALINPUT_MEMBER_SIGNAL_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          50  +
    ::aws_smithy_schema::ShapeId::from_parts(
          51  +
        "com.amazonaws.ssm.synthetic#SendAutomationSignalInput$SignalType",
          52  +
        "com.amazonaws.ssm.synthetic",
          53  +
        "SendAutomationSignalInput",
          54  +
    ),
          55  +
    ::aws_smithy_schema::ShapeType::String,
          56  +
    "SignalType",
          57  +
    1,
          58  +
);
          59  +
static SENDAUTOMATIONSIGNALINPUT_MEMBER_PAYLOAD_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          60  +
    ::aws_smithy_schema::ShapeId::from_parts(
          61  +
        "com.amazonaws.ssm#AutomationParameterValueList$member",
          62  +
        "com.amazonaws.ssm",
          63  +
        "AutomationParameterValueList",
          64  +
    ),
          65  +
    ::aws_smithy_schema::ShapeType::String,
          66  +
    "member",
          67  +
    0,
          68  +
);
          69  +
static SENDAUTOMATIONSIGNALINPUT_MEMBER_PAYLOAD_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          70  +
    ::aws_smithy_schema::ShapeId::from_parts(
          71  +
        "com.amazonaws.ssm#AutomationParameterMap$key",
          72  +
        "com.amazonaws.ssm",
          73  +
        "AutomationParameterMap",
          74  +
    ),
          75  +
    ::aws_smithy_schema::ShapeType::String,
          76  +
    "key",
          77  +
    0,
          78  +
);
          79  +
static SENDAUTOMATIONSIGNALINPUT_MEMBER_PAYLOAD_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          80  +
    ::aws_smithy_schema::ShapeId::from_parts(
          81  +
        "com.amazonaws.ssm#AutomationParameterMap$value",
          82  +
        "com.amazonaws.ssm",
          83  +
        "AutomationParameterMap",
          84  +
    ),
          85  +
    ::aws_smithy_schema::ShapeType::List,
          86  +
    "value",
          87  +
    1,
          88  +
)
          89  +
.with_list_member(&SENDAUTOMATIONSIGNALINPUT_MEMBER_PAYLOAD_VALUE_MEMBER);
          90  +
static SENDAUTOMATIONSIGNALINPUT_MEMBER_PAYLOAD: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          91  +
    ::aws_smithy_schema::ShapeId::from_parts(
          92  +
        "com.amazonaws.ssm.synthetic#SendAutomationSignalInput$Payload",
          93  +
        "com.amazonaws.ssm.synthetic",
          94  +
        "SendAutomationSignalInput",
          95  +
    ),
          96  +
    ::aws_smithy_schema::ShapeType::Map,
          97  +
    "Payload",
          98  +
    2,
          99  +
)
         100  +
.with_map_members(
         101  +
    &SENDAUTOMATIONSIGNALINPUT_MEMBER_PAYLOAD_KEY,
         102  +
    &SENDAUTOMATIONSIGNALINPUT_MEMBER_PAYLOAD_VALUE,
         103  +
);
         104  +
static SENDAUTOMATIONSIGNALINPUT_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         105  +
    ::aws_smithy_schema::ShapeId::from_parts(
         106  +
        "com.amazonaws.ssm.synthetic#SendAutomationSignalInput",
         107  +
        "com.amazonaws.ssm.synthetic",
         108  +
        "SendAutomationSignalInput",
         109  +
    ),
         110  +
    ::aws_smithy_schema::ShapeType::Structure,
         111  +
    &[
         112  +
        &SENDAUTOMATIONSIGNALINPUT_MEMBER_AUTOMATION_EXECUTION_ID,
         113  +
        &SENDAUTOMATIONSIGNALINPUT_MEMBER_SIGNAL_TYPE,
         114  +
        &SENDAUTOMATIONSIGNALINPUT_MEMBER_PAYLOAD,
         115  +
    ],
         116  +
)
         117  +
.with_payload_hint(::aws_smithy_schema::PayloadHint::NoStructPayload)
         118  +
.with_original_name("SendAutomationSignalRequest");
         119  +
impl SendAutomationSignalInput {
         120  +
    /// The schema for this shape.
         121  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &SENDAUTOMATIONSIGNALINPUT_SCHEMA;
         122  +
}
         123  +
impl ::aws_smithy_schema::serde::SerializableStruct for SendAutomationSignalInput {
         124  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         125  +
    fn serialize_members(
         126  +
        &self,
         127  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         128  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         129  +
        if let Some(ref val) = self.automation_execution_id {
         130  +
            ser.write_string(&SENDAUTOMATIONSIGNALINPUT_MEMBER_AUTOMATION_EXECUTION_ID, val)?;
         131  +
        }
         132  +
        if let Some(ref val) = self.signal_type {
         133  +
            ser.write_string(&SENDAUTOMATIONSIGNALINPUT_MEMBER_SIGNAL_TYPE, val.as_str())?;
         134  +
        }
         135  +
        if let Some(ref val) = self.payload {
         136  +
            ser.write_map(
         137  +
                &SENDAUTOMATIONSIGNALINPUT_MEMBER_PAYLOAD,
         138  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         139  +
                    for (key, value) in val {
         140  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         141  +
         142  +
                        ser.write_list(
         143  +
                            &SENDAUTOMATIONSIGNALINPUT_MEMBER_PAYLOAD_VALUE,
         144  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         145  +
                                for item in value {
         146  +
                                    ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         147  +
                                }
         148  +
                                Ok(())
         149  +
                            },
         150  +
                        )?;
         151  +
                    }
         152  +
                    Ok(())
         153  +
                },
         154  +
            )?;
         155  +
        }
         156  +
        Ok(())
         157  +
    }
         158  +
}
         159  +
impl SendAutomationSignalInput {
         160  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         161  +
    pub fn deserialize(
         162  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         163  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         164  +
        #[allow(unused_variables, unused_mut)]
         165  +
        let mut builder = Self::builder();
         166  +
        #[allow(
         167  +
            unused_variables,
         168  +
            unreachable_code,
         169  +
            clippy::single_match,
         170  +
            clippy::match_single_binding,
         171  +
            clippy::diverging_sub_expression
         172  +
        )]
         173  +
        deserializer.read_struct(&SENDAUTOMATIONSIGNALINPUT_SCHEMA, &mut |member, deser| {
         174  +
            match member.member_index() {
         175  +
                Some(0) => {
         176  +
                    if deser.is_null() {
         177  +
                        deser.read_null()?;
         178  +
                    } else {
         179  +
                        builder.automation_execution_id = Some(deser.read_string(member)?);
         180  +
                    }
         181  +
                }
         182  +
                Some(1) => {
         183  +
                    if deser.is_null() {
         184  +
                        deser.read_null()?;
         185  +
                    } else {
         186  +
                        builder.signal_type = Some(crate::types::SignalType::from(deser.read_string(member)?.as_str()));
         187  +
                    }
         188  +
                }
         189  +
                Some(2) => {
         190  +
                    if deser.is_null() {
         191  +
                        deser.read_null()?;
         192  +
                    } else {
         193  +
                        builder.payload = Some({
         194  +
                            let mut container = std::collections::HashMap::new();
         195  +
                            deser.read_map(member, &mut |key, deser| {
         196  +
                                container.insert(key, {
         197  +
                                    let mut list = Vec::new();
         198  +
                                    deser.read_list(&SENDAUTOMATIONSIGNALINPUT_MEMBER_PAYLOAD_VALUE, &mut |deser| {
         199  +
                                        list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
         200  +
                                        Ok(())
         201  +
                                    })?;
         202  +
                                    list
         203  +
                                });
         204  +
                                Ok(())
         205  +
                            })?;
         206  +
                            container
         207  +
                        });
         208  +
                    }
         209  +
                }
         210  +
                _ => {}
         211  +
            }
         212  +
            Ok(())
         213  +
        })?;
         214  +
        builder.automation_execution_id = builder.automation_execution_id.or(Some(String::new()));
         215  +
        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
         216  +
    }
         217  +
}
         218  +
impl SendAutomationSignalInput {
         219  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         220  +
    pub fn deserialize_with_response(
         221  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         222  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         223  +
        _status: u16,
         224  +
        _body: &[u8],
         225  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         226  +
        Self::deserialize(deserializer)
         227  +
    }
         228  +
}
         229  +
impl SendAutomationSignalInput {
         230  +
    /// Creates a new builder-style object to manufacture [`SendAutomationSignalInput`](crate::operation::send_automation_signal::SendAutomationSignalInput).
         231  +
    pub fn builder() -> crate::operation::send_automation_signal::builders::SendAutomationSignalInputBuilder {
         232  +
        crate::operation::send_automation_signal::builders::SendAutomationSignalInputBuilder::default()
         233  +
    }
         234  +
}
         235  +
         236  +
/// A builder for [`SendAutomationSignalInput`](crate::operation::send_automation_signal::SendAutomationSignalInput).
         237  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         238  +
#[non_exhaustive]
         239  +
pub struct SendAutomationSignalInputBuilder {
         240  +
    pub(crate) automation_execution_id: ::std::option::Option<::std::string::String>,
         241  +
    pub(crate) signal_type: ::std::option::Option<crate::types::SignalType>,
         242  +
    pub(crate) payload: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         243  +
}
         244  +
impl SendAutomationSignalInputBuilder {
         245  +
    /// <p>The unique identifier for an existing Automation execution that you want to send the signal to.</p>
         246  +
    /// This field is required.
         247  +
    pub fn automation_execution_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         248  +
        self.automation_execution_id = ::std::option::Option::Some(input.into());
         249  +
        self
         250  +
    }
         251  +
    /// <p>The unique identifier for an existing Automation execution that you want to send the signal to.</p>
         252  +
    pub fn set_automation_execution_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         253  +
        self.automation_execution_id = input;
         254  +
        self
         255  +
    }
         256  +
    /// <p>The unique identifier for an existing Automation execution that you want to send the signal to.</p>
         257  +
    pub fn get_automation_execution_id(&self) -> &::std::option::Option<::std::string::String> {
         258  +
        &self.automation_execution_id
         259  +
    }
         260  +
    /// <p>The type of signal to send to an Automation execution.</p>
         261  +
    /// This field is required.
         262  +
    pub fn signal_type(mut self, input: crate::types::SignalType) -> Self {
         263  +
        self.signal_type = ::std::option::Option::Some(input);
         264  +
        self
         265  +
    }
         266  +
    /// <p>The type of signal to send to an Automation execution.</p>
         267  +
    pub fn set_signal_type(mut self, input: ::std::option::Option<crate::types::SignalType>) -> Self {
         268  +
        self.signal_type = input;
         269  +
        self
         270  +
    }
         271  +
    /// <p>The type of signal to send to an Automation execution.</p>
         272  +
    pub fn get_signal_type(&self) -> &::std::option::Option<crate::types::SignalType> {
         273  +
        &self.signal_type
         274  +
    }
         275  +
    /// Adds a key-value pair to `payload`.
         276  +
    ///
         277  +
    /// To override the contents of this collection use [`set_payload`](Self::set_payload).
         278  +
    ///
         279  +
    /// <p>The data sent with the signal. The data schema depends on the type of signal used in the request.</p>
         280  +
    /// <p>For <code>Approve</code> and <code>Reject</code> signal types, the payload is an optional comment that you can send with the signal type. For example:</p>
         281  +
    /// <p><code>Comment="Looks good"</code></p>
         282  +
    /// <p>For <code>StartStep</code> and <code>Resume</code> signal types, you must send the name of the Automation step to start or resume as the payload. For example:</p>
         283  +
    /// <p><code>StepName="step1"</code></p>
         284  +
    /// <p>For the <code>StopStep</code> signal type, you must send the step execution ID as the payload. For example:</p>
         285  +
    /// <p><code>StepExecutionId="97fff367-fc5a-4299-aed8-0123456789ab"</code></p>
         286  +
    pub fn payload(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
         287  +
        let mut hash_map = self.payload.unwrap_or_default();
         288  +
        hash_map.insert(k.into(), v);
         289  +
        self.payload = ::std::option::Option::Some(hash_map);
         290  +
        self
         291  +
    }
         292  +
    /// <p>The data sent with the signal. The data schema depends on the type of signal used in the request.</p>
         293  +
    /// <p>For <code>Approve</code> and <code>Reject</code> signal types, the payload is an optional comment that you can send with the signal type. For example:</p>
         294  +
    /// <p><code>Comment="Looks good"</code></p>
         295  +
    /// <p>For <code>StartStep</code> and <code>Resume</code> signal types, you must send the name of the Automation step to start or resume as the payload. For example:</p>
         296  +
    /// <p><code>StepName="step1"</code></p>
         297  +
    /// <p>For the <code>StopStep</code> signal type, you must send the step execution ID as the payload. For example:</p>
         298  +
    /// <p><code>StepExecutionId="97fff367-fc5a-4299-aed8-0123456789ab"</code></p>
         299  +
    pub fn set_payload(
         300  +
        mut self,
         301  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         302  +
    ) -> Self {
         303  +
        self.payload = input;
         304  +
        self
         305  +
    }
         306  +
    /// <p>The data sent with the signal. The data schema depends on the type of signal used in the request.</p>
         307  +
    /// <p>For <code>Approve</code> and <code>Reject</code> signal types, the payload is an optional comment that you can send with the signal type. For example:</p>
         308  +
    /// <p><code>Comment="Looks good"</code></p>
         309  +
    /// <p>For <code>StartStep</code> and <code>Resume</code> signal types, you must send the name of the Automation step to start or resume as the payload. For example:</p>
         310  +
    /// <p><code>StepName="step1"</code></p>
         311  +
    /// <p>For the <code>StopStep</code> signal type, you must send the step execution ID as the payload. For example:</p>
         312  +
    /// <p><code>StepExecutionId="97fff367-fc5a-4299-aed8-0123456789ab"</code></p>
         313  +
    pub fn get_payload(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         314  +
        &self.payload
         315  +
    }
         316  +
    /// Consumes the builder and constructs a [`SendAutomationSignalInput`](crate::operation::send_automation_signal::SendAutomationSignalInput).
         317  +
    pub fn build(
         318  +
        self,
         319  +
    ) -> ::std::result::Result<crate::operation::send_automation_signal::SendAutomationSignalInput, ::aws_smithy_types::error::operation::BuildError>
         320  +
    {
         321  +
        ::std::result::Result::Ok(crate::operation::send_automation_signal::SendAutomationSignalInput {
         322  +
            automation_execution_id: self.automation_execution_id,
         323  +
            signal_type: self.signal_type,
         324  +
            payload: self.payload,
         325  +
        })
         326  +
    }
         327  +
}

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

@@ -0,1 +0,122 @@
           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 SendAutomationSignalOutput {
           6  +
    _request_id: Option<String>,
           7  +
}
           8  +
static SENDAUTOMATIONSIGNALOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
           9  +
    ::aws_smithy_schema::ShapeId::from_parts("synthetic#request_id", "synthetic", "request_id"),
          10  +
    ::aws_smithy_schema::ShapeType::String,
          11  +
    "request_id",
          12  +
    0,
          13  +
)
          14  +
.with_http_header("x-amzn-requestid");
          15  +
static SENDAUTOMATIONSIGNALOUTPUT_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          16  +
    ::aws_smithy_schema::ShapeId::from_parts(
          17  +
        "com.amazonaws.ssm.synthetic#SendAutomationSignalOutput",
          18  +
        "com.amazonaws.ssm.synthetic",
          19  +
        "SendAutomationSignalOutput",
          20  +
    ),
          21  +
    ::aws_smithy_schema::ShapeType::Structure,
          22  +
    &[&SENDAUTOMATIONSIGNALOUTPUT_MEMBER__REQUEST_ID],
          23  +
)
          24  +
.with_original_name("SendAutomationSignalResult");
          25  +
impl SendAutomationSignalOutput {
          26  +
    /// The schema for this shape.
          27  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &SENDAUTOMATIONSIGNALOUTPUT_SCHEMA;
          28  +
}
          29  +
impl ::aws_smithy_schema::serde::SerializableStruct for SendAutomationSignalOutput {
          30  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          31  +
    fn serialize_members(
          32  +
        &self,
          33  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          34  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          35  +
        Ok(())
          36  +
    }
          37  +
}
          38  +
impl SendAutomationSignalOutput {
          39  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          40  +
    pub fn deserialize(
          41  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          42  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          43  +
        #[allow(unused_variables, unused_mut)]
          44  +
        let mut builder = Self::builder();
          45  +
        #[allow(
          46  +
            unused_variables,
          47  +
            unreachable_code,
          48  +
            clippy::single_match,
          49  +
            clippy::match_single_binding,
          50  +
            clippy::diverging_sub_expression
          51  +
        )]
          52  +
        deserializer.read_struct(&SENDAUTOMATIONSIGNALOUTPUT_SCHEMA, &mut |member, deser| {
          53  +
            match member.member_index() {
          54  +
                Some(0) => {
          55  +
                    builder._request_id = Some(deser.read_string(member)?);
          56  +
                }
          57  +
                _ => {}
          58  +
            }
          59  +
            Ok(())
          60  +
        })?;
          61  +
        Ok(builder.build())
          62  +
    }
          63  +
}
          64  +
impl SendAutomationSignalOutput {
          65  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          66  +
    /// Header-bound members are read directly from headers, avoiding runtime
          67  +
    /// member iteration overhead. Body members are read via the deserializer.
          68  +
    pub fn deserialize_with_response(
          69  +
        _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          70  +
        headers: &::aws_smithy_runtime_api::http::Headers,
          71  +
        _status: u16,
          72  +
        _body: &[u8],
          73  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          74  +
        #[allow(unused_variables, unused_mut)]
          75  +
        let mut builder = Self::builder();
          76  +
        if let Some(val) = headers.get("x-amzn-requestid") {
          77  +
            builder._request_id = Some(val.to_string());
          78  +
        }
          79  +
        Ok(builder.build())
          80  +
    }
          81  +
}
          82  +
impl ::aws_types::request_id::RequestId for SendAutomationSignalOutput {
          83  +
    fn request_id(&self) -> Option<&str> {
          84  +
        self._request_id.as_deref()
          85  +
    }
          86  +
}
          87  +
impl SendAutomationSignalOutput {
          88  +
    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
          89  +
        self._request_id = request_id;
          90  +
        self
          91  +
    }
          92  +
}
          93  +
impl SendAutomationSignalOutput {
          94  +
    /// Creates a new builder-style object to manufacture [`SendAutomationSignalOutput`](crate::operation::send_automation_signal::SendAutomationSignalOutput).
          95  +
    pub fn builder() -> crate::operation::send_automation_signal::builders::SendAutomationSignalOutputBuilder {
          96  +
        crate::operation::send_automation_signal::builders::SendAutomationSignalOutputBuilder::default()
          97  +
    }
          98  +
}
          99  +
         100  +
/// A builder for [`SendAutomationSignalOutput`](crate::operation::send_automation_signal::SendAutomationSignalOutput).
         101  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         102  +
#[non_exhaustive]
         103  +
pub struct SendAutomationSignalOutputBuilder {
         104  +
    _request_id: Option<String>,
         105  +
}
         106  +
impl SendAutomationSignalOutputBuilder {
         107  +
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
         108  +
        self._request_id = Some(request_id.into());
         109  +
        self
         110  +
    }
         111  +
         112  +
    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
         113  +
        self._request_id = request_id;
         114  +
        self
         115  +
    }
         116  +
    /// Consumes the builder and constructs a [`SendAutomationSignalOutput`](crate::operation::send_automation_signal::SendAutomationSignalOutput).
         117  +
    pub fn build(self) -> crate::operation::send_automation_signal::SendAutomationSignalOutput {
         118  +
        crate::operation::send_automation_signal::SendAutomationSignalOutput {
         119  +
            _request_id: self._request_id,
         120  +
        }
         121  +
    }
         122  +
}

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

@@ -0,1 +0,179 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub use crate::operation::send_automation_signal::_send_automation_signal_input::SendAutomationSignalInputBuilder;
           3  +
           4  +
pub use crate::operation::send_automation_signal::_send_automation_signal_output::SendAutomationSignalOutputBuilder;
           5  +
           6  +
impl crate::operation::send_automation_signal::builders::SendAutomationSignalInputBuilder {
           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::send_automation_signal::SendAutomationSignalOutput,
          13  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          14  +
            crate::operation::send_automation_signal::SendAutomationSignalError,
          15  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          16  +
        >,
          17  +
    > {
          18  +
        let mut fluent_builder = client.send_automation_signal();
          19  +
        fluent_builder.inner = self;
          20  +
        fluent_builder.send().await
          21  +
    }
          22  +
}
          23  +
/// Fluent builder constructing a request to `SendAutomationSignal`.
          24  +
///
          25  +
/// <p>Sends a signal to an Automation execution to change the current behavior or status of the execution.</p>
          26  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          27  +
pub struct SendAutomationSignalFluentBuilder {
          28  +
    handle: ::std::sync::Arc<crate::client::Handle>,
          29  +
    inner: crate::operation::send_automation_signal::builders::SendAutomationSignalInputBuilder,
          30  +
    config_override: ::std::option::Option<crate::config::Builder>,
          31  +
}
          32  +
impl
          33  +
    crate::client::customize::internal::CustomizableSend<
          34  +
        crate::operation::send_automation_signal::SendAutomationSignalOutput,
          35  +
        crate::operation::send_automation_signal::SendAutomationSignalError,
          36  +
    > for SendAutomationSignalFluentBuilder
          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::send_automation_signal::SendAutomationSignalOutput,
          44  +
            crate::operation::send_automation_signal::SendAutomationSignalError,
          45  +
        >,
          46  +
    > {
          47  +
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
          48  +
    }
          49  +
}
          50  +
impl SendAutomationSignalFluentBuilder {
          51  +
    /// Creates a new `SendAutomationSignalFluentBuilder`.
          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 SendAutomationSignal as a reference.
          60  +
    pub fn as_input(&self) -> &crate::operation::send_automation_signal::builders::SendAutomationSignalInputBuilder {
          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::send_automation_signal::SendAutomationSignalOutput,
          75  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          76  +
            crate::operation::send_automation_signal::SendAutomationSignalError,
          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::send_automation_signal::SendAutomationSignal::operation_runtime_plugins(
          85  +
            self.handle.runtime_plugins.clone(),
          86  +
            &self.handle.conf,
          87  +
            self.config_override,
          88  +
        );
          89  +
        crate::operation::send_automation_signal::SendAutomationSignal::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::send_automation_signal::SendAutomationSignalOutput,
          97  +
        crate::operation::send_automation_signal::SendAutomationSignalError,
          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>The unique identifier for an existing Automation execution that you want to send the signal to.</p>
         112  +
    pub fn automation_execution_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         113  +
        self.inner = self.inner.automation_execution_id(input.into());
         114  +
        self
         115  +
    }
         116  +
    /// <p>The unique identifier for an existing Automation execution that you want to send the signal to.</p>
         117  +
    pub fn set_automation_execution_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         118  +
        self.inner = self.inner.set_automation_execution_id(input);
         119  +
        self
         120  +
    }
         121  +
    /// <p>The unique identifier for an existing Automation execution that you want to send the signal to.</p>
         122  +
    pub fn get_automation_execution_id(&self) -> &::std::option::Option<::std::string::String> {
         123  +
        self.inner.get_automation_execution_id()
         124  +
    }
         125  +
    /// <p>The type of signal to send to an Automation execution.</p>
         126  +
    pub fn signal_type(mut self, input: crate::types::SignalType) -> Self {
         127  +
        self.inner = self.inner.signal_type(input);
         128  +
        self
         129  +
    }
         130  +
    /// <p>The type of signal to send to an Automation execution.</p>
         131  +
    pub fn set_signal_type(mut self, input: ::std::option::Option<crate::types::SignalType>) -> Self {
         132  +
        self.inner = self.inner.set_signal_type(input);
         133  +
        self
         134  +
    }
         135  +
    /// <p>The type of signal to send to an Automation execution.</p>
         136  +
    pub fn get_signal_type(&self) -> &::std::option::Option<crate::types::SignalType> {
         137  +
        self.inner.get_signal_type()
         138  +
    }
         139  +
    ///
         140  +
    /// Adds a key-value pair to `Payload`.
         141  +
    ///
         142  +
    /// To override the contents of this collection use [`set_payload`](Self::set_payload).
         143  +
    ///
         144  +
    /// <p>The data sent with the signal. The data schema depends on the type of signal used in the request.</p>
         145  +
    /// <p>For <code>Approve</code> and <code>Reject</code> signal types, the payload is an optional comment that you can send with the signal type. For example:</p>
         146  +
    /// <p><code>Comment="Looks good"</code></p>
         147  +
    /// <p>For <code>StartStep</code> and <code>Resume</code> signal types, you must send the name of the Automation step to start or resume as the payload. For example:</p>
         148  +
    /// <p><code>StepName="step1"</code></p>
         149  +
    /// <p>For the <code>StopStep</code> signal type, you must send the step execution ID as the payload. For example:</p>
         150  +
    /// <p><code>StepExecutionId="97fff367-fc5a-4299-aed8-0123456789ab"</code></p>
         151  +
    pub fn payload(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
         152  +
        self.inner = self.inner.payload(k.into(), v);
         153  +
        self
         154  +
    }
         155  +
    /// <p>The data sent with the signal. The data schema depends on the type of signal used in the request.</p>
         156  +
    /// <p>For <code>Approve</code> and <code>Reject</code> signal types, the payload is an optional comment that you can send with the signal type. For example:</p>
         157  +
    /// <p><code>Comment="Looks good"</code></p>
         158  +
    /// <p>For <code>StartStep</code> and <code>Resume</code> signal types, you must send the name of the Automation step to start or resume as the payload. For example:</p>
         159  +
    /// <p><code>StepName="step1"</code></p>
         160  +
    /// <p>For the <code>StopStep</code> signal type, you must send the step execution ID as the payload. For example:</p>
         161  +
    /// <p><code>StepExecutionId="97fff367-fc5a-4299-aed8-0123456789ab"</code></p>
         162  +
    pub fn set_payload(
         163  +
        mut self,
         164  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         165  +
    ) -> Self {
         166  +
        self.inner = self.inner.set_payload(input);
         167  +
        self
         168  +
    }
         169  +
    /// <p>The data sent with the signal. The data schema depends on the type of signal used in the request.</p>
         170  +
    /// <p>For <code>Approve</code> and <code>Reject</code> signal types, the payload is an optional comment that you can send with the signal type. For example:</p>
         171  +
    /// <p><code>Comment="Looks good"</code></p>
         172  +
    /// <p>For <code>StartStep</code> and <code>Resume</code> signal types, you must send the name of the Automation step to start or resume as the payload. For example:</p>
         173  +
    /// <p><code>StepName="step1"</code></p>
         174  +
    /// <p>For the <code>StopStep</code> signal type, you must send the step execution ID as the payload. For example:</p>
         175  +
    /// <p><code>StepExecutionId="97fff367-fc5a-4299-aed8-0123456789ab"</code></p>
         176  +
    pub fn get_payload(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         177  +
        self.inner.get_payload()
         178  +
    }
         179  +
}

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

@@ -0,1 +0,973 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/// Orchestration and serialization glue logic for `SendCommand`.
           3  +
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
           4  +
#[non_exhaustive]
           5  +
pub struct SendCommand;
           6  +
impl SendCommand {
           7  +
    /// Creates a new `SendCommand`
           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::send_command::SendCommandInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = crate::operation::send_command::SendCommandOutput::SCHEMA;
          15  +
    pub(crate) async fn orchestrate(
          16  +
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
          17  +
        input: crate::operation::send_command::SendCommandInput,
          18  +
    ) -> ::std::result::Result<
          19  +
        crate::operation::send_command::SendCommandOutput,
          20  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          21  +
            crate::operation::send_command::SendCommandError,
          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::send_command::SendCommandError>()
          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::send_command::SendCommandOutput>()
          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::send_command::SendCommandInput,
          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", "SendCommand", 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.SendCommand",
          63  +
                "rpc.service" = "SSM",
          64  +
                "rpc.method" = "SendCommand",
          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::DuplicateInstanceId::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::DuplicateInstanceId::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::DuplicateInstanceId::deserialize(d)?))
         109  +
                        },
         110  +
                    )
         111  +
.insert_error_shape(
         112  +
                        crate::types::error::InternalServerError::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::InternalServerError::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::InternalServerError::deserialize(d)?))
         118  +
                        },
         119  +
                    )
         120  +
.insert_error_shape(
         121  +
                        crate::types::error::InvalidDocument::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::InvalidDocument::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::InvalidDocument::deserialize(d)?))
         127  +
                        },
         128  +
                    )
         129  +
.insert_error_shape(
         130  +
                        crate::types::error::InvalidDocumentVersion::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::InvalidDocumentVersion::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::InvalidDocumentVersion::deserialize(d)?))
         136  +
                        },
         137  +
                    )
         138  +
.insert_error_shape(
         139  +
                        crate::types::error::InvalidInstanceId::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::InvalidInstanceId::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::InvalidInstanceId::deserialize(d)?))
         145  +
                        },
         146  +
                    )
         147  +
.insert_error_shape(
         148  +
                        crate::types::error::InvalidNotificationConfig::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::InvalidNotificationConfig::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::InvalidNotificationConfig::deserialize(d)?))
         154  +
                        },
         155  +
                    )
         156  +
.insert_error_shape(
         157  +
                        crate::types::error::InvalidOutputFolder::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::InvalidOutputFolder::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::InvalidOutputFolder::deserialize(d)?))
         163  +
                        },
         164  +
                    )
         165  +
.insert_error_shape(
         166  +
                        crate::types::error::InvalidParameters::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::InvalidParameters::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::InvalidParameters::deserialize(d)?))
         172  +
                        },
         173  +
                    )
         174  +
.insert_error_shape(
         175  +
                        crate::types::error::InvalidRole::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::InvalidRole::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::InvalidRole::deserialize(d)?))
         181  +
                        },
         182  +
                    )
         183  +
.insert_error_shape(
         184  +
                        crate::types::error::MaxDocumentSizeExceeded::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::MaxDocumentSizeExceeded::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::MaxDocumentSizeExceeded::deserialize(d)?))
         190  +
                        },
         191  +
                    )
         192  +
.insert_error_shape(
         193  +
                        crate::types::error::UnsupportedPlatformType::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::UnsupportedPlatformType::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::UnsupportedPlatformType::deserialize(d)?))
         199  +
                        },
         200  +
                    )
         201  +
                            .build()
         202  +
    });
         203  +
}
         204  +
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for SendCommand {
         205  +
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
         206  +
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("SendCommand");
         207  +
         208  +
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
         209  +
            SendCommandRequestSerializer,
         210  +
        ));
         211  +
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
         212  +
            SendCommandResponseDeserializer,
         213  +
        ));
         214  +
         215  +
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
         216  +
            crate::config::auth::Params::builder()
         217  +
                .operation_name("SendCommand")
         218  +
                .build()
         219  +
                .expect("required fields set"),
         220  +
        ));
         221  +
         222  +
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::SensitiveOutput);
         223  +
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("SendCommand", "SSM"));
         224  +
        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
         225  +
        signing_options.double_uri_encode = true;
         226  +
        signing_options.content_sha256_header = false;
         227  +
        signing_options.normalize_uri_path = true;
         228  +
        signing_options.payload_override = None;
         229  +
         230  +
        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
         231  +
            signing_options,
         232  +
            ..::std::default::Default::default()
         233  +
        });
         234  +
         235  +
        ::std::option::Option::Some(cfg.freeze())
         236  +
    }
         237  +
         238  +
    fn runtime_components(
         239  +
        &self,
         240  +
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
         241  +
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
         242  +
        #[allow(unused_mut)]
         243  +
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("SendCommand")
         244  +
            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
         245  +
                SendCommandTelemetryInputCaptureInterceptor,
         246  +
            ))
         247  +
            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
         248  +
                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
         249  +
            ))
         250  +
            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
         251  +
                SendCommandEndpointParamsInterceptor,
         252  +
            ))
         253  +
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
         254  +
                crate::operation::send_command::SendCommandError,
         255  +
            >::new())
         256  +
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
         257  +
                crate::operation::send_command::SendCommandError,
         258  +
            >::new())
         259  +
            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
         260  +
                crate::operation::send_command::SendCommandError,
         261  +
            >::new())
         262  +
            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
         263  +
                crate::operation::send_command::SendCommandError,
         264  +
            >::new());
         265  +
         266  +
        ::std::borrow::Cow::Owned(rcb)
         267  +
    }
         268  +
}
         269  +
         270  +
#[derive(Debug)]
         271  +
struct SendCommandTelemetryInputCaptureInterceptor;
         272  +
         273  +
#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
         274  +
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for SendCommandTelemetryInputCaptureInterceptor {
         275  +
    fn name(&self) -> &'static str {
         276  +
        "SendCommandTelemetryInputCaptureInterceptor"
         277  +
    }
         278  +
         279  +
    fn read_before_execution(
         280  +
        &self,
         281  +
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
         282  +
            '_,
         283  +
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
         284  +
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
         285  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
         286  +
        >,
         287  +
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         288  +
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
         289  +
        // Nothing to do unless the customer opted in by naming members to record.
         290  +
        let ::std::option::Option::Some(requested) = cfg
         291  +
            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
         292  +
            .filter(|r| !r.is_empty())
         293  +
        else {
         294  +
            return ::std::result::Result::Ok(());
         295  +
        };
         296  +
         297  +
        let ::std::option::Option::Some(input) = context.input().downcast_ref::<SendCommandInput>() else {
         298  +
            // A mismatched input is not this interceptor's concern; skip quietly.
         299  +
            return ::std::result::Result::Ok(());
         300  +
        };
         301  +
         302  +
        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
         303  +
        if requested.should_capture("DocumentName") {
         304  +
            if let ::std::option::Option::Some(value) = input.document_name.as_deref() {
         305  +
                captured.insert("DocumentName", value);
         306  +
            }
         307  +
        }
         308  +
        if requested.should_capture("DocumentVersion") {
         309  +
            if let ::std::option::Option::Some(value) = input.document_version.as_deref() {
         310  +
                captured.insert("DocumentVersion", value);
         311  +
            }
         312  +
        }
         313  +
        if requested.should_capture("DocumentHash") {
         314  +
            if let ::std::option::Option::Some(value) = input.document_hash.as_deref() {
         315  +
                captured.insert("DocumentHash", value);
         316  +
            }
         317  +
        }
         318  +
        if requested.should_capture("Comment") {
         319  +
            if let ::std::option::Option::Some(value) = input.comment.as_deref() {
         320  +
                captured.insert("Comment", value);
         321  +
            }
         322  +
        }
         323  +
        if requested.should_capture("OutputS3Region") {
         324  +
            if let ::std::option::Option::Some(value) = input.output_s3_region.as_deref() {
         325  +
                captured.insert("OutputS3Region", value);
         326  +
            }
         327  +
        }
         328  +
        if requested.should_capture("OutputS3BucketName") {
         329  +
            if let ::std::option::Option::Some(value) = input.output_s3_bucket_name.as_deref() {
         330  +
                captured.insert("OutputS3BucketName", value);
         331  +
            }
         332  +
        }
         333  +
        if requested.should_capture("OutputS3KeyPrefix") {
         334  +
            if let ::std::option::Option::Some(value) = input.output_s3_key_prefix.as_deref() {
         335  +
                captured.insert("OutputS3KeyPrefix", value);
         336  +
            }
         337  +
        }
         338  +
        if requested.should_capture("MaxConcurrency") {
         339  +
            if let ::std::option::Option::Some(value) = input.max_concurrency.as_deref() {
         340  +
                captured.insert("MaxConcurrency", value);
         341  +
            }
         342  +
        }
         343  +
        if requested.should_capture("MaxErrors") {
         344  +
            if let ::std::option::Option::Some(value) = input.max_errors.as_deref() {
         345  +
                captured.insert("MaxErrors", value);
         346  +
            }
         347  +
        }
         348  +
        if requested.should_capture("ServiceRoleArn") {
         349  +
            if let ::std::option::Option::Some(value) = input.service_role_arn.as_deref() {
         350  +
                captured.insert("ServiceRoleArn", value);
         351  +
            }
         352  +
        }
         353  +
         354  +
        cfg.interceptor_state().store_put(captured);
         355  +
        ::std::result::Result::Ok(())
         356  +
    }
         357  +
}
         358  +
#[derive(Debug)]
         359  +
struct SendCommandResponseDeserializer;
         360  +
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for SendCommandResponseDeserializer {
         361  +
    fn deserialize_nonstreaming_with_config(
         362  +
        &self,
         363  +
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         364  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
         365  +
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
         366  +
        let (success, status) = (response.status().is_success(), response.status().as_u16());
         367  +
        // Load body and headers BEFORE BeforeParseResponse so customizations
         368  +
        // (e.g., S3's `body_is_error` check that detects errors returned with
         369  +
        // HTTP 200) can inspect them. The legacy non-streaming path also
         370  +
        // loads `body` before firing this hook.
         371  +
        let body = response.body().bytes().expect("body loaded");
         372  +
        let headers = response.headers();
         373  +
        #[allow(unused_mut)]
         374  +
        let mut force_error = false;
         375  +
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
         376  +
        if !success && status != 200 || force_error {
         377  +
            let protocol = _cfg
         378  +
                .load::<::aws_smithy_schema::protocol::SharedClientProtocol>()
         379  +
                .expect("a SharedClientProtocol is required");
         380  +
            #[allow(unused_mut)]
         381  +
            let mut generic_builder = protocol.parse_error_metadata(response, _cfg).map_err(|e| {
         382  +
                ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(::aws_smithy_runtime_api::box_error::BoxError::from(e))
         383  +
            })?;
         384  +
            generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, headers);
         385  +
            let generic = generic_builder.build();
         386  +
            let error_code = match generic.code() {
         387  +
                ::std::option::Option::Some(code) => code,
         388  +
                ::std::option::Option::None => {
         389  +
                    return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         390  +
                        ::aws_smithy_runtime_api::box_error::BoxError::from(crate::operation::send_command::SendCommandError::unhandled(generic)),
         391  +
                    ))
         392  +
                }
         393  +
            };
         394  +
            let _error_message = generic.message().map(|msg| msg.to_owned());
         395  +
            let err = match error_code {
         396  +
                "DuplicateInstanceId" => crate::operation::send_command::SendCommandError::DuplicateInstanceId({
         397  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         398  +
                        crate::types::error::DuplicateInstanceId::deserialize_with_response(
         399  +
                            &mut *deser,
         400  +
                            response.headers(),
         401  +
                            response.status().into(),
         402  +
                            body,
         403  +
                        )
         404  +
                    }) {
         405  +
                        ::std::result::Result::Ok(val) => val,
         406  +
                        ::std::result::Result::Err(e) => {
         407  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         408  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         409  +
                            ))
         410  +
                        }
         411  +
                    };
         412  +
                    tmp.meta = generic;
         413  +
                    if tmp.message.is_none() {
         414  +
                        tmp.message = _error_message;
         415  +
                    }
         416  +
                    tmp
         417  +
                }),
         418  +
                "InternalServerError" => crate::operation::send_command::SendCommandError::InternalServerError({
         419  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         420  +
                        crate::types::error::InternalServerError::deserialize_with_response(
         421  +
                            &mut *deser,
         422  +
                            response.headers(),
         423  +
                            response.status().into(),
         424  +
                            body,
         425  +
                        )
         426  +
                    }) {
         427  +
                        ::std::result::Result::Ok(val) => val,
         428  +
                        ::std::result::Result::Err(e) => {
         429  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         430  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         431  +
                            ))
         432  +
                        }
         433  +
                    };
         434  +
                    tmp.meta = generic;
         435  +
                    if tmp.message.is_none() {
         436  +
                        tmp.message = _error_message;
         437  +
                    }
         438  +
                    tmp
         439  +
                }),
         440  +
                "InvalidDocument" => crate::operation::send_command::SendCommandError::InvalidDocument({
         441  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         442  +
                        crate::types::error::InvalidDocument::deserialize_with_response(
         443  +
                            &mut *deser,
         444  +
                            response.headers(),
         445  +
                            response.status().into(),
         446  +
                            body,
         447  +
                        )
         448  +
                    }) {
         449  +
                        ::std::result::Result::Ok(val) => val,
         450  +
                        ::std::result::Result::Err(e) => {
         451  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         452  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         453  +
                            ))
         454  +
                        }
         455  +
                    };
         456  +
                    tmp.meta = generic;
         457  +
                    if tmp.message.is_none() {
         458  +
                        tmp.message = _error_message;
         459  +
                    }
         460  +
                    tmp
         461  +
                }),
         462  +
                "InvalidDocumentVersion" => crate::operation::send_command::SendCommandError::InvalidDocumentVersion({
         463  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         464  +
                        crate::types::error::InvalidDocumentVersion::deserialize_with_response(
         465  +
                            &mut *deser,
         466  +
                            response.headers(),
         467  +
                            response.status().into(),
         468  +
                            body,
         469  +
                        )
         470  +
                    }) {
         471  +
                        ::std::result::Result::Ok(val) => val,
         472  +
                        ::std::result::Result::Err(e) => {
         473  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         474  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         475  +
                            ))
         476  +
                        }
         477  +
                    };
         478  +
                    tmp.meta = generic;
         479  +
                    if tmp.message.is_none() {
         480  +
                        tmp.message = _error_message;
         481  +
                    }
         482  +
                    tmp
         483  +
                }),
         484  +
                "InvalidInstanceId" => crate::operation::send_command::SendCommandError::InvalidInstanceId({
         485  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         486  +
                        crate::types::error::InvalidInstanceId::deserialize_with_response(
         487  +
                            &mut *deser,
         488  +
                            response.headers(),
         489  +
                            response.status().into(),
         490  +
                            body,
         491  +
                        )
         492  +
                    }) {
         493  +
                        ::std::result::Result::Ok(val) => val,
         494  +
                        ::std::result::Result::Err(e) => {
         495  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         496  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         497  +
                            ))
         498  +
                        }
         499  +
                    };
         500  +
                    tmp.meta = generic;
         501  +
                    if tmp.message.is_none() {
         502  +
                        tmp.message = _error_message;
         503  +
                    }
         504  +
                    tmp
         505  +
                }),
         506  +
                "InvalidNotificationConfig" => crate::operation::send_command::SendCommandError::InvalidNotificationConfig({
         507  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         508  +
                        crate::types::error::InvalidNotificationConfig::deserialize_with_response(
         509  +
                            &mut *deser,
         510  +
                            response.headers(),
         511  +
                            response.status().into(),
         512  +
                            body,
         513  +
                        )
         514  +
                    }) {
         515  +
                        ::std::result::Result::Ok(val) => val,
         516  +
                        ::std::result::Result::Err(e) => {
         517  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         518  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         519  +
                            ))
         520  +
                        }
         521  +
                    };
         522  +
                    tmp.meta = generic;
         523  +
                    if tmp.message.is_none() {
         524  +
                        tmp.message = _error_message;
         525  +
                    }
         526  +
                    tmp
         527  +
                }),
         528  +
                "InvalidOutputFolder" => crate::operation::send_command::SendCommandError::InvalidOutputFolder({
         529  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         530  +
                        crate::types::error::InvalidOutputFolder::deserialize_with_response(
         531  +
                            &mut *deser,
         532  +
                            response.headers(),
         533  +
                            response.status().into(),
         534  +
                            body,
         535  +
                        )
         536  +
                    }) {
         537  +
                        ::std::result::Result::Ok(val) => val,
         538  +
                        ::std::result::Result::Err(e) => {
         539  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         540  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         541  +
                            ))
         542  +
                        }
         543  +
                    };
         544  +
                    tmp.meta = generic;
         545  +
                    if tmp.message.is_none() {
         546  +
                        tmp.message = _error_message;
         547  +
                    }
         548  +
                    tmp
         549  +
                }),
         550  +
                "InvalidParameters" => crate::operation::send_command::SendCommandError::InvalidParameters({
         551  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         552  +
                        crate::types::error::InvalidParameters::deserialize_with_response(
         553  +
                            &mut *deser,
         554  +
                            response.headers(),
         555  +
                            response.status().into(),
         556  +
                            body,
         557  +
                        )
         558  +
                    }) {
         559  +
                        ::std::result::Result::Ok(val) => val,
         560  +
                        ::std::result::Result::Err(e) => {
         561  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         562  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         563  +
                            ))
         564  +
                        }
         565  +
                    };
         566  +
                    tmp.meta = generic;
         567  +
                    if tmp.message.is_none() {
         568  +
                        tmp.message = _error_message;
         569  +
                    }
         570  +
                    tmp
         571  +
                }),
         572  +
                "InvalidRole" => crate::operation::send_command::SendCommandError::InvalidRole({
         573  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         574  +
                        crate::types::error::InvalidRole::deserialize_with_response(&mut *deser, response.headers(), response.status().into(), body)
         575  +
                    }) {
         576  +
                        ::std::result::Result::Ok(val) => val,
         577  +
                        ::std::result::Result::Err(e) => {
         578  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         579  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         580  +
                            ))
         581  +
                        }
         582  +
                    };
         583  +
                    tmp.meta = generic;
         584  +
                    if tmp.message.is_none() {
         585  +
                        tmp.message = _error_message;
         586  +
                    }
         587  +
                    tmp
         588  +
                }),
         589  +
                "MaxDocumentSizeExceeded" => crate::operation::send_command::SendCommandError::MaxDocumentSizeExceeded({
         590  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         591  +
                        crate::types::error::MaxDocumentSizeExceeded::deserialize_with_response(
         592  +
                            &mut *deser,
         593  +
                            response.headers(),
         594  +
                            response.status().into(),
         595  +
                            body,
         596  +
                        )
         597  +
                    }) {
         598  +
                        ::std::result::Result::Ok(val) => val,
         599  +
                        ::std::result::Result::Err(e) => {
         600  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         601  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         602  +
                            ))
         603  +
                        }
         604  +
                    };
         605  +
                    tmp.meta = generic;
         606  +
                    if tmp.message.is_none() {
         607  +
                        tmp.message = _error_message;
         608  +
                    }
         609  +
                    tmp
         610  +
                }),
         611  +
                "UnsupportedPlatformType" => crate::operation::send_command::SendCommandError::UnsupportedPlatformType({
         612  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         613  +
                        crate::types::error::UnsupportedPlatformType::deserialize_with_response(
         614  +
                            &mut *deser,
         615  +
                            response.headers(),
         616  +
                            response.status().into(),
         617  +
                            body,
         618  +
                        )
         619  +
                    }) {
         620  +
                        ::std::result::Result::Ok(val) => val,
         621  +
                        ::std::result::Result::Err(e) => {
         622  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         623  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         624  +
                            ))
         625  +
                        }
         626  +
                    };
         627  +
                    tmp.meta = generic;
         628  +
                    if tmp.message.is_none() {
         629  +
                        tmp.message = _error_message;
         630  +
                    }
         631  +
                    tmp
         632  +
                }),
         633  +
                _ => {
         634  +
                    // Registry-backed, operation-scoped reification of an error whose
         635  +
                    // code this operation does not model directly: the operation's own
         636  +
                    // error registry is consulted first, then the lookup widens to the
         637  +
                    // service-wide error registry. On a hit, the reified error is attached
         638  +
                    // as the source of the returned unhandled error while its metadata
         639  +
                    // (code, message, request id) is preserved; on a miss the generic
         640  +
                    // error is returned unchanged.
         641  +
                    match protocol
         642  +
                        .deserialize_error_response(response, _cfg)
         643  +
                        .ok()
         644  +
                        .and_then(|mut deser| {
         645  +
                            ::aws_smithy_schema::registry::reify_error(
         646  +
                                crate::operation::send_command::error_registry::REGISTRY
         647  +
                                    .or(&crate::error_type_registry::REGISTRY),
         648  +
                                error_code,
         649  +
                                &mut *deser,
         650  +
                            )
         651  +
                        }) {
         652  +
                        ::std::option::Option::Some(source) => <crate::operation::send_command::SendCommandError as ::aws_smithy_runtime_api::client::result::CreateUnhandledError>::create_unhandled_error(source, ::std::option::Option::Some(generic)),
         653  +
                        ::std::option::Option::None => crate::operation::send_command::SendCommandError::generic(generic),
         654  +
                    }
         655  +
                }
         656  +
            };
         657  +
            ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::operation(
         658  +
                ::aws_smithy_runtime_api::client::interceptors::context::Error::erase(err),
         659  +
            ))
         660  +
        } else {
         661  +
            let protocol = _cfg
         662  +
                .load::<::aws_smithy_schema::protocol::SharedClientProtocol>()
         663  +
                .expect("a SharedClientProtocol is required");
         664  +
            let mut deser = protocol.deserialize_response(response, SendCommand::OUTPUT_SCHEMA, _cfg).map_err(|e| {
         665  +
                ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(::aws_smithy_runtime_api::box_error::BoxError::from(e))
         666  +
            })?;
         667  +
            // body and headers are already in scope from the top of the function;
         668  +
            // alias `headers` as `_response_headers` so MutateOutput
         669  +
            // customizations have a stable name to read from.
         670  +
            let _response_headers = headers;
         671  +
            #[allow(unused_mut)]
         672  +
            let mut output = crate::operation::send_command::SendCommandOutput::deserialize_with_response(
         673  +
                &mut *deser,
         674  +
                _response_headers,
         675  +
                response.status().into(),
         676  +
                body,
         677  +
            )
         678  +
            .map_err(|e| {
         679  +
                ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(::aws_smithy_runtime_api::box_error::BoxError::from(e))
         680  +
            })?;
         681  +
            output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
         682  +
            ::std::result::Result::Ok(::aws_smithy_runtime_api::client::interceptors::context::Output::erase(output))
         683  +
        }
         684  +
    }
         685  +
}
         686  +
#[derive(Debug)]
         687  +
struct SendCommandRequestSerializer;
         688  +
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for SendCommandRequestSerializer {
         689  +
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
         690  +
    fn serialize_input(
         691  +
        &self,
         692  +
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
         693  +
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         694  +
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
         695  +
        let input = input
         696  +
            .downcast::<crate::operation::send_command::SendCommandInput>()
         697  +
            .expect("correct type");
         698  +
         699  +
        let protocol = _cfg
         700  +
            .load::<::aws_smithy_schema::protocol::SharedClientProtocol>()
         701  +
            .expect("a SharedClientProtocol is required");
         702  +
        let mut request = protocol
         703  +
            .serialize_request(&input, SendCommand::INPUT_SCHEMA, "/", _cfg)
         704  +
            .map_err(::aws_smithy_runtime_api::box_error::BoxError::from)?;
         705  +
         706  +
        return ::std::result::Result::Ok(request);
         707  +
    }
         708  +
}
         709  +
#[derive(Debug)]
         710  +
struct SendCommandEndpointParamsInterceptor;
         711  +
         712  +
#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
         713  +
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for SendCommandEndpointParamsInterceptor {
         714  +
    fn name(&self) -> &'static str {
         715  +
        "SendCommandEndpointParamsInterceptor"
         716  +
    }
         717  +
         718  +
    fn read_before_execution(
         719  +
        &self,
         720  +
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
         721  +
            '_,
         722  +
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
         723  +
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
         724  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
         725  +
        >,
         726  +
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         727  +
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
         728  +
        let _input = context
         729  +
            .input()
         730  +
            .downcast_ref::<SendCommandInput>()
         731  +
            .ok_or("failed to downcast to SendCommandInput")?;
         732  +
         733  +
        let params = crate::config::endpoint::Params::builder()
         734  +
            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
         735  +
            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
         736  +
            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
         737  +
            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
         738  +
            .build()
         739  +
            .map_err(|err| {
         740  +
                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
         741  +
            })?;
         742  +
        cfg.interceptor_state()
         743  +
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
         744  +
        ::std::result::Result::Ok(())
         745  +
    }
         746  +
}
         747  +
         748  +
// The get_* functions below are generated from JMESPath expressions in the
         749  +
// operationContextParams trait. They target the operation's input shape.
         750  +
         751  +
/// Error type for the `SendCommandError` operation.
         752  +
#[non_exhaustive]
         753  +
#[derive(::std::fmt::Debug)]
         754  +
pub enum SendCommandError {
         755  +
    /// <p>You can't specify a managed node ID in more than one association.</p>
         756  +
    DuplicateInstanceId(crate::types::error::DuplicateInstanceId),
         757  +
    /// <p>An error occurred on the server side.</p>
         758  +
    InternalServerError(crate::types::error::InternalServerError),
         759  +
    /// <p>The specified SSM document doesn't exist.</p>
         760  +
    InvalidDocument(crate::types::error::InvalidDocument),
         761  +
    /// <p>The document version isn't valid or doesn't exist.</p>
         762  +
    InvalidDocumentVersion(crate::types::error::InvalidDocumentVersion),
         763  +
    /// <p>The following problems can cause this exception:</p>
         764  +
    /// <ul>
         765  +
    /// <li>
         766  +
    /// <p>You don't have permission to access the managed node.</p></li>
         767  +
    /// <li>
         768  +
    /// <p>Amazon Web Services Systems Manager Agent (SSM Agent) isn't running. Verify that SSM Agent is running.</p></li>
         769  +
    /// <li>
         770  +
    /// <p>SSM Agent isn't registered with the SSM endpoint. Try reinstalling SSM Agent.</p></li>
         771  +
    /// <li>
         772  +
    /// <p>The managed node isn't in a valid state. Valid states are: <code>Running</code>, <code>Pending</code>, <code>Stopped</code>, and <code>Stopping</code>. Invalid states are: <code>Shutting-down</code> and <code>Terminated</code>.</p></li>
         773  +
    /// </ul>
         774  +
    InvalidInstanceId(crate::types::error::InvalidInstanceId),
         775  +
    /// <p>One or more configuration items isn't valid. Verify that a valid Amazon Resource Name (ARN) was provided for an Amazon Simple Notification Service topic.</p>
         776  +
    InvalidNotificationConfig(crate::types::error::InvalidNotificationConfig),
         777  +
    /// <p>The S3 bucket doesn't exist.</p>
         778  +
    InvalidOutputFolder(crate::types::error::InvalidOutputFolder),
         779  +
    /// <p>You must specify values for all required parameters in the Amazon Web Services Systems Manager document (SSM document). You can only supply values to parameters defined in the SSM document.</p>
         780  +
    InvalidParameters(crate::types::error::InvalidParameters),
         781  +
    /// <p>The role name can't contain invalid characters. Also verify that you specified an IAM role for notifications that includes the required trust policy. For information about configuring the IAM role for Run Command notifications, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring-sns-notifications.html">Monitoring Systems Manager status changes using Amazon SNS notifications</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         782  +
    InvalidRole(crate::types::error::InvalidRole),
         783  +
    /// <p>The size limit of a document is 64 KB.</p>
         784  +
    MaxDocumentSizeExceeded(crate::types::error::MaxDocumentSizeExceeded),
         785  +
    /// <p>The document doesn't support the platform type of the given managed node IDs. For example, you sent an document for a Windows managed node to a Linux node.</p>
         786  +
    UnsupportedPlatformType(crate::types::error::UnsupportedPlatformType),
         787  +
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
         788  +
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
         789  +
    variable wildcard pattern and check `.code()`:
         790  +
     \
         791  +
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
         792  +
     \
         793  +
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-SendCommandError) for what information is available for the error.")]
         794  +
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         795  +
}
         796  +
impl SendCommandError {
         797  +
    /// Creates the `SendCommandError::Unhandled` variant from any error type.
         798  +
    pub fn unhandled(
         799  +
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
         800  +
    ) -> Self {
         801  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         802  +
            source: err.into(),
         803  +
            meta: ::std::default::Default::default(),
         804  +
        })
         805  +
    }
         806  +
         807  +
    /// Creates the `SendCommandError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
         808  +
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
         809  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         810  +
            source: err.clone().into(),
         811  +
            meta: err,
         812  +
        })
         813  +
    }
         814  +
    ///
         815  +
    /// Returns error metadata, which includes the error code, message,
         816  +
    /// request ID, and potentially additional information.
         817  +
    ///
         818  +
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         819  +
        match self {
         820  +
            Self::DuplicateInstanceId(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         821  +
            Self::InternalServerError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         822  +
            Self::InvalidDocument(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         823  +
            Self::InvalidDocumentVersion(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         824  +
            Self::InvalidInstanceId(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         825  +
            Self::InvalidNotificationConfig(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         826  +
            Self::InvalidOutputFolder(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         827  +
            Self::InvalidParameters(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         828  +
            Self::InvalidRole(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         829  +
            Self::MaxDocumentSizeExceeded(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         830  +
            Self::UnsupportedPlatformType(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         831  +
            Self::Unhandled(e) => &e.meta,
         832  +
        }
         833  +
    }
         834  +
    /// Returns `true` if the error kind is `SendCommandError::DuplicateInstanceId`.
         835  +
    pub fn is_duplicate_instance_id(&self) -> bool {
         836  +
        matches!(self, Self::DuplicateInstanceId(_))
         837  +
    }
         838  +
    /// Returns `true` if the error kind is `SendCommandError::InternalServerError`.
         839  +
    pub fn is_internal_server_error(&self) -> bool {
         840  +
        matches!(self, Self::InternalServerError(_))
         841  +
    }
         842  +
    /// Returns `true` if the error kind is `SendCommandError::InvalidDocument`.
         843  +
    pub fn is_invalid_document(&self) -> bool {
         844  +
        matches!(self, Self::InvalidDocument(_))
         845  +
    }
         846  +
    /// Returns `true` if the error kind is `SendCommandError::InvalidDocumentVersion`.
         847  +
    pub fn is_invalid_document_version(&self) -> bool {
         848  +
        matches!(self, Self::InvalidDocumentVersion(_))
         849  +
    }
         850  +
    /// Returns `true` if the error kind is `SendCommandError::InvalidInstanceId`.
         851  +
    pub fn is_invalid_instance_id(&self) -> bool {
         852  +
        matches!(self, Self::InvalidInstanceId(_))
         853  +
    }
         854  +
    /// Returns `true` if the error kind is `SendCommandError::InvalidNotificationConfig`.
         855  +
    pub fn is_invalid_notification_config(&self) -> bool {
         856  +
        matches!(self, Self::InvalidNotificationConfig(_))
         857  +
    }
         858  +
    /// Returns `true` if the error kind is `SendCommandError::InvalidOutputFolder`.
         859  +
    pub fn is_invalid_output_folder(&self) -> bool {
         860  +
        matches!(self, Self::InvalidOutputFolder(_))
         861  +
    }
         862  +
    /// Returns `true` if the error kind is `SendCommandError::InvalidParameters`.
         863  +
    pub fn is_invalid_parameters(&self) -> bool {
         864  +
        matches!(self, Self::InvalidParameters(_))
         865  +
    }
         866  +
    /// Returns `true` if the error kind is `SendCommandError::InvalidRole`.
         867  +
    pub fn is_invalid_role(&self) -> bool {
         868  +
        matches!(self, Self::InvalidRole(_))
         869  +
    }
         870  +
    /// Returns `true` if the error kind is `SendCommandError::MaxDocumentSizeExceeded`.
         871  +
    pub fn is_max_document_size_exceeded(&self) -> bool {
         872  +
        matches!(self, Self::MaxDocumentSizeExceeded(_))
         873  +
    }
         874  +
    /// Returns `true` if the error kind is `SendCommandError::UnsupportedPlatformType`.
         875  +
    pub fn is_unsupported_platform_type(&self) -> bool {
         876  +
        matches!(self, Self::UnsupportedPlatformType(_))
         877  +
    }
         878  +
}
         879  +
impl ::std::error::Error for SendCommandError {
         880  +
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         881  +
        match self {
         882  +
            Self::DuplicateInstanceId(_inner) => ::std::option::Option::Some(_inner),
         883  +
            Self::InternalServerError(_inner) => ::std::option::Option::Some(_inner),
         884  +
            Self::InvalidDocument(_inner) => ::std::option::Option::Some(_inner),
         885  +
            Self::InvalidDocumentVersion(_inner) => ::std::option::Option::Some(_inner),
         886  +
            Self::InvalidInstanceId(_inner) => ::std::option::Option::Some(_inner),
         887  +
            Self::InvalidNotificationConfig(_inner) => ::std::option::Option::Some(_inner),
         888  +
            Self::InvalidOutputFolder(_inner) => ::std::option::Option::Some(_inner),
         889  +
            Self::InvalidParameters(_inner) => ::std::option::Option::Some(_inner),
         890  +
            Self::InvalidRole(_inner) => ::std::option::Option::Some(_inner),
         891  +
            Self::MaxDocumentSizeExceeded(_inner) => ::std::option::Option::Some(_inner),
         892  +
            Self::UnsupportedPlatformType(_inner) => ::std::option::Option::Some(_inner),
         893  +
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         894  +
        }
         895  +
    }
         896  +
}
         897  +
impl ::std::fmt::Display for SendCommandError {
         898  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         899  +
        match self {
         900  +
            Self::DuplicateInstanceId(_inner) => _inner.fmt(f),
         901  +
            Self::InternalServerError(_inner) => _inner.fmt(f),
         902  +
            Self::InvalidDocument(_inner) => _inner.fmt(f),
         903  +
            Self::InvalidDocumentVersion(_inner) => _inner.fmt(f),
         904  +
            Self::InvalidInstanceId(_inner) => _inner.fmt(f),
         905  +
            Self::InvalidNotificationConfig(_inner) => _inner.fmt(f),
         906  +
            Self::InvalidOutputFolder(_inner) => _inner.fmt(f),
         907  +
            Self::InvalidParameters(_inner) => _inner.fmt(f),
         908  +
            Self::InvalidRole(_inner) => _inner.fmt(f),
         909  +
            Self::MaxDocumentSizeExceeded(_inner) => _inner.fmt(f),
         910  +
            Self::UnsupportedPlatformType(_inner) => _inner.fmt(f),
         911  +
            Self::Unhandled(_inner) => {
         912  +
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
         913  +
                    write!(f, "unhandled error ({code})")
         914  +
                } else {
         915  +
                    f.write_str("unhandled error")
         916  +
                }
         917  +
            }
         918  +
        }
         919  +
    }
         920  +
}
         921  +
impl ::aws_smithy_types::retry::ProvideErrorKind for SendCommandError {
         922  +
    fn code(&self) -> ::std::option::Option<&str> {
         923  +
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         924  +
    }
         925  +
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         926  +
        ::std::option::Option::None
         927  +
    }
         928  +
}
         929  +
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for SendCommandError {
         930  +
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         931  +
        match self {
         932  +
            Self::DuplicateInstanceId(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         933  +
            Self::InternalServerError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         934  +
            Self::InvalidDocument(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         935  +
            Self::InvalidDocumentVersion(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         936  +
            Self::InvalidInstanceId(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         937  +
            Self::InvalidNotificationConfig(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         938  +
            Self::InvalidOutputFolder(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         939  +
            Self::InvalidParameters(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         940  +
            Self::InvalidRole(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         941  +
            Self::MaxDocumentSizeExceeded(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         942  +
            Self::UnsupportedPlatformType(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         943  +
            Self::Unhandled(_inner) => &_inner.meta,
         944  +
        }
         945  +
    }
         946  +
}
         947  +
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for SendCommandError {
         948  +
    fn create_unhandled_error(
         949  +
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
         950  +
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
         951  +
    ) -> Self {
         952  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         953  +
            source,
         954  +
            meta: meta.unwrap_or_default(),
         955  +
        })
         956  +
    }
         957  +
}
         958  +
impl ::aws_types::request_id::RequestId for crate::operation::send_command::SendCommandError {
         959  +
    fn request_id(&self) -> Option<&str> {
         960  +
        self.meta().request_id()
         961  +
    }
         962  +
}
         963  +
         964  +
pub use crate::operation::send_command::_send_command_input::SendCommandInput;
         965  +
         966  +
pub use crate::operation::send_command::_send_command_output::SendCommandOutput;
         967  +
         968  +
mod _send_command_input;
         969  +
         970  +
mod _send_command_output;
         971  +
         972  +
/// Builders
         973  +
pub mod builders;