AWS SDK

AWS SDK

rev. 97ba95e6039d206ffea5b866ddc214d34f7f88c3

Files changed:

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

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

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

@@ -0,1 +0,434 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub use crate::operation::create_ops_item::_create_ops_item_input::CreateOpsItemInputBuilder;
           3  +
           4  +
pub use crate::operation::create_ops_item::_create_ops_item_output::CreateOpsItemOutputBuilder;
           5  +
           6  +
impl crate::operation::create_ops_item::builders::CreateOpsItemInputBuilder {
           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::create_ops_item::CreateOpsItemOutput,
          13  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          14  +
            crate::operation::create_ops_item::CreateOpsItemError,
          15  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          16  +
        >,
          17  +
    > {
          18  +
        let mut fluent_builder = client.create_ops_item();
          19  +
        fluent_builder.inner = self;
          20  +
        fluent_builder.send().await
          21  +
    }
          22  +
}
          23  +
/// Fluent builder constructing a request to `CreateOpsItem`.
          24  +
///
          25  +
/// <p>Creates a new OpsItem. You must have permission in Identity and Access Management (IAM) to create a new OpsItem. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html">Set up OpsCenter</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          26  +
/// <p>Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">Amazon Web Services Systems Manager OpsCenter</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          27  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          28  +
pub struct CreateOpsItemFluentBuilder {
          29  +
    handle: ::std::sync::Arc<crate::client::Handle>,
          30  +
    inner: crate::operation::create_ops_item::builders::CreateOpsItemInputBuilder,
          31  +
    config_override: ::std::option::Option<crate::config::Builder>,
          32  +
}
          33  +
impl
          34  +
    crate::client::customize::internal::CustomizableSend<
          35  +
        crate::operation::create_ops_item::CreateOpsItemOutput,
          36  +
        crate::operation::create_ops_item::CreateOpsItemError,
          37  +
    > for CreateOpsItemFluentBuilder
          38  +
{
          39  +
    fn send(
          40  +
        self,
          41  +
        config_override: crate::config::Builder,
          42  +
    ) -> crate::client::customize::internal::BoxFuture<
          43  +
        crate::client::customize::internal::SendResult<
          44  +
            crate::operation::create_ops_item::CreateOpsItemOutput,
          45  +
            crate::operation::create_ops_item::CreateOpsItemError,
          46  +
        >,
          47  +
    > {
          48  +
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
          49  +
    }
          50  +
}
          51  +
impl CreateOpsItemFluentBuilder {
          52  +
    /// Creates a new `CreateOpsItemFluentBuilder`.
          53  +
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
          54  +
        Self {
          55  +
            handle,
          56  +
            inner: ::std::default::Default::default(),
          57  +
            config_override: ::std::option::Option::None,
          58  +
        }
          59  +
    }
          60  +
    /// Access the CreateOpsItem as a reference.
          61  +
    pub fn as_input(&self) -> &crate::operation::create_ops_item::builders::CreateOpsItemInputBuilder {
          62  +
        &self.inner
          63  +
    }
          64  +
    /// Sends the request and returns the response.
          65  +
    ///
          66  +
    /// If an error occurs, an `SdkError` will be returned with additional details that
          67  +
    /// can be matched against.
          68  +
    ///
          69  +
    /// By default, any retryable failures will be retried twice. Retry behavior
          70  +
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
          71  +
    /// set when configuring the client.
          72  +
    pub async fn send(
          73  +
        self,
          74  +
    ) -> ::std::result::Result<
          75  +
        crate::operation::create_ops_item::CreateOpsItemOutput,
          76  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          77  +
            crate::operation::create_ops_item::CreateOpsItemError,
          78  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          79  +
        >,
          80  +
    > {
          81  +
        let input = self
          82  +
            .inner
          83  +
            .build()
          84  +
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
          85  +
        let runtime_plugins = crate::operation::create_ops_item::CreateOpsItem::operation_runtime_plugins(
          86  +
            self.handle.runtime_plugins.clone(),
          87  +
            &self.handle.conf,
          88  +
            self.config_override,
          89  +
        );
          90  +
        crate::operation::create_ops_item::CreateOpsItem::orchestrate(&runtime_plugins, input).await
          91  +
    }
          92  +
          93  +
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
          94  +
    pub fn customize(
          95  +
        self,
          96  +
    ) -> crate::client::customize::CustomizableOperation<
          97  +
        crate::operation::create_ops_item::CreateOpsItemOutput,
          98  +
        crate::operation::create_ops_item::CreateOpsItemError,
          99  +
        Self,
         100  +
    > {
         101  +
        crate::client::customize::CustomizableOperation::new(self)
         102  +
    }
         103  +
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
         104  +
        self.set_config_override(::std::option::Option::Some(config_override.into()));
         105  +
        self
         106  +
    }
         107  +
         108  +
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
         109  +
        self.config_override = config_override;
         110  +
        self
         111  +
    }
         112  +
    /// <p>User-defined text that contains information about the OpsItem, in Markdown format.</p><note>
         113  +
    /// <p>Provide enough information so that users viewing this OpsItem for the first time understand the issue.</p>
         114  +
    /// </note>
         115  +
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         116  +
        self.inner = self.inner.description(input.into());
         117  +
        self
         118  +
    }
         119  +
    /// <p>User-defined text that contains information about the OpsItem, in Markdown format.</p><note>
         120  +
    /// <p>Provide enough information so that users viewing this OpsItem for the first time understand the issue.</p>
         121  +
    /// </note>
         122  +
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         123  +
        self.inner = self.inner.set_description(input);
         124  +
        self
         125  +
    }
         126  +
    /// <p>User-defined text that contains information about the OpsItem, in Markdown format.</p><note>
         127  +
    /// <p>Provide enough information so that users viewing this OpsItem for the first time understand the issue.</p>
         128  +
    /// </note>
         129  +
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
         130  +
        self.inner.get_description()
         131  +
    }
         132  +
    /// <p>The type of OpsItem to create. Systems Manager supports the following types of OpsItems:</p>
         133  +
    /// <ul>
         134  +
    /// <li>
         135  +
    /// <p><code>/aws/issue</code></p>
         136  +
    /// <p>This type of OpsItem is used for default OpsItems created by OpsCenter.</p></li>
         137  +
    /// <li>
         138  +
    /// <p><code>/aws/insight</code></p>
         139  +
    /// <p>This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate OpsItems.</p></li>
         140  +
    /// <li>
         141  +
    /// <p><code>/aws/changerequest</code></p>
         142  +
    /// <p>This type of OpsItem is used by Change Manager for reviewing and approving or rejecting change requests.</p><important>
         143  +
    /// <p>Amazon Web Services Systems Manager Change Manager is no longer open to new customers. Existing customers can continue to use the service as normal. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html">Amazon Web Services Systems Manager Change Manager availability change</a>.</p>
         144  +
    /// </important></li>
         145  +
    /// </ul>
         146  +
    pub fn ops_item_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         147  +
        self.inner = self.inner.ops_item_type(input.into());
         148  +
        self
         149  +
    }
         150  +
    /// <p>The type of OpsItem to create. Systems Manager supports the following types of OpsItems:</p>
         151  +
    /// <ul>
         152  +
    /// <li>
         153  +
    /// <p><code>/aws/issue</code></p>
         154  +
    /// <p>This type of OpsItem is used for default OpsItems created by OpsCenter.</p></li>
         155  +
    /// <li>
         156  +
    /// <p><code>/aws/insight</code></p>
         157  +
    /// <p>This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate OpsItems.</p></li>
         158  +
    /// <li>
         159  +
    /// <p><code>/aws/changerequest</code></p>
         160  +
    /// <p>This type of OpsItem is used by Change Manager for reviewing and approving or rejecting change requests.</p><important>
         161  +
    /// <p>Amazon Web Services Systems Manager Change Manager is no longer open to new customers. Existing customers can continue to use the service as normal. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html">Amazon Web Services Systems Manager Change Manager availability change</a>.</p>
         162  +
    /// </important></li>
         163  +
    /// </ul>
         164  +
    pub fn set_ops_item_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         165  +
        self.inner = self.inner.set_ops_item_type(input);
         166  +
        self
         167  +
    }
         168  +
    /// <p>The type of OpsItem to create. Systems Manager supports the following types of OpsItems:</p>
         169  +
    /// <ul>
         170  +
    /// <li>
         171  +
    /// <p><code>/aws/issue</code></p>
         172  +
    /// <p>This type of OpsItem is used for default OpsItems created by OpsCenter.</p></li>
         173  +
    /// <li>
         174  +
    /// <p><code>/aws/insight</code></p>
         175  +
    /// <p>This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate OpsItems.</p></li>
         176  +
    /// <li>
         177  +
    /// <p><code>/aws/changerequest</code></p>
         178  +
    /// <p>This type of OpsItem is used by Change Manager for reviewing and approving or rejecting change requests.</p><important>
         179  +
    /// <p>Amazon Web Services Systems Manager Change Manager is no longer open to new customers. Existing customers can continue to use the service as normal. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html">Amazon Web Services Systems Manager Change Manager availability change</a>.</p>
         180  +
    /// </important></li>
         181  +
    /// </ul>
         182  +
    pub fn get_ops_item_type(&self) -> &::std::option::Option<::std::string::String> {
         183  +
        self.inner.get_ops_item_type()
         184  +
    }
         185  +
    ///
         186  +
    /// Adds a key-value pair to `OperationalData`.
         187  +
    ///
         188  +
    /// To override the contents of this collection use [`set_operational_data`](Self::set_operational_data).
         189  +
    ///
         190  +
    /// <p>Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.</p><important>
         191  +
    /// <p>Operational data keys <i>can't</i> begin with the following: <code>amazon</code>, <code>aws</code>, <code>amzn</code>, <code>ssm</code>, <code>/amazon</code>, <code>/aws</code>, <code>/amzn</code>, <code>/ssm</code>.</p>
         192  +
    /// </important>
         193  +
    /// <p>You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the <code>DescribeOpsItems</code> API operation) can view and search on the specified data. Operational data that isn't searchable is only viewable by users who have access to the OpsItem (as provided by the <code>GetOpsItem</code> API operation).</p>
         194  +
    /// <p>Use the <code>/aws/resources</code> key in OperationalData to specify a related resource in the request. Use the <code>/aws/automations</code> key in OperationalData to associate an Automation runbook with the OpsItem. To view Amazon Web Services CLI example commands that use these keys, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-manually-create-OpsItems.html">Create OpsItems manually</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         195  +
    pub fn operational_data(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::OpsItemDataValue) -> Self {
         196  +
        self.inner = self.inner.operational_data(k.into(), v);
         197  +
        self
         198  +
    }
         199  +
    /// <p>Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.</p><important>
         200  +
    /// <p>Operational data keys <i>can't</i> begin with the following: <code>amazon</code>, <code>aws</code>, <code>amzn</code>, <code>ssm</code>, <code>/amazon</code>, <code>/aws</code>, <code>/amzn</code>, <code>/ssm</code>.</p>
         201  +
    /// </important>
         202  +
    /// <p>You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the <code>DescribeOpsItems</code> API operation) can view and search on the specified data. Operational data that isn't searchable is only viewable by users who have access to the OpsItem (as provided by the <code>GetOpsItem</code> API operation).</p>
         203  +
    /// <p>Use the <code>/aws/resources</code> key in OperationalData to specify a related resource in the request. Use the <code>/aws/automations</code> key in OperationalData to associate an Automation runbook with the OpsItem. To view Amazon Web Services CLI example commands that use these keys, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-manually-create-OpsItems.html">Create OpsItems manually</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         204  +
    pub fn set_operational_data(
         205  +
        mut self,
         206  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::OpsItemDataValue>>,
         207  +
    ) -> Self {
         208  +
        self.inner = self.inner.set_operational_data(input);
         209  +
        self
         210  +
    }
         211  +
    /// <p>Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.</p><important>
         212  +
    /// <p>Operational data keys <i>can't</i> begin with the following: <code>amazon</code>, <code>aws</code>, <code>amzn</code>, <code>ssm</code>, <code>/amazon</code>, <code>/aws</code>, <code>/amzn</code>, <code>/ssm</code>.</p>
         213  +
    /// </important>
         214  +
    /// <p>You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the <code>DescribeOpsItems</code> API operation) can view and search on the specified data. Operational data that isn't searchable is only viewable by users who have access to the OpsItem (as provided by the <code>GetOpsItem</code> API operation).</p>
         215  +
    /// <p>Use the <code>/aws/resources</code> key in OperationalData to specify a related resource in the request. Use the <code>/aws/automations</code> key in OperationalData to associate an Automation runbook with the OpsItem. To view Amazon Web Services CLI example commands that use these keys, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-manually-create-OpsItems.html">Create OpsItems manually</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         216  +
    pub fn get_operational_data(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::OpsItemDataValue>> {
         217  +
        self.inner.get_operational_data()
         218  +
    }
         219  +
    ///
         220  +
    /// Appends an item to `Notifications`.
         221  +
    ///
         222  +
    /// To override the contents of this collection use [`set_notifications`](Self::set_notifications).
         223  +
    ///
         224  +
    /// <p>The Amazon Resource Name (ARN) of an SNS topic where notifications are sent when this OpsItem is edited or changed.</p>
         225  +
    pub fn notifications(mut self, input: crate::types::OpsItemNotification) -> Self {
         226  +
        self.inner = self.inner.notifications(input);
         227  +
        self
         228  +
    }
         229  +
    /// <p>The Amazon Resource Name (ARN) of an SNS topic where notifications are sent when this OpsItem is edited or changed.</p>
         230  +
    pub fn set_notifications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::OpsItemNotification>>) -> Self {
         231  +
        self.inner = self.inner.set_notifications(input);
         232  +
        self
         233  +
    }
         234  +
    /// <p>The Amazon Resource Name (ARN) of an SNS topic where notifications are sent when this OpsItem is edited or changed.</p>
         235  +
    pub fn get_notifications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::OpsItemNotification>> {
         236  +
        self.inner.get_notifications()
         237  +
    }
         238  +
    /// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
         239  +
    pub fn priority(mut self, input: i32) -> Self {
         240  +
        self.inner = self.inner.priority(input);
         241  +
        self
         242  +
    }
         243  +
    /// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
         244  +
    pub fn set_priority(mut self, input: ::std::option::Option<i32>) -> Self {
         245  +
        self.inner = self.inner.set_priority(input);
         246  +
        self
         247  +
    }
         248  +
    /// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
         249  +
    pub fn get_priority(&self) -> &::std::option::Option<i32> {
         250  +
        self.inner.get_priority()
         251  +
    }
         252  +
    ///
         253  +
    /// Appends an item to `RelatedOpsItems`.
         254  +
    ///
         255  +
    /// To override the contents of this collection use [`set_related_ops_items`](Self::set_related_ops_items).
         256  +
    ///
         257  +
    /// <p>One or more OpsItems that share something in common with the current OpsItems. For example, related OpsItems can include OpsItems with similar error messages, impacted resources, or statuses for the impacted resource.</p>
         258  +
    pub fn related_ops_items(mut self, input: crate::types::RelatedOpsItem) -> Self {
         259  +
        self.inner = self.inner.related_ops_items(input);
         260  +
        self
         261  +
    }
         262  +
    /// <p>One or more OpsItems that share something in common with the current OpsItems. For example, related OpsItems can include OpsItems with similar error messages, impacted resources, or statuses for the impacted resource.</p>
         263  +
    pub fn set_related_ops_items(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::RelatedOpsItem>>) -> Self {
         264  +
        self.inner = self.inner.set_related_ops_items(input);
         265  +
        self
         266  +
    }
         267  +
    /// <p>One or more OpsItems that share something in common with the current OpsItems. For example, related OpsItems can include OpsItems with similar error messages, impacted resources, or statuses for the impacted resource.</p>
         268  +
    pub fn get_related_ops_items(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::RelatedOpsItem>> {
         269  +
        self.inner.get_related_ops_items()
         270  +
    }
         271  +
    /// <p>The origin of the OpsItem, such as Amazon EC2 or Systems Manager.</p><note>
         272  +
    /// <p>The source name can't contain the following strings: <code>aws</code>, <code>amazon</code>, and <code>amzn</code>.</p>
         273  +
    /// </note>
         274  +
    pub fn source(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         275  +
        self.inner = self.inner.source(input.into());
         276  +
        self
         277  +
    }
         278  +
    /// <p>The origin of the OpsItem, such as Amazon EC2 or Systems Manager.</p><note>
         279  +
    /// <p>The source name can't contain the following strings: <code>aws</code>, <code>amazon</code>, and <code>amzn</code>.</p>
         280  +
    /// </note>
         281  +
    pub fn set_source(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         282  +
        self.inner = self.inner.set_source(input);
         283  +
        self
         284  +
    }
         285  +
    /// <p>The origin of the OpsItem, such as Amazon EC2 or Systems Manager.</p><note>
         286  +
    /// <p>The source name can't contain the following strings: <code>aws</code>, <code>amazon</code>, and <code>amzn</code>.</p>
         287  +
    /// </note>
         288  +
    pub fn get_source(&self) -> &::std::option::Option<::std::string::String> {
         289  +
        self.inner.get_source()
         290  +
    }
         291  +
    /// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
         292  +
    pub fn title(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         293  +
        self.inner = self.inner.title(input.into());
         294  +
        self
         295  +
    }
         296  +
    /// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
         297  +
    pub fn set_title(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         298  +
        self.inner = self.inner.set_title(input);
         299  +
        self
         300  +
    }
         301  +
    /// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
         302  +
    pub fn get_title(&self) -> &::std::option::Option<::std::string::String> {
         303  +
        self.inner.get_title()
         304  +
    }
         305  +
    ///
         306  +
    /// Appends an item to `Tags`.
         307  +
    ///
         308  +
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
         309  +
    ///
         310  +
    /// <p>Optional metadata that you assign to a resource.</p>
         311  +
    /// <p>Tags use a key-value pair. For example:</p>
         312  +
    /// <p><code>Key=Department,Value=Finance</code></p><important>
         313  +
    /// <p>To add tags to a new OpsItem, a user must have IAM permissions for both the <code>ssm:CreateOpsItems</code> operation and the <code>ssm:AddTagsToResource</code> operation. To add tags to an existing OpsItem, use the <code>AddTagsToResource</code> operation.</p>
         314  +
    /// </important>
         315  +
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
         316  +
        self.inner = self.inner.tags(input);
         317  +
        self
         318  +
    }
         319  +
    /// <p>Optional metadata that you assign to a resource.</p>
         320  +
    /// <p>Tags use a key-value pair. For example:</p>
         321  +
    /// <p><code>Key=Department,Value=Finance</code></p><important>
         322  +
    /// <p>To add tags to a new OpsItem, a user must have IAM permissions for both the <code>ssm:CreateOpsItems</code> operation and the <code>ssm:AddTagsToResource</code> operation. To add tags to an existing OpsItem, use the <code>AddTagsToResource</code> operation.</p>
         323  +
    /// </important>
         324  +
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
         325  +
        self.inner = self.inner.set_tags(input);
         326  +
        self
         327  +
    }
         328  +
    /// <p>Optional metadata that you assign to a resource.</p>
         329  +
    /// <p>Tags use a key-value pair. For example:</p>
         330  +
    /// <p><code>Key=Department,Value=Finance</code></p><important>
         331  +
    /// <p>To add tags to a new OpsItem, a user must have IAM permissions for both the <code>ssm:CreateOpsItems</code> operation and the <code>ssm:AddTagsToResource</code> operation. To add tags to an existing OpsItem, use the <code>AddTagsToResource</code> operation.</p>
         332  +
    /// </important>
         333  +
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
         334  +
        self.inner.get_tags()
         335  +
    }
         336  +
    /// <p>Specify a category to assign to an OpsItem.</p>
         337  +
    pub fn category(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         338  +
        self.inner = self.inner.category(input.into());
         339  +
        self
         340  +
    }
         341  +
    /// <p>Specify a category to assign to an OpsItem.</p>
         342  +
    pub fn set_category(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         343  +
        self.inner = self.inner.set_category(input);
         344  +
        self
         345  +
    }
         346  +
    /// <p>Specify a category to assign to an OpsItem.</p>
         347  +
    pub fn get_category(&self) -> &::std::option::Option<::std::string::String> {
         348  +
        self.inner.get_category()
         349  +
    }
         350  +
    /// <p>Specify a severity to assign to an OpsItem.</p>
         351  +
    pub fn severity(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         352  +
        self.inner = self.inner.severity(input.into());
         353  +
        self
         354  +
    }
         355  +
    /// <p>Specify a severity to assign to an OpsItem.</p>
         356  +
    pub fn set_severity(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         357  +
        self.inner = self.inner.set_severity(input);
         358  +
        self
         359  +
    }
         360  +
    /// <p>Specify a severity to assign to an OpsItem.</p>
         361  +
    pub fn get_severity(&self) -> &::std::option::Option<::std::string::String> {
         362  +
        self.inner.get_severity()
         363  +
    }
         364  +
    /// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         365  +
    pub fn actual_start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         366  +
        self.inner = self.inner.actual_start_time(input);
         367  +
        self
         368  +
    }
         369  +
    /// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         370  +
    pub fn set_actual_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         371  +
        self.inner = self.inner.set_actual_start_time(input);
         372  +
        self
         373  +
    }
         374  +
    /// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         375  +
    pub fn get_actual_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         376  +
        self.inner.get_actual_start_time()
         377  +
    }
         378  +
    /// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         379  +
    pub fn actual_end_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         380  +
        self.inner = self.inner.actual_end_time(input);
         381  +
        self
         382  +
    }
         383  +
    /// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         384  +
    pub fn set_actual_end_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         385  +
        self.inner = self.inner.set_actual_end_time(input);
         386  +
        self
         387  +
    }
         388  +
    /// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         389  +
    pub fn get_actual_end_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         390  +
        self.inner.get_actual_end_time()
         391  +
    }
         392  +
    /// <p>The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         393  +
    pub fn planned_start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         394  +
        self.inner = self.inner.planned_start_time(input);
         395  +
        self
         396  +
    }
         397  +
    /// <p>The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         398  +
    pub fn set_planned_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         399  +
        self.inner = self.inner.set_planned_start_time(input);
         400  +
        self
         401  +
    }
         402  +
    /// <p>The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         403  +
    pub fn get_planned_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         404  +
        self.inner.get_planned_start_time()
         405  +
    }
         406  +
    /// <p>The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         407  +
    pub fn planned_end_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         408  +
        self.inner = self.inner.planned_end_time(input);
         409  +
        self
         410  +
    }
         411  +
    /// <p>The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         412  +
    pub fn set_planned_end_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         413  +
        self.inner = self.inner.set_planned_end_time(input);
         414  +
        self
         415  +
    }
         416  +
    /// <p>The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         417  +
    pub fn get_planned_end_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         418  +
        self.inner.get_planned_end_time()
         419  +
    }
         420  +
    /// <p>The target Amazon Web Services account where you want to create an OpsItem. To make this call, your account must be configured to work with OpsItems across accounts. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html">Set up OpsCenter</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         421  +
    pub fn account_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         422  +
        self.inner = self.inner.account_id(input.into());
         423  +
        self
         424  +
    }
         425  +
    /// <p>The target Amazon Web Services account where you want to create an OpsItem. To make this call, your account must be configured to work with OpsItems across accounts. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html">Set up OpsCenter</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         426  +
    pub fn set_account_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         427  +
        self.inner = self.inner.set_account_id(input);
         428  +
        self
         429  +
    }
         430  +
    /// <p>The target Amazon Web Services account where you want to create an OpsItem. To make this call, your account must be configured to work with OpsItems across accounts. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html">Set up OpsCenter</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         431  +
    pub fn get_account_id(&self) -> &::std::option::Option<::std::string::String> {
         432  +
        self.inner.get_account_id()
         433  +
    }
         434  +
}

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

@@ -0,1 +0,688 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/// Orchestration and serialization glue logic for `CreateOpsMetadata`.
           3  +
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
           4  +
#[non_exhaustive]
           5  +
pub struct CreateOpsMetadata;
           6  +
impl CreateOpsMetadata {
           7  +
    /// Creates a new `CreateOpsMetadata`
           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::create_ops_metadata::CreateOpsMetadataInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = crate::operation::create_ops_metadata::CreateOpsMetadataOutput::SCHEMA;
          15  +
    pub(crate) async fn orchestrate(
          16  +
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
          17  +
        input: crate::operation::create_ops_metadata::CreateOpsMetadataInput,
          18  +
    ) -> ::std::result::Result<
          19  +
        crate::operation::create_ops_metadata::CreateOpsMetadataOutput,
          20  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          21  +
            crate::operation::create_ops_metadata::CreateOpsMetadataError,
          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::create_ops_metadata::CreateOpsMetadataError>()
          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::create_ops_metadata::CreateOpsMetadataOutput>()
          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::create_ops_metadata::CreateOpsMetadataInput,
          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", "CreateOpsMetadata", 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.CreateOpsMetadata",
          63  +
                "rpc.service" = "SSM",
          64  +
                "rpc.method" = "CreateOpsMetadata",
          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::InternalServerError::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::InternalServerError::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::InternalServerError::deserialize(d)?))
         109  +
                        },
         110  +
                    )
         111  +
.insert_error_shape(
         112  +
                        crate::types::error::OpsMetadataAlreadyExistsException::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::OpsMetadataAlreadyExistsException::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::OpsMetadataAlreadyExistsException::deserialize(d)?))
         118  +
                        },
         119  +
                    )
         120  +
.insert_error_shape(
         121  +
                        crate::types::error::OpsMetadataInvalidArgumentException::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::OpsMetadataInvalidArgumentException::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::OpsMetadataInvalidArgumentException::deserialize(d)?))
         127  +
                        },
         128  +
                    )
         129  +
.insert_error_shape(
         130  +
                        crate::types::error::OpsMetadataLimitExceededException::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::OpsMetadataLimitExceededException::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::OpsMetadataLimitExceededException::deserialize(d)?))
         136  +
                        },
         137  +
                    )
         138  +
.insert_error_shape(
         139  +
                        crate::types::error::OpsMetadataTooManyUpdatesException::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::OpsMetadataTooManyUpdatesException::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::OpsMetadataTooManyUpdatesException::deserialize(d)?))
         145  +
                        },
         146  +
                    )
         147  +
                            .build()
         148  +
    });
         149  +
}
         150  +
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for CreateOpsMetadata {
         151  +
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
         152  +
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateOpsMetadata");
         153  +
         154  +
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
         155  +
            CreateOpsMetadataRequestSerializer,
         156  +
        ));
         157  +
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
         158  +
            CreateOpsMetadataResponseDeserializer,
         159  +
        ));
         160  +
         161  +
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
         162  +
            crate::config::auth::Params::builder()
         163  +
                .operation_name("CreateOpsMetadata")
         164  +
                .build()
         165  +
                .expect("required fields set"),
         166  +
        ));
         167  +
         168  +
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("CreateOpsMetadata", "SSM"));
         169  +
        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
         170  +
        signing_options.double_uri_encode = true;
         171  +
        signing_options.content_sha256_header = false;
         172  +
        signing_options.normalize_uri_path = true;
         173  +
        signing_options.payload_override = None;
         174  +
         175  +
        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
         176  +
            signing_options,
         177  +
            ..::std::default::Default::default()
         178  +
        });
         179  +
         180  +
        ::std::option::Option::Some(cfg.freeze())
         181  +
    }
         182  +
         183  +
    fn runtime_components(
         184  +
        &self,
         185  +
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
         186  +
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
         187  +
        #[allow(unused_mut)]
         188  +
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("CreateOpsMetadata")
         189  +
            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
         190  +
                CreateOpsMetadataTelemetryInputCaptureInterceptor,
         191  +
            ))
         192  +
            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
         193  +
                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
         194  +
            ))
         195  +
            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
         196  +
                CreateOpsMetadataEndpointParamsInterceptor,
         197  +
            ))
         198  +
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
         199  +
                crate::operation::create_ops_metadata::CreateOpsMetadataError,
         200  +
            >::new())
         201  +
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
         202  +
                crate::operation::create_ops_metadata::CreateOpsMetadataError,
         203  +
            >::new())
         204  +
            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
         205  +
                crate::operation::create_ops_metadata::CreateOpsMetadataError,
         206  +
            >::new())
         207  +
            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
         208  +
                crate::operation::create_ops_metadata::CreateOpsMetadataError,
         209  +
            >::new());
         210  +
         211  +
        ::std::borrow::Cow::Owned(rcb)
         212  +
    }
         213  +
}
         214  +
         215  +
#[derive(Debug)]
         216  +
struct CreateOpsMetadataTelemetryInputCaptureInterceptor;
         217  +
         218  +
#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
         219  +
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateOpsMetadataTelemetryInputCaptureInterceptor {
         220  +
    fn name(&self) -> &'static str {
         221  +
        "CreateOpsMetadataTelemetryInputCaptureInterceptor"
         222  +
    }
         223  +
         224  +
    fn read_before_execution(
         225  +
        &self,
         226  +
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
         227  +
            '_,
         228  +
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
         229  +
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
         230  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
         231  +
        >,
         232  +
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         233  +
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
         234  +
        // Nothing to do unless the customer opted in by naming members to record.
         235  +
        let ::std::option::Option::Some(requested) = cfg
         236  +
            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
         237  +
            .filter(|r| !r.is_empty())
         238  +
        else {
         239  +
            return ::std::result::Result::Ok(());
         240  +
        };
         241  +
         242  +
        let ::std::option::Option::Some(input) = context.input().downcast_ref::<CreateOpsMetadataInput>() else {
         243  +
            // A mismatched input is not this interceptor's concern; skip quietly.
         244  +
            return ::std::result::Result::Ok(());
         245  +
        };
         246  +
         247  +
        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
         248  +
        if requested.should_capture("ResourceId") {
         249  +
            if let ::std::option::Option::Some(value) = input.resource_id.as_deref() {
         250  +
                captured.insert("ResourceId", value);
         251  +
            }
         252  +
        }
         253  +
         254  +
        cfg.interceptor_state().store_put(captured);
         255  +
        ::std::result::Result::Ok(())
         256  +
    }
         257  +
}
         258  +
#[derive(Debug)]
         259  +
struct CreateOpsMetadataResponseDeserializer;
         260  +
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateOpsMetadataResponseDeserializer {
         261  +
    fn deserialize_nonstreaming_with_config(
         262  +
        &self,
         263  +
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         264  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
         265  +
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
         266  +
        let (success, status) = (response.status().is_success(), response.status().as_u16());
         267  +
        // Load body and headers BEFORE BeforeParseResponse so customizations
         268  +
        // (e.g., S3's `body_is_error` check that detects errors returned with
         269  +
        // HTTP 200) can inspect them. The legacy non-streaming path also
         270  +
        // loads `body` before firing this hook.
         271  +
        let body = response.body().bytes().expect("body loaded");
         272  +
        let headers = response.headers();
         273  +
        #[allow(unused_mut)]
         274  +
        let mut force_error = false;
         275  +
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
         276  +
        if !success && status != 200 || force_error {
         277  +
            let protocol = _cfg
         278  +
                .load::<::aws_smithy_schema::protocol::SharedClientProtocol>()
         279  +
                .expect("a SharedClientProtocol is required");
         280  +
            #[allow(unused_mut)]
         281  +
            let mut generic_builder = protocol.parse_error_metadata(response, _cfg).map_err(|e| {
         282  +
                ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(::aws_smithy_runtime_api::box_error::BoxError::from(e))
         283  +
            })?;
         284  +
            generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, headers);
         285  +
            let generic = generic_builder.build();
         286  +
            let error_code = match generic.code() {
         287  +
                ::std::option::Option::Some(code) => code,
         288  +
                ::std::option::Option::None => {
         289  +
                    return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         290  +
                        ::aws_smithy_runtime_api::box_error::BoxError::from(
         291  +
                            crate::operation::create_ops_metadata::CreateOpsMetadataError::unhandled(generic),
         292  +
                        ),
         293  +
                    ))
         294  +
                }
         295  +
            };
         296  +
            let _error_message = generic.message().map(|msg| msg.to_owned());
         297  +
            let err = match error_code {
         298  +
                "InternalServerError" => crate::operation::create_ops_metadata::CreateOpsMetadataError::InternalServerError({
         299  +
                    let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         300  +
                        crate::types::error::InternalServerError::deserialize_with_response(
         301  +
                            &mut *deser,
         302  +
                            response.headers(),
         303  +
                            response.status().into(),
         304  +
                            body,
         305  +
                        )
         306  +
                    }) {
         307  +
                        ::std::result::Result::Ok(val) => val,
         308  +
                        ::std::result::Result::Err(e) => {
         309  +
                            return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         310  +
                                ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         311  +
                            ))
         312  +
                        }
         313  +
                    };
         314  +
                    tmp.meta = generic;
         315  +
                    if tmp.message.is_none() {
         316  +
                        tmp.message = _error_message;
         317  +
                    }
         318  +
                    tmp
         319  +
                }),
         320  +
                "OpsMetadataAlreadyExistsException" => {
         321  +
                    crate::operation::create_ops_metadata::CreateOpsMetadataError::OpsMetadataAlreadyExistsException({
         322  +
                        let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         323  +
                            crate::types::error::OpsMetadataAlreadyExistsException::deserialize_with_response(
         324  +
                                &mut *deser,
         325  +
                                response.headers(),
         326  +
                                response.status().into(),
         327  +
                                body,
         328  +
                            )
         329  +
                        }) {
         330  +
                            ::std::result::Result::Ok(val) => val,
         331  +
                            ::std::result::Result::Err(e) => {
         332  +
                                return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         333  +
                                    ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         334  +
                                ))
         335  +
                            }
         336  +
                        };
         337  +
                        tmp.meta = generic;
         338  +
                        if tmp.message.is_none() {
         339  +
                            tmp.message = _error_message;
         340  +
                        }
         341  +
                        tmp
         342  +
                    })
         343  +
                }
         344  +
                "OpsMetadataInvalidArgumentException" => {
         345  +
                    crate::operation::create_ops_metadata::CreateOpsMetadataError::OpsMetadataInvalidArgumentException({
         346  +
                        let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         347  +
                            crate::types::error::OpsMetadataInvalidArgumentException::deserialize_with_response(
         348  +
                                &mut *deser,
         349  +
                                response.headers(),
         350  +
                                response.status().into(),
         351  +
                                body,
         352  +
                            )
         353  +
                        }) {
         354  +
                            ::std::result::Result::Ok(val) => val,
         355  +
                            ::std::result::Result::Err(e) => {
         356  +
                                return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         357  +
                                    ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         358  +
                                ))
         359  +
                            }
         360  +
                        };
         361  +
                        tmp.meta = generic;
         362  +
                        if tmp.message.is_none() {
         363  +
                            tmp.message = _error_message;
         364  +
                        }
         365  +
                        tmp
         366  +
                    })
         367  +
                }
         368  +
                "OpsMetadataLimitExceededException" => {
         369  +
                    crate::operation::create_ops_metadata::CreateOpsMetadataError::OpsMetadataLimitExceededException({
         370  +
                        let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         371  +
                            crate::types::error::OpsMetadataLimitExceededException::deserialize_with_response(
         372  +
                                &mut *deser,
         373  +
                                response.headers(),
         374  +
                                response.status().into(),
         375  +
                                body,
         376  +
                            )
         377  +
                        }) {
         378  +
                            ::std::result::Result::Ok(val) => val,
         379  +
                            ::std::result::Result::Err(e) => {
         380  +
                                return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         381  +
                                    ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         382  +
                                ))
         383  +
                            }
         384  +
                        };
         385  +
                        tmp.meta = generic;
         386  +
                        if tmp.message.is_none() {
         387  +
                            tmp.message = _error_message;
         388  +
                        }
         389  +
                        tmp
         390  +
                    })
         391  +
                }
         392  +
                "OpsMetadataTooManyUpdatesException" => {
         393  +
                    crate::operation::create_ops_metadata::CreateOpsMetadataError::OpsMetadataTooManyUpdatesException({
         394  +
                        let mut tmp = match protocol.deserialize_error_response(response, _cfg).and_then(|mut deser| {
         395  +
                            crate::types::error::OpsMetadataTooManyUpdatesException::deserialize_with_response(
         396  +
                                &mut *deser,
         397  +
                                response.headers(),
         398  +
                                response.status().into(),
         399  +
                                body,
         400  +
                            )
         401  +
                        }) {
         402  +
                            ::std::result::Result::Ok(val) => val,
         403  +
                            ::std::result::Result::Err(e) => {
         404  +
                                return ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(
         405  +
                                    ::aws_smithy_runtime_api::box_error::BoxError::from(e),
         406  +
                                ))
         407  +
                            }
         408  +
                        };
         409  +
                        tmp.meta = generic;
         410  +
                        if tmp.message.is_none() {
         411  +
                            tmp.message = _error_message;
         412  +
                        }
         413  +
                        tmp
         414  +
                    })
         415  +
                }
         416  +
                _ => {
         417  +
                    // Registry-backed, operation-scoped reification of an error whose
         418  +
                    // code this operation does not model directly: the operation's own
         419  +
                    // error registry is consulted first, then the lookup widens to the
         420  +
                    // service-wide error registry. On a hit, the reified error is attached
         421  +
                    // as the source of the returned unhandled error while its metadata
         422  +
                    // (code, message, request id) is preserved; on a miss the generic
         423  +
                    // error is returned unchanged.
         424  +
                    match protocol
         425  +
                        .deserialize_error_response(response, _cfg)
         426  +
                        .ok()
         427  +
                        .and_then(|mut deser| {
         428  +
                            ::aws_smithy_schema::registry::reify_error(
         429  +
                                crate::operation::create_ops_metadata::error_registry::REGISTRY
         430  +
                                    .or(&crate::error_type_registry::REGISTRY),
         431  +
                                error_code,
         432  +
                                &mut *deser,
         433  +
                            )
         434  +
                        }) {
         435  +
                        ::std::option::Option::Some(source) => <crate::operation::create_ops_metadata::CreateOpsMetadataError as ::aws_smithy_runtime_api::client::result::CreateUnhandledError>::create_unhandled_error(source, ::std::option::Option::Some(generic)),
         436  +
                        ::std::option::Option::None => crate::operation::create_ops_metadata::CreateOpsMetadataError::generic(generic),
         437  +
                    }
         438  +
                }
         439  +
            };
         440  +
            ::std::result::Result::Err(::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::operation(
         441  +
                ::aws_smithy_runtime_api::client::interceptors::context::Error::erase(err),
         442  +
            ))
         443  +
        } else {
         444  +
            let protocol = _cfg
         445  +
                .load::<::aws_smithy_schema::protocol::SharedClientProtocol>()
         446  +
                .expect("a SharedClientProtocol is required");
         447  +
            let mut deser = protocol
         448  +
                .deserialize_response(response, CreateOpsMetadata::OUTPUT_SCHEMA, _cfg)
         449  +
                .map_err(|e| {
         450  +
                    ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(::aws_smithy_runtime_api::box_error::BoxError::from(e))
         451  +
                })?;
         452  +
            // body and headers are already in scope from the top of the function;
         453  +
            // alias `headers` as `_response_headers` so MutateOutput
         454  +
            // customizations have a stable name to read from.
         455  +
            let _response_headers = headers;
         456  +
            #[allow(unused_mut)]
         457  +
            let mut output = crate::operation::create_ops_metadata::CreateOpsMetadataOutput::deserialize_with_response(
         458  +
                &mut *deser,
         459  +
                _response_headers,
         460  +
                response.status().into(),
         461  +
                body,
         462  +
            )
         463  +
            .map_err(|e| {
         464  +
                ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError::other(::aws_smithy_runtime_api::box_error::BoxError::from(e))
         465  +
            })?;
         466  +
            output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
         467  +
            ::std::result::Result::Ok(::aws_smithy_runtime_api::client::interceptors::context::Output::erase(output))
         468  +
        }
         469  +
    }
         470  +
}
         471  +
#[derive(Debug)]
         472  +
struct CreateOpsMetadataRequestSerializer;
         473  +
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateOpsMetadataRequestSerializer {
         474  +
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
         475  +
    fn serialize_input(
         476  +
        &self,
         477  +
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
         478  +
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         479  +
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
         480  +
        let input = input
         481  +
            .downcast::<crate::operation::create_ops_metadata::CreateOpsMetadataInput>()
         482  +
            .expect("correct type");
         483  +
         484  +
        let protocol = _cfg
         485  +
            .load::<::aws_smithy_schema::protocol::SharedClientProtocol>()
         486  +
            .expect("a SharedClientProtocol is required");
         487  +
        let mut request = protocol
         488  +
            .serialize_request(&input, CreateOpsMetadata::INPUT_SCHEMA, "/", _cfg)
         489  +
            .map_err(::aws_smithy_runtime_api::box_error::BoxError::from)?;
         490  +
         491  +
        return ::std::result::Result::Ok(request);
         492  +
    }
         493  +
}
         494  +
#[derive(Debug)]
         495  +
struct CreateOpsMetadataEndpointParamsInterceptor;
         496  +
         497  +
#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
         498  +
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateOpsMetadataEndpointParamsInterceptor {
         499  +
    fn name(&self) -> &'static str {
         500  +
        "CreateOpsMetadataEndpointParamsInterceptor"
         501  +
    }
         502  +
         503  +
    fn read_before_execution(
         504  +
        &self,
         505  +
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
         506  +
            '_,
         507  +
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
         508  +
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
         509  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
         510  +
        >,
         511  +
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         512  +
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
         513  +
        let _input = context
         514  +
            .input()
         515  +
            .downcast_ref::<CreateOpsMetadataInput>()
         516  +
            .ok_or("failed to downcast to CreateOpsMetadataInput")?;
         517  +
         518  +
        let params = crate::config::endpoint::Params::builder()
         519  +
            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
         520  +
            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
         521  +
            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
         522  +
            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
         523  +
            .build()
         524  +
            .map_err(|err| {
         525  +
                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
         526  +
            })?;
         527  +
        cfg.interceptor_state()
         528  +
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
         529  +
        ::std::result::Result::Ok(())
         530  +
    }
         531  +
}
         532  +
         533  +
// The get_* functions below are generated from JMESPath expressions in the
         534  +
// operationContextParams trait. They target the operation's input shape.
         535  +
         536  +
/// Error type for the `CreateOpsMetadataError` operation.
         537  +
#[non_exhaustive]
         538  +
#[derive(::std::fmt::Debug)]
         539  +
pub enum CreateOpsMetadataError {
         540  +
    /// <p>An error occurred on the server side.</p>
         541  +
    InternalServerError(crate::types::error::InternalServerError),
         542  +
    /// <p>An OpsMetadata object already exists for the selected resource.</p>
         543  +
    OpsMetadataAlreadyExistsException(crate::types::error::OpsMetadataAlreadyExistsException),
         544  +
    /// <p>One of the arguments passed is invalid.</p>
         545  +
    OpsMetadataInvalidArgumentException(crate::types::error::OpsMetadataInvalidArgumentException),
         546  +
    /// <p>Your account reached the maximum number of OpsMetadata objects allowed by Application Manager. The maximum is 200 OpsMetadata objects. Delete one or more OpsMetadata object and try again.</p>
         547  +
    OpsMetadataLimitExceededException(crate::types::error::OpsMetadataLimitExceededException),
         548  +
    /// <p>The system is processing too many concurrent updates. Wait a few moments and try again.</p>
         549  +
    OpsMetadataTooManyUpdatesException(crate::types::error::OpsMetadataTooManyUpdatesException),
         550  +
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
         551  +
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
         552  +
    variable wildcard pattern and check `.code()`:
         553  +
     \
         554  +
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
         555  +
     \
         556  +
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateOpsMetadataError) for what information is available for the error.")]
         557  +
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         558  +
}
         559  +
impl CreateOpsMetadataError {
         560  +
    /// Creates the `CreateOpsMetadataError::Unhandled` variant from any error type.
         561  +
    pub fn unhandled(
         562  +
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
         563  +
    ) -> Self {
         564  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         565  +
            source: err.into(),
         566  +
            meta: ::std::default::Default::default(),
         567  +
        })
         568  +
    }
         569  +
         570  +
    /// Creates the `CreateOpsMetadataError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
         571  +
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
         572  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         573  +
            source: err.clone().into(),
         574  +
            meta: err,
         575  +
        })
         576  +
    }
         577  +
    ///
         578  +
    /// Returns error metadata, which includes the error code, message,
         579  +
    /// request ID, and potentially additional information.
         580  +
    ///
         581  +
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         582  +
        match self {
         583  +
            Self::InternalServerError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         584  +
            Self::OpsMetadataAlreadyExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         585  +
            Self::OpsMetadataInvalidArgumentException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         586  +
            Self::OpsMetadataLimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         587  +
            Self::OpsMetadataTooManyUpdatesException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         588  +
            Self::Unhandled(e) => &e.meta,
         589  +
        }
         590  +
    }
         591  +
    /// Returns `true` if the error kind is `CreateOpsMetadataError::InternalServerError`.
         592  +
    pub fn is_internal_server_error(&self) -> bool {
         593  +
        matches!(self, Self::InternalServerError(_))
         594  +
    }
         595  +
    /// Returns `true` if the error kind is `CreateOpsMetadataError::OpsMetadataAlreadyExistsException`.
         596  +
    pub fn is_ops_metadata_already_exists_exception(&self) -> bool {
         597  +
        matches!(self, Self::OpsMetadataAlreadyExistsException(_))
         598  +
    }
         599  +
    /// Returns `true` if the error kind is `CreateOpsMetadataError::OpsMetadataInvalidArgumentException`.
         600  +
    pub fn is_ops_metadata_invalid_argument_exception(&self) -> bool {
         601  +
        matches!(self, Self::OpsMetadataInvalidArgumentException(_))
         602  +
    }
         603  +
    /// Returns `true` if the error kind is `CreateOpsMetadataError::OpsMetadataLimitExceededException`.
         604  +
    pub fn is_ops_metadata_limit_exceeded_exception(&self) -> bool {
         605  +
        matches!(self, Self::OpsMetadataLimitExceededException(_))
         606  +
    }
         607  +
    /// Returns `true` if the error kind is `CreateOpsMetadataError::OpsMetadataTooManyUpdatesException`.
         608  +
    pub fn is_ops_metadata_too_many_updates_exception(&self) -> bool {
         609  +
        matches!(self, Self::OpsMetadataTooManyUpdatesException(_))
         610  +
    }
         611  +
}
         612  +
impl ::std::error::Error for CreateOpsMetadataError {
         613  +
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         614  +
        match self {
         615  +
            Self::InternalServerError(_inner) => ::std::option::Option::Some(_inner),
         616  +
            Self::OpsMetadataAlreadyExistsException(_inner) => ::std::option::Option::Some(_inner),
         617  +
            Self::OpsMetadataInvalidArgumentException(_inner) => ::std::option::Option::Some(_inner),
         618  +
            Self::OpsMetadataLimitExceededException(_inner) => ::std::option::Option::Some(_inner),
         619  +
            Self::OpsMetadataTooManyUpdatesException(_inner) => ::std::option::Option::Some(_inner),
         620  +
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         621  +
        }
         622  +
    }
         623  +
}
         624  +
impl ::std::fmt::Display for CreateOpsMetadataError {
         625  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         626  +
        match self {
         627  +
            Self::InternalServerError(_inner) => _inner.fmt(f),
         628  +
            Self::OpsMetadataAlreadyExistsException(_inner) => _inner.fmt(f),
         629  +
            Self::OpsMetadataInvalidArgumentException(_inner) => _inner.fmt(f),
         630  +
            Self::OpsMetadataLimitExceededException(_inner) => _inner.fmt(f),
         631  +
            Self::OpsMetadataTooManyUpdatesException(_inner) => _inner.fmt(f),
         632  +
            Self::Unhandled(_inner) => {
         633  +
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
         634  +
                    write!(f, "unhandled error ({code})")
         635  +
                } else {
         636  +
                    f.write_str("unhandled error")
         637  +
                }
         638  +
            }
         639  +
        }
         640  +
    }
         641  +
}
         642  +
impl ::aws_smithy_types::retry::ProvideErrorKind for CreateOpsMetadataError {
         643  +
    fn code(&self) -> ::std::option::Option<&str> {
         644  +
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         645  +
    }
         646  +
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         647  +
        ::std::option::Option::None
         648  +
    }
         649  +
}
         650  +
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateOpsMetadataError {
         651  +
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         652  +
        match self {
         653  +
            Self::InternalServerError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         654  +
            Self::OpsMetadataAlreadyExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         655  +
            Self::OpsMetadataInvalidArgumentException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         656  +
            Self::OpsMetadataLimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         657  +
            Self::OpsMetadataTooManyUpdatesException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
         658  +
            Self::Unhandled(_inner) => &_inner.meta,
         659  +
        }
         660  +
    }
         661  +
}
         662  +
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateOpsMetadataError {
         663  +
    fn create_unhandled_error(
         664  +
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
         665  +
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
         666  +
    ) -> Self {
         667  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         668  +
            source,
         669  +
            meta: meta.unwrap_or_default(),
         670  +
        })
         671  +
    }
         672  +
}
         673  +
impl ::aws_types::request_id::RequestId for crate::operation::create_ops_metadata::CreateOpsMetadataError {
         674  +
    fn request_id(&self) -> Option<&str> {
         675  +
        self.meta().request_id()
         676  +
    }
         677  +
}
         678  +
         679  +
pub use crate::operation::create_ops_metadata::_create_ops_metadata_input::CreateOpsMetadataInput;
         680  +
         681  +
pub use crate::operation::create_ops_metadata::_create_ops_metadata_output::CreateOpsMetadataOutput;
         682  +
         683  +
mod _create_ops_metadata_input;
         684  +
         685  +
mod _create_ops_metadata_output;
         686  +
         687  +
/// Builders
         688  +
pub mod builders;