AWS SDK

AWS SDK

rev. 3388bf5e18f4269f2b46f39cdc814c5c39d413d0

Files changed:

tmp-codegen-diff/aws-sdk/sdk/ssm/src/types/_ops_item_filter.rs

@@ -0,1 +0,230 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Describes an OpsItem filter.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct OpsItemFilter {
           7  +
    /// <p>The name of the filter.</p>
           8  +
    pub key: crate::types::OpsItemFilterKey,
           9  +
    /// <p>The filter value.</p>
          10  +
    pub values: ::std::vec::Vec<::std::string::String>,
          11  +
    /// <p>The operator used by the filter call.</p>
          12  +
    pub operator: crate::types::OpsItemFilterOperator,
          13  +
}
          14  +
impl OpsItemFilter {
          15  +
    /// <p>The name of the filter.</p>
          16  +
    pub fn key(&self) -> &crate::types::OpsItemFilterKey {
          17  +
        &self.key
          18  +
    }
          19  +
    /// <p>The filter value.</p>
          20  +
    pub fn values(&self) -> &[::std::string::String] {
          21  +
        use std::ops::Deref;
          22  +
        self.values.deref()
          23  +
    }
          24  +
    /// <p>The operator used by the filter call.</p>
          25  +
    pub fn operator(&self) -> &crate::types::OpsItemFilterOperator {
          26  +
        &self.operator
          27  +
    }
          28  +
}
          29  +
static OPSITEMFILTER_MEMBER_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          30  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemFilter$Key", "com.amazonaws.ssm", "OpsItemFilter"),
          31  +
    ::aws_smithy_schema::ShapeType::String,
          32  +
    "Key",
          33  +
    0,
          34  +
);
          35  +
static OPSITEMFILTER_MEMBER_VALUES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          36  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemFilterValues$member", "com.amazonaws.ssm", "OpsItemFilterValues"),
          37  +
    ::aws_smithy_schema::ShapeType::String,
          38  +
    "member",
          39  +
    0,
          40  +
);
          41  +
static OPSITEMFILTER_MEMBER_VALUES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          42  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemFilter$Values", "com.amazonaws.ssm", "OpsItemFilter"),
          43  +
    ::aws_smithy_schema::ShapeType::List,
          44  +
    "Values",
          45  +
    1,
          46  +
)
          47  +
.with_list_member(&OPSITEMFILTER_MEMBER_VALUES_MEMBER);
          48  +
static OPSITEMFILTER_MEMBER_OPERATOR: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          49  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemFilter$Operator", "com.amazonaws.ssm", "OpsItemFilter"),
          50  +
    ::aws_smithy_schema::ShapeType::String,
          51  +
    "Operator",
          52  +
    2,
          53  +
);
          54  +
static OPSITEMFILTER_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          55  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemFilter", "com.amazonaws.ssm", "OpsItemFilter"),
          56  +
    ::aws_smithy_schema::ShapeType::Structure,
          57  +
    &[&OPSITEMFILTER_MEMBER_KEY, &OPSITEMFILTER_MEMBER_VALUES, &OPSITEMFILTER_MEMBER_OPERATOR],
          58  +
);
          59  +
impl OpsItemFilter {
          60  +
    /// The schema for this shape.
          61  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &OPSITEMFILTER_SCHEMA;
          62  +
}
          63  +
impl ::aws_smithy_schema::serde::SerializableStruct for OpsItemFilter {
          64  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          65  +
    fn serialize_members(
          66  +
        &self,
          67  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          68  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          69  +
        {
          70  +
            let val = &self.key;
          71  +
            ser.write_string(&OPSITEMFILTER_MEMBER_KEY, val.as_str())?;
          72  +
        }
          73  +
        {
          74  +
            let val = &self.values;
          75  +
          76  +
            ser.write_list(
          77  +
                &OPSITEMFILTER_MEMBER_VALUES,
          78  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
          79  +
                    for item in val {
          80  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
          81  +
                    }
          82  +
                    Ok(())
          83  +
                },
          84  +
            )?;
          85  +
        }
          86  +
        {
          87  +
            let val = &self.operator;
          88  +
            ser.write_string(&OPSITEMFILTER_MEMBER_OPERATOR, val.as_str())?;
          89  +
        }
          90  +
        Ok(())
          91  +
    }
          92  +
}
          93  +
impl OpsItemFilter {
          94  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          95  +
    pub fn deserialize(
          96  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          97  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          98  +
        #[allow(unused_variables, unused_mut)]
          99  +
        let mut builder = Self::builder();
         100  +
        #[allow(
         101  +
            unused_variables,
         102  +
            unreachable_code,
         103  +
            clippy::single_match,
         104  +
            clippy::match_single_binding,
         105  +
            clippy::diverging_sub_expression
         106  +
        )]
         107  +
        deserializer.read_struct(&OPSITEMFILTER_SCHEMA, &mut |member, deser| {
         108  +
            match member.member_index() {
         109  +
                Some(0) => {
         110  +
                    builder.key = Some(crate::types::OpsItemFilterKey::from(deser.read_string(member)?.as_str()));
         111  +
                }
         112  +
                Some(1) => {
         113  +
                    builder.values = Some(deser.read_string_list(member)?);
         114  +
                }
         115  +
                Some(2) => {
         116  +
                    builder.operator = Some(crate::types::OpsItemFilterOperator::from(deser.read_string(member)?.as_str()));
         117  +
                }
         118  +
                _ => {}
         119  +
            }
         120  +
            Ok(())
         121  +
        })?;
         122  +
        builder.values = builder.values.or(Some(Vec::new()));
         123  +
        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
         124  +
    }
         125  +
}
         126  +
impl OpsItemFilter {
         127  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         128  +
    pub fn deserialize_with_response(
         129  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         130  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         131  +
        _status: u16,
         132  +
        _body: &[u8],
         133  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         134  +
        Self::deserialize(deserializer)
         135  +
    }
         136  +
}
         137  +
impl OpsItemFilter {
         138  +
    /// Creates a new builder-style object to manufacture [`OpsItemFilter`](crate::types::OpsItemFilter).
         139  +
    pub fn builder() -> crate::types::builders::OpsItemFilterBuilder {
         140  +
        crate::types::builders::OpsItemFilterBuilder::default()
         141  +
    }
         142  +
}
         143  +
         144  +
/// A builder for [`OpsItemFilter`](crate::types::OpsItemFilter).
         145  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         146  +
#[non_exhaustive]
         147  +
pub struct OpsItemFilterBuilder {
         148  +
    pub(crate) key: ::std::option::Option<crate::types::OpsItemFilterKey>,
         149  +
    pub(crate) values: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         150  +
    pub(crate) operator: ::std::option::Option<crate::types::OpsItemFilterOperator>,
         151  +
}
         152  +
impl OpsItemFilterBuilder {
         153  +
    /// <p>The name of the filter.</p>
         154  +
    /// This field is required.
         155  +
    pub fn key(mut self, input: crate::types::OpsItemFilterKey) -> Self {
         156  +
        self.key = ::std::option::Option::Some(input);
         157  +
        self
         158  +
    }
         159  +
    /// <p>The name of the filter.</p>
         160  +
    pub fn set_key(mut self, input: ::std::option::Option<crate::types::OpsItemFilterKey>) -> Self {
         161  +
        self.key = input;
         162  +
        self
         163  +
    }
         164  +
    /// <p>The name of the filter.</p>
         165  +
    pub fn get_key(&self) -> &::std::option::Option<crate::types::OpsItemFilterKey> {
         166  +
        &self.key
         167  +
    }
         168  +
    /// Appends an item to `values`.
         169  +
    ///
         170  +
    /// To override the contents of this collection use [`set_values`](Self::set_values).
         171  +
    ///
         172  +
    /// <p>The filter value.</p>
         173  +
    pub fn values(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         174  +
        let mut v = self.values.unwrap_or_default();
         175  +
        v.push(input.into());
         176  +
        self.values = ::std::option::Option::Some(v);
         177  +
        self
         178  +
    }
         179  +
    /// <p>The filter value.</p>
         180  +
    pub fn set_values(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
         181  +
        self.values = input;
         182  +
        self
         183  +
    }
         184  +
    /// <p>The filter value.</p>
         185  +
    pub fn get_values(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
         186  +
        &self.values
         187  +
    }
         188  +
    /// <p>The operator used by the filter call.</p>
         189  +
    /// This field is required.
         190  +
    pub fn operator(mut self, input: crate::types::OpsItemFilterOperator) -> Self {
         191  +
        self.operator = ::std::option::Option::Some(input);
         192  +
        self
         193  +
    }
         194  +
    /// <p>The operator used by the filter call.</p>
         195  +
    pub fn set_operator(mut self, input: ::std::option::Option<crate::types::OpsItemFilterOperator>) -> Self {
         196  +
        self.operator = input;
         197  +
        self
         198  +
    }
         199  +
    /// <p>The operator used by the filter call.</p>
         200  +
    pub fn get_operator(&self) -> &::std::option::Option<crate::types::OpsItemFilterOperator> {
         201  +
        &self.operator
         202  +
    }
         203  +
    /// Consumes the builder and constructs a [`OpsItemFilter`](crate::types::OpsItemFilter).
         204  +
    /// This method will fail if any of the following fields are not set:
         205  +
    /// - [`key`](crate::types::builders::OpsItemFilterBuilder::key)
         206  +
    /// - [`values`](crate::types::builders::OpsItemFilterBuilder::values)
         207  +
    /// - [`operator`](crate::types::builders::OpsItemFilterBuilder::operator)
         208  +
    pub fn build(self) -> ::std::result::Result<crate::types::OpsItemFilter, ::aws_smithy_types::error::operation::BuildError> {
         209  +
        ::std::result::Result::Ok(crate::types::OpsItemFilter {
         210  +
            key: self.key.ok_or_else(|| {
         211  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         212  +
                    "key",
         213  +
                    "key was not specified but it is required when building OpsItemFilter",
         214  +
                )
         215  +
            })?,
         216  +
            values: self.values.ok_or_else(|| {
         217  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         218  +
                    "values",
         219  +
                    "values was not specified but it is required when building OpsItemFilter",
         220  +
                )
         221  +
            })?,
         222  +
            operator: self.operator.ok_or_else(|| {
         223  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         224  +
                    "operator",
         225  +
                    "operator was not specified but it is required when building OpsItemFilter",
         226  +
                )
         227  +
            })?,
         228  +
        })
         229  +
    }
         230  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/types/_ops_item_filter_key.rs

@@ -0,1 +0,356 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// When writing a match expression against `OpsItemFilterKey`, it is important to ensure
           4  +
/// your code is forward-compatible. That is, if a match arm handles a case for a
           5  +
/// feature that is supported by the service but has not been represented as an enum
           6  +
/// variant in a current version of SDK, your code should continue to work when you
           7  +
/// upgrade SDK to a future version in which the enum does include a variant for that
           8  +
/// feature.
           9  +
///
          10  +
/// Here is an example of how you can make a match expression forward-compatible:
          11  +
///
          12  +
/// ```text
          13  +
/// # let opsitemfilterkey = unimplemented!();
          14  +
/// match opsitemfilterkey {
          15  +
///     OpsItemFilterKey::AccessRequestApproverArn => { /* ... */ },
          16  +
///     OpsItemFilterKey::AccessRequestApproverId => { /* ... */ },
          17  +
///     OpsItemFilterKey::AccessRequestIsReplica => { /* ... */ },
          18  +
///     OpsItemFilterKey::AccessRequestRequesterArn => { /* ... */ },
          19  +
///     OpsItemFilterKey::AccessRequestRequesterId => { /* ... */ },
          20  +
///     OpsItemFilterKey::AccessRequestSourceAccountId => { /* ... */ },
          21  +
///     OpsItemFilterKey::AccessRequestSourceOpsItemId => { /* ... */ },
          22  +
///     OpsItemFilterKey::AccessRequestSourceRegion => { /* ... */ },
          23  +
///     OpsItemFilterKey::AccessRequestTargetResourceId => { /* ... */ },
          24  +
///     OpsItemFilterKey::AccountId => { /* ... */ },
          25  +
///     OpsItemFilterKey::ActualEndTime => { /* ... */ },
          26  +
///     OpsItemFilterKey::ActualStartTime => { /* ... */ },
          27  +
///     OpsItemFilterKey::AutomationId => { /* ... */ },
          28  +
///     OpsItemFilterKey::Category => { /* ... */ },
          29  +
///     OpsItemFilterKey::ChangeRequestApproverArn => { /* ... */ },
          30  +
///     OpsItemFilterKey::ChangeRequestApproverName => { /* ... */ },
          31  +
///     OpsItemFilterKey::ChangeRequestRequesterArn => { /* ... */ },
          32  +
///     OpsItemFilterKey::ChangeRequestRequesterName => { /* ... */ },
          33  +
///     OpsItemFilterKey::ChangeRequestTargetsResourceGroup => { /* ... */ },
          34  +
///     OpsItemFilterKey::ChangeRequestTemplate => { /* ... */ },
          35  +
///     OpsItemFilterKey::CreatedBy => { /* ... */ },
          36  +
///     OpsItemFilterKey::CreatedTime => { /* ... */ },
          37  +
///     OpsItemFilterKey::InsightType => { /* ... */ },
          38  +
///     OpsItemFilterKey::LastModifiedTime => { /* ... */ },
          39  +
///     OpsItemFilterKey::OperationalData => { /* ... */ },
          40  +
///     OpsItemFilterKey::OperationalDataKey => { /* ... */ },
          41  +
///     OpsItemFilterKey::OperationalDataValue => { /* ... */ },
          42  +
///     OpsItemFilterKey::OpsitemId => { /* ... */ },
          43  +
///     OpsItemFilterKey::OpsitemType => { /* ... */ },
          44  +
///     OpsItemFilterKey::PlannedEndTime => { /* ... */ },
          45  +
///     OpsItemFilterKey::PlannedStartTime => { /* ... */ },
          46  +
///     OpsItemFilterKey::Priority => { /* ... */ },
          47  +
///     OpsItemFilterKey::ResourceId => { /* ... */ },
          48  +
///     OpsItemFilterKey::Severity => { /* ... */ },
          49  +
///     OpsItemFilterKey::Source => { /* ... */ },
          50  +
///     OpsItemFilterKey::Status => { /* ... */ },
          51  +
///     OpsItemFilterKey::Title => { /* ... */ },
          52  +
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
          53  +
///     _ => { /* ... */ },
          54  +
/// }
          55  +
/// ```
          56  +
/// The above code demonstrates that when `opsitemfilterkey` represents
          57  +
/// `NewFeature`, the execution path will lead to the second last match arm,
          58  +
/// even though the enum does not contain a variant `OpsItemFilterKey::NewFeature`
          59  +
/// in the current version of SDK. The reason is that the variable `other`,
          60  +
/// created by the `@` operator, is bound to
          61  +
/// `OpsItemFilterKey::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
          62  +
/// and calling `as_str` on it yields `"NewFeature"`.
          63  +
/// This match expression is forward-compatible when executed with a newer
          64  +
/// version of SDK where the variant `OpsItemFilterKey::NewFeature` is defined.
          65  +
/// Specifically, when `opsitemfilterkey` represents `NewFeature`,
          66  +
/// the execution path will hit the second last match arm as before by virtue of
          67  +
/// calling `as_str` on `OpsItemFilterKey::NewFeature` also yielding `"NewFeature"`.
          68  +
///
          69  +
/// Explicitly matching on the `Unknown` variant should
          70  +
/// be avoided for two reasons:
          71  +
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
          72  +
/// - It might inadvertently shadow other intended match arms.
          73  +
///
          74  +
#[allow(missing_docs)] // documentation missing in model
          75  +
#[non_exhaustive]
          76  +
#[derive(
          77  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
          78  +
)]
          79  +
pub enum OpsItemFilterKey {
          80  +
    #[allow(missing_docs)] // documentation missing in model
          81  +
    AccessRequestApproverArn,
          82  +
    #[allow(missing_docs)] // documentation missing in model
          83  +
    AccessRequestApproverId,
          84  +
    #[allow(missing_docs)] // documentation missing in model
          85  +
    AccessRequestIsReplica,
          86  +
    #[allow(missing_docs)] // documentation missing in model
          87  +
    AccessRequestRequesterArn,
          88  +
    #[allow(missing_docs)] // documentation missing in model
          89  +
    AccessRequestRequesterId,
          90  +
    #[allow(missing_docs)] // documentation missing in model
          91  +
    AccessRequestSourceAccountId,
          92  +
    #[allow(missing_docs)] // documentation missing in model
          93  +
    AccessRequestSourceOpsItemId,
          94  +
    #[allow(missing_docs)] // documentation missing in model
          95  +
    AccessRequestSourceRegion,
          96  +
    #[allow(missing_docs)] // documentation missing in model
          97  +
    AccessRequestTargetResourceId,
          98  +
    #[allow(missing_docs)] // documentation missing in model
          99  +
    AccountId,
         100  +
    #[allow(missing_docs)] // documentation missing in model
         101  +
    ActualEndTime,
         102  +
    #[allow(missing_docs)] // documentation missing in model
         103  +
    ActualStartTime,
         104  +
    #[allow(missing_docs)] // documentation missing in model
         105  +
    AutomationId,
         106  +
    #[allow(missing_docs)] // documentation missing in model
         107  +
    Category,
         108  +
    #[allow(missing_docs)] // documentation missing in model
         109  +
    ChangeRequestApproverArn,
         110  +
    #[allow(missing_docs)] // documentation missing in model
         111  +
    ChangeRequestApproverName,
         112  +
    #[allow(missing_docs)] // documentation missing in model
         113  +
    ChangeRequestRequesterArn,
         114  +
    #[allow(missing_docs)] // documentation missing in model
         115  +
    ChangeRequestRequesterName,
         116  +
    #[allow(missing_docs)] // documentation missing in model
         117  +
    ChangeRequestTargetsResourceGroup,
         118  +
    #[allow(missing_docs)] // documentation missing in model
         119  +
    ChangeRequestTemplate,
         120  +
    #[allow(missing_docs)] // documentation missing in model
         121  +
    CreatedBy,
         122  +
    #[allow(missing_docs)] // documentation missing in model
         123  +
    CreatedTime,
         124  +
    #[allow(missing_docs)] // documentation missing in model
         125  +
    InsightType,
         126  +
    #[allow(missing_docs)] // documentation missing in model
         127  +
    LastModifiedTime,
         128  +
    #[allow(missing_docs)] // documentation missing in model
         129  +
    OperationalData,
         130  +
    #[allow(missing_docs)] // documentation missing in model
         131  +
    OperationalDataKey,
         132  +
    #[allow(missing_docs)] // documentation missing in model
         133  +
    OperationalDataValue,
         134  +
    #[allow(missing_docs)] // documentation missing in model
         135  +
    OpsitemId,
         136  +
    #[allow(missing_docs)] // documentation missing in model
         137  +
    OpsitemType,
         138  +
    #[allow(missing_docs)] // documentation missing in model
         139  +
    PlannedEndTime,
         140  +
    #[allow(missing_docs)] // documentation missing in model
         141  +
    PlannedStartTime,
         142  +
    #[allow(missing_docs)] // documentation missing in model
         143  +
    Priority,
         144  +
    #[allow(missing_docs)] // documentation missing in model
         145  +
    ResourceId,
         146  +
    #[allow(missing_docs)] // documentation missing in model
         147  +
    Severity,
         148  +
    #[allow(missing_docs)] // documentation missing in model
         149  +
    Source,
         150  +
    #[allow(missing_docs)] // documentation missing in model
         151  +
    Status,
         152  +
    #[allow(missing_docs)] // documentation missing in model
         153  +
    Title,
         154  +
    /// `Unknown` contains new variants that have been added since this code was generated.
         155  +
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
         156  +
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
         157  +
}
         158  +
impl ::std::convert::From<&str> for OpsItemFilterKey {
         159  +
    fn from(s: &str) -> Self {
         160  +
        match s {
         161  +
            "AccessRequestByApproverArn" => OpsItemFilterKey::AccessRequestApproverArn,
         162  +
            "AccessRequestByApproverId" => OpsItemFilterKey::AccessRequestApproverId,
         163  +
            "AccessRequestByIsReplica" => OpsItemFilterKey::AccessRequestIsReplica,
         164  +
            "AccessRequestByRequesterArn" => OpsItemFilterKey::AccessRequestRequesterArn,
         165  +
            "AccessRequestByRequesterId" => OpsItemFilterKey::AccessRequestRequesterId,
         166  +
            "AccessRequestBySourceAccountId" => OpsItemFilterKey::AccessRequestSourceAccountId,
         167  +
            "AccessRequestBySourceOpsItemId" => OpsItemFilterKey::AccessRequestSourceOpsItemId,
         168  +
            "AccessRequestBySourceRegion" => OpsItemFilterKey::AccessRequestSourceRegion,
         169  +
            "AccessRequestByTargetResourceId" => OpsItemFilterKey::AccessRequestTargetResourceId,
         170  +
            "AccountId" => OpsItemFilterKey::AccountId,
         171  +
            "ActualEndTime" => OpsItemFilterKey::ActualEndTime,
         172  +
            "ActualStartTime" => OpsItemFilterKey::ActualStartTime,
         173  +
            "AutomationId" => OpsItemFilterKey::AutomationId,
         174  +
            "Category" => OpsItemFilterKey::Category,
         175  +
            "ChangeRequestByApproverArn" => OpsItemFilterKey::ChangeRequestApproverArn,
         176  +
            "ChangeRequestByApproverName" => OpsItemFilterKey::ChangeRequestApproverName,
         177  +
            "ChangeRequestByRequesterArn" => OpsItemFilterKey::ChangeRequestRequesterArn,
         178  +
            "ChangeRequestByRequesterName" => OpsItemFilterKey::ChangeRequestRequesterName,
         179  +
            "ChangeRequestByTargetsResourceGroup" => OpsItemFilterKey::ChangeRequestTargetsResourceGroup,
         180  +
            "ChangeRequestByTemplate" => OpsItemFilterKey::ChangeRequestTemplate,
         181  +
            "CreatedBy" => OpsItemFilterKey::CreatedBy,
         182  +
            "CreatedTime" => OpsItemFilterKey::CreatedTime,
         183  +
            "InsightByType" => OpsItemFilterKey::InsightType,
         184  +
            "LastModifiedTime" => OpsItemFilterKey::LastModifiedTime,
         185  +
            "OperationalData" => OpsItemFilterKey::OperationalData,
         186  +
            "OperationalDataKey" => OpsItemFilterKey::OperationalDataKey,
         187  +
            "OperationalDataValue" => OpsItemFilterKey::OperationalDataValue,
         188  +
            "OpsItemId" => OpsItemFilterKey::OpsitemId,
         189  +
            "OpsItemType" => OpsItemFilterKey::OpsitemType,
         190  +
            "PlannedEndTime" => OpsItemFilterKey::PlannedEndTime,
         191  +
            "PlannedStartTime" => OpsItemFilterKey::PlannedStartTime,
         192  +
            "Priority" => OpsItemFilterKey::Priority,
         193  +
            "ResourceId" => OpsItemFilterKey::ResourceId,
         194  +
            "Severity" => OpsItemFilterKey::Severity,
         195  +
            "Source" => OpsItemFilterKey::Source,
         196  +
            "Status" => OpsItemFilterKey::Status,
         197  +
            "Title" => OpsItemFilterKey::Title,
         198  +
            other => OpsItemFilterKey::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
         199  +
        }
         200  +
    }
         201  +
}
         202  +
impl ::std::str::FromStr for OpsItemFilterKey {
         203  +
    type Err = ::std::convert::Infallible;
         204  +
         205  +
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
         206  +
        ::std::result::Result::Ok(OpsItemFilterKey::from(s))
         207  +
    }
         208  +
}
         209  +
impl OpsItemFilterKey {
         210  +
    /// Returns the `&str` value of the enum member.
         211  +
    pub fn as_str(&self) -> &str {
         212  +
        match self {
         213  +
            OpsItemFilterKey::AccessRequestApproverArn => "AccessRequestByApproverArn",
         214  +
            OpsItemFilterKey::AccessRequestApproverId => "AccessRequestByApproverId",
         215  +
            OpsItemFilterKey::AccessRequestIsReplica => "AccessRequestByIsReplica",
         216  +
            OpsItemFilterKey::AccessRequestRequesterArn => "AccessRequestByRequesterArn",
         217  +
            OpsItemFilterKey::AccessRequestRequesterId => "AccessRequestByRequesterId",
         218  +
            OpsItemFilterKey::AccessRequestSourceAccountId => "AccessRequestBySourceAccountId",
         219  +
            OpsItemFilterKey::AccessRequestSourceOpsItemId => "AccessRequestBySourceOpsItemId",
         220  +
            OpsItemFilterKey::AccessRequestSourceRegion => "AccessRequestBySourceRegion",
         221  +
            OpsItemFilterKey::AccessRequestTargetResourceId => "AccessRequestByTargetResourceId",
         222  +
            OpsItemFilterKey::AccountId => "AccountId",
         223  +
            OpsItemFilterKey::ActualEndTime => "ActualEndTime",
         224  +
            OpsItemFilterKey::ActualStartTime => "ActualStartTime",
         225  +
            OpsItemFilterKey::AutomationId => "AutomationId",
         226  +
            OpsItemFilterKey::Category => "Category",
         227  +
            OpsItemFilterKey::ChangeRequestApproverArn => "ChangeRequestByApproverArn",
         228  +
            OpsItemFilterKey::ChangeRequestApproverName => "ChangeRequestByApproverName",
         229  +
            OpsItemFilterKey::ChangeRequestRequesterArn => "ChangeRequestByRequesterArn",
         230  +
            OpsItemFilterKey::ChangeRequestRequesterName => "ChangeRequestByRequesterName",
         231  +
            OpsItemFilterKey::ChangeRequestTargetsResourceGroup => "ChangeRequestByTargetsResourceGroup",
         232  +
            OpsItemFilterKey::ChangeRequestTemplate => "ChangeRequestByTemplate",
         233  +
            OpsItemFilterKey::CreatedBy => "CreatedBy",
         234  +
            OpsItemFilterKey::CreatedTime => "CreatedTime",
         235  +
            OpsItemFilterKey::InsightType => "InsightByType",
         236  +
            OpsItemFilterKey::LastModifiedTime => "LastModifiedTime",
         237  +
            OpsItemFilterKey::OperationalData => "OperationalData",
         238  +
            OpsItemFilterKey::OperationalDataKey => "OperationalDataKey",
         239  +
            OpsItemFilterKey::OperationalDataValue => "OperationalDataValue",
         240  +
            OpsItemFilterKey::OpsitemId => "OpsItemId",
         241  +
            OpsItemFilterKey::OpsitemType => "OpsItemType",
         242  +
            OpsItemFilterKey::PlannedEndTime => "PlannedEndTime",
         243  +
            OpsItemFilterKey::PlannedStartTime => "PlannedStartTime",
         244  +
            OpsItemFilterKey::Priority => "Priority",
         245  +
            OpsItemFilterKey::ResourceId => "ResourceId",
         246  +
            OpsItemFilterKey::Severity => "Severity",
         247  +
            OpsItemFilterKey::Source => "Source",
         248  +
            OpsItemFilterKey::Status => "Status",
         249  +
            OpsItemFilterKey::Title => "Title",
         250  +
            OpsItemFilterKey::Unknown(value) => value.as_str(),
         251  +
        }
         252  +
    }
         253  +
    /// Returns all the `&str` representations of the enum members.
         254  +
    pub const fn values() -> &'static [&'static str] {
         255  +
        &[
         256  +
            "AccessRequestByApproverArn",
         257  +
            "AccessRequestByApproverId",
         258  +
            "AccessRequestByIsReplica",
         259  +
            "AccessRequestByRequesterArn",
         260  +
            "AccessRequestByRequesterId",
         261  +
            "AccessRequestBySourceAccountId",
         262  +
            "AccessRequestBySourceOpsItemId",
         263  +
            "AccessRequestBySourceRegion",
         264  +
            "AccessRequestByTargetResourceId",
         265  +
            "AccountId",
         266  +
            "ActualEndTime",
         267  +
            "ActualStartTime",
         268  +
            "AutomationId",
         269  +
            "Category",
         270  +
            "ChangeRequestByApproverArn",
         271  +
            "ChangeRequestByApproverName",
         272  +
            "ChangeRequestByRequesterArn",
         273  +
            "ChangeRequestByRequesterName",
         274  +
            "ChangeRequestByTargetsResourceGroup",
         275  +
            "ChangeRequestByTemplate",
         276  +
            "CreatedBy",
         277  +
            "CreatedTime",
         278  +
            "InsightByType",
         279  +
            "LastModifiedTime",
         280  +
            "OperationalData",
         281  +
            "OperationalDataKey",
         282  +
            "OperationalDataValue",
         283  +
            "OpsItemId",
         284  +
            "OpsItemType",
         285  +
            "PlannedEndTime",
         286  +
            "PlannedStartTime",
         287  +
            "Priority",
         288  +
            "ResourceId",
         289  +
            "Severity",
         290  +
            "Source",
         291  +
            "Status",
         292  +
            "Title",
         293  +
        ]
         294  +
    }
         295  +
}
         296  +
impl ::std::convert::AsRef<str> for OpsItemFilterKey {
         297  +
    fn as_ref(&self) -> &str {
         298  +
        self.as_str()
         299  +
    }
         300  +
}
         301  +
impl OpsItemFilterKey {
         302  +
    /// Parses the enum value while disallowing unknown variants.
         303  +
    ///
         304  +
    /// Unknown variants will result in an error.
         305  +
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
         306  +
        match Self::from(value) {
         307  +
            #[allow(deprecated)]
         308  +
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
         309  +
            known => Ok(known),
         310  +
        }
         311  +
    }
         312  +
}
         313  +
impl ::std::fmt::Display for OpsItemFilterKey {
         314  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         315  +
        match self {
         316  +
            OpsItemFilterKey::AccessRequestApproverArn => write!(f, "AccessRequestByApproverArn"),
         317  +
            OpsItemFilterKey::AccessRequestApproverId => write!(f, "AccessRequestByApproverId"),
         318  +
            OpsItemFilterKey::AccessRequestIsReplica => write!(f, "AccessRequestByIsReplica"),
         319  +
            OpsItemFilterKey::AccessRequestRequesterArn => write!(f, "AccessRequestByRequesterArn"),
         320  +
            OpsItemFilterKey::AccessRequestRequesterId => write!(f, "AccessRequestByRequesterId"),
         321  +
            OpsItemFilterKey::AccessRequestSourceAccountId => write!(f, "AccessRequestBySourceAccountId"),
         322  +
            OpsItemFilterKey::AccessRequestSourceOpsItemId => write!(f, "AccessRequestBySourceOpsItemId"),
         323  +
            OpsItemFilterKey::AccessRequestSourceRegion => write!(f, "AccessRequestBySourceRegion"),
         324  +
            OpsItemFilterKey::AccessRequestTargetResourceId => write!(f, "AccessRequestByTargetResourceId"),
         325  +
            OpsItemFilterKey::AccountId => write!(f, "AccountId"),
         326  +
            OpsItemFilterKey::ActualEndTime => write!(f, "ActualEndTime"),
         327  +
            OpsItemFilterKey::ActualStartTime => write!(f, "ActualStartTime"),
         328  +
            OpsItemFilterKey::AutomationId => write!(f, "AutomationId"),
         329  +
            OpsItemFilterKey::Category => write!(f, "Category"),
         330  +
            OpsItemFilterKey::ChangeRequestApproverArn => write!(f, "ChangeRequestByApproverArn"),
         331  +
            OpsItemFilterKey::ChangeRequestApproverName => write!(f, "ChangeRequestByApproverName"),
         332  +
            OpsItemFilterKey::ChangeRequestRequesterArn => write!(f, "ChangeRequestByRequesterArn"),
         333  +
            OpsItemFilterKey::ChangeRequestRequesterName => write!(f, "ChangeRequestByRequesterName"),
         334  +
            OpsItemFilterKey::ChangeRequestTargetsResourceGroup => write!(f, "ChangeRequestByTargetsResourceGroup"),
         335  +
            OpsItemFilterKey::ChangeRequestTemplate => write!(f, "ChangeRequestByTemplate"),
         336  +
            OpsItemFilterKey::CreatedBy => write!(f, "CreatedBy"),
         337  +
            OpsItemFilterKey::CreatedTime => write!(f, "CreatedTime"),
         338  +
            OpsItemFilterKey::InsightType => write!(f, "InsightByType"),
         339  +
            OpsItemFilterKey::LastModifiedTime => write!(f, "LastModifiedTime"),
         340  +
            OpsItemFilterKey::OperationalData => write!(f, "OperationalData"),
         341  +
            OpsItemFilterKey::OperationalDataKey => write!(f, "OperationalDataKey"),
         342  +
            OpsItemFilterKey::OperationalDataValue => write!(f, "OperationalDataValue"),
         343  +
            OpsItemFilterKey::OpsitemId => write!(f, "OpsItemId"),
         344  +
            OpsItemFilterKey::OpsitemType => write!(f, "OpsItemType"),
         345  +
            OpsItemFilterKey::PlannedEndTime => write!(f, "PlannedEndTime"),
         346  +
            OpsItemFilterKey::PlannedStartTime => write!(f, "PlannedStartTime"),
         347  +
            OpsItemFilterKey::Priority => write!(f, "Priority"),
         348  +
            OpsItemFilterKey::ResourceId => write!(f, "ResourceId"),
         349  +
            OpsItemFilterKey::Severity => write!(f, "Severity"),
         350  +
            OpsItemFilterKey::Source => write!(f, "Source"),
         351  +
            OpsItemFilterKey::Status => write!(f, "Status"),
         352  +
            OpsItemFilterKey::Title => write!(f, "Title"),
         353  +
            OpsItemFilterKey::Unknown(value) => write!(f, "{value}"),
         354  +
        }
         355  +
    }
         356  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/types/_ops_item_filter_operator.rs

@@ -0,1 +0,120 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// When writing a match expression against `OpsItemFilterOperator`, it is important to ensure
           4  +
/// your code is forward-compatible. That is, if a match arm handles a case for a
           5  +
/// feature that is supported by the service but has not been represented as an enum
           6  +
/// variant in a current version of SDK, your code should continue to work when you
           7  +
/// upgrade SDK to a future version in which the enum does include a variant for that
           8  +
/// feature.
           9  +
///
          10  +
/// Here is an example of how you can make a match expression forward-compatible:
          11  +
///
          12  +
/// ```text
          13  +
/// # let opsitemfilteroperator = unimplemented!();
          14  +
/// match opsitemfilteroperator {
          15  +
///     OpsItemFilterOperator::Contains => { /* ... */ },
          16  +
///     OpsItemFilterOperator::Equal => { /* ... */ },
          17  +
///     OpsItemFilterOperator::GreaterThan => { /* ... */ },
          18  +
///     OpsItemFilterOperator::LessThan => { /* ... */ },
          19  +
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
          20  +
///     _ => { /* ... */ },
          21  +
/// }
          22  +
/// ```
          23  +
/// The above code demonstrates that when `opsitemfilteroperator` represents
          24  +
/// `NewFeature`, the execution path will lead to the second last match arm,
          25  +
/// even though the enum does not contain a variant `OpsItemFilterOperator::NewFeature`
          26  +
/// in the current version of SDK. The reason is that the variable `other`,
          27  +
/// created by the `@` operator, is bound to
          28  +
/// `OpsItemFilterOperator::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
          29  +
/// and calling `as_str` on it yields `"NewFeature"`.
          30  +
/// This match expression is forward-compatible when executed with a newer
          31  +
/// version of SDK where the variant `OpsItemFilterOperator::NewFeature` is defined.
          32  +
/// Specifically, when `opsitemfilteroperator` represents `NewFeature`,
          33  +
/// the execution path will hit the second last match arm as before by virtue of
          34  +
/// calling `as_str` on `OpsItemFilterOperator::NewFeature` also yielding `"NewFeature"`.
          35  +
///
          36  +
/// Explicitly matching on the `Unknown` variant should
          37  +
/// be avoided for two reasons:
          38  +
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
          39  +
/// - It might inadvertently shadow other intended match arms.
          40  +
///
          41  +
#[allow(missing_docs)] // documentation missing in model
          42  +
#[non_exhaustive]
          43  +
#[derive(
          44  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
          45  +
)]
          46  +
pub enum OpsItemFilterOperator {
          47  +
    #[allow(missing_docs)] // documentation missing in model
          48  +
    Contains,
          49  +
    #[allow(missing_docs)] // documentation missing in model
          50  +
    Equal,
          51  +
    #[allow(missing_docs)] // documentation missing in model
          52  +
    GreaterThan,
          53  +
    #[allow(missing_docs)] // documentation missing in model
          54  +
    LessThan,
          55  +
    /// `Unknown` contains new variants that have been added since this code was generated.
          56  +
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
          57  +
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
          58  +
}
          59  +
impl ::std::convert::From<&str> for OpsItemFilterOperator {
          60  +
    fn from(s: &str) -> Self {
          61  +
        match s {
          62  +
            "Contains" => OpsItemFilterOperator::Contains,
          63  +
            "Equal" => OpsItemFilterOperator::Equal,
          64  +
            "GreaterThan" => OpsItemFilterOperator::GreaterThan,
          65  +
            "LessThan" => OpsItemFilterOperator::LessThan,
          66  +
            other => OpsItemFilterOperator::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
          67  +
        }
          68  +
    }
          69  +
}
          70  +
impl ::std::str::FromStr for OpsItemFilterOperator {
          71  +
    type Err = ::std::convert::Infallible;
          72  +
          73  +
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
          74  +
        ::std::result::Result::Ok(OpsItemFilterOperator::from(s))
          75  +
    }
          76  +
}
          77  +
impl OpsItemFilterOperator {
          78  +
    /// Returns the `&str` value of the enum member.
          79  +
    pub fn as_str(&self) -> &str {
          80  +
        match self {
          81  +
            OpsItemFilterOperator::Contains => "Contains",
          82  +
            OpsItemFilterOperator::Equal => "Equal",
          83  +
            OpsItemFilterOperator::GreaterThan => "GreaterThan",
          84  +
            OpsItemFilterOperator::LessThan => "LessThan",
          85  +
            OpsItemFilterOperator::Unknown(value) => value.as_str(),
          86  +
        }
          87  +
    }
          88  +
    /// Returns all the `&str` representations of the enum members.
          89  +
    pub const fn values() -> &'static [&'static str] {
          90  +
        &["Contains", "Equal", "GreaterThan", "LessThan"]
          91  +
    }
          92  +
}
          93  +
impl ::std::convert::AsRef<str> for OpsItemFilterOperator {
          94  +
    fn as_ref(&self) -> &str {
          95  +
        self.as_str()
          96  +
    }
          97  +
}
          98  +
impl OpsItemFilterOperator {
          99  +
    /// Parses the enum value while disallowing unknown variants.
         100  +
    ///
         101  +
    /// Unknown variants will result in an error.
         102  +
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
         103  +
        match Self::from(value) {
         104  +
            #[allow(deprecated)]
         105  +
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
         106  +
            known => Ok(known),
         107  +
        }
         108  +
    }
         109  +
}
         110  +
impl ::std::fmt::Display for OpsItemFilterOperator {
         111  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         112  +
        match self {
         113  +
            OpsItemFilterOperator::Contains => write!(f, "Contains"),
         114  +
            OpsItemFilterOperator::Equal => write!(f, "Equal"),
         115  +
            OpsItemFilterOperator::GreaterThan => write!(f, "GreaterThan"),
         116  +
            OpsItemFilterOperator::LessThan => write!(f, "LessThan"),
         117  +
            OpsItemFilterOperator::Unknown(value) => write!(f, "{value}"),
         118  +
        }
         119  +
    }
         120  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/types/_ops_item_identity.rs

@@ -0,1 +0,116 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Information about the user or resource that created an OpsItem event.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct OpsItemIdentity {
           7  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem event.</p>
           8  +
    pub arn: ::std::option::Option<::std::string::String>,
           9  +
}
          10  +
impl OpsItemIdentity {
          11  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem event.</p>
          12  +
    pub fn arn(&self) -> ::std::option::Option<&str> {
          13  +
        self.arn.as_deref()
          14  +
    }
          15  +
}
          16  +
static OPSITEMIDENTITY_MEMBER_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          17  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemIdentity$Arn", "com.amazonaws.ssm", "OpsItemIdentity"),
          18  +
    ::aws_smithy_schema::ShapeType::String,
          19  +
    "Arn",
          20  +
    0,
          21  +
);
          22  +
static OPSITEMIDENTITY_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          23  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemIdentity", "com.amazonaws.ssm", "OpsItemIdentity"),
          24  +
    ::aws_smithy_schema::ShapeType::Structure,
          25  +
    &[&OPSITEMIDENTITY_MEMBER_ARN],
          26  +
);
          27  +
impl OpsItemIdentity {
          28  +
    /// The schema for this shape.
          29  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &OPSITEMIDENTITY_SCHEMA;
          30  +
}
          31  +
impl ::aws_smithy_schema::serde::SerializableStruct for OpsItemIdentity {
          32  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          33  +
    fn serialize_members(
          34  +
        &self,
          35  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          36  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          37  +
        if let Some(ref val) = self.arn {
          38  +
            ser.write_string(&OPSITEMIDENTITY_MEMBER_ARN, val)?;
          39  +
        }
          40  +
        Ok(())
          41  +
    }
          42  +
}
          43  +
impl OpsItemIdentity {
          44  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          45  +
    pub fn deserialize(
          46  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          47  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          48  +
        #[allow(unused_variables, unused_mut)]
          49  +
        let mut builder = Self::builder();
          50  +
        #[allow(
          51  +
            unused_variables,
          52  +
            unreachable_code,
          53  +
            clippy::single_match,
          54  +
            clippy::match_single_binding,
          55  +
            clippy::diverging_sub_expression
          56  +
        )]
          57  +
        deserializer.read_struct(&OPSITEMIDENTITY_SCHEMA, &mut |member, deser| {
          58  +
            match member.member_index() {
          59  +
                Some(0) => {
          60  +
                    if deser.is_null() {
          61  +
                        deser.read_null()?;
          62  +
                    } else {
          63  +
                        builder.arn = Some(deser.read_string(member)?);
          64  +
                    }
          65  +
                }
          66  +
                _ => {}
          67  +
            }
          68  +
            Ok(())
          69  +
        })?;
          70  +
        Ok(builder.build())
          71  +
    }
          72  +
}
          73  +
impl OpsItemIdentity {
          74  +
    /// Deserializes this structure from a body deserializer and HTTP response.
          75  +
    pub fn deserialize_with_response(
          76  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          77  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
          78  +
        _status: u16,
          79  +
        _body: &[u8],
          80  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          81  +
        Self::deserialize(deserializer)
          82  +
    }
          83  +
}
          84  +
impl OpsItemIdentity {
          85  +
    /// Creates a new builder-style object to manufacture [`OpsItemIdentity`](crate::types::OpsItemIdentity).
          86  +
    pub fn builder() -> crate::types::builders::OpsItemIdentityBuilder {
          87  +
        crate::types::builders::OpsItemIdentityBuilder::default()
          88  +
    }
          89  +
}
          90  +
          91  +
/// A builder for [`OpsItemIdentity`](crate::types::OpsItemIdentity).
          92  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          93  +
#[non_exhaustive]
          94  +
pub struct OpsItemIdentityBuilder {
          95  +
    pub(crate) arn: ::std::option::Option<::std::string::String>,
          96  +
}
          97  +
impl OpsItemIdentityBuilder {
          98  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem event.</p>
          99  +
    pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         100  +
        self.arn = ::std::option::Option::Some(input.into());
         101  +
        self
         102  +
    }
         103  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem event.</p>
         104  +
    pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         105  +
        self.arn = input;
         106  +
        self
         107  +
    }
         108  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem event.</p>
         109  +
    pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
         110  +
        &self.arn
         111  +
    }
         112  +
    /// Consumes the builder and constructs a [`OpsItemIdentity`](crate::types::OpsItemIdentity).
         113  +
    pub fn build(self) -> crate::types::OpsItemIdentity {
         114  +
        crate::types::OpsItemIdentity { arn: self.arn }
         115  +
    }
         116  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/types/_ops_item_notification.rs

@@ -0,1 +0,116 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>A notification about the OpsItem.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct OpsItemNotification {
           7  +
    /// <p>The Amazon Resource Name (ARN) of an Amazon Simple Notification Service (Amazon SNS) topic where notifications are sent when this OpsItem is edited or changed.</p>
           8  +
    pub arn: ::std::option::Option<::std::string::String>,
           9  +
}
          10  +
impl OpsItemNotification {
          11  +
    /// <p>The Amazon Resource Name (ARN) of an Amazon Simple Notification Service (Amazon SNS) topic where notifications are sent when this OpsItem is edited or changed.</p>
          12  +
    pub fn arn(&self) -> ::std::option::Option<&str> {
          13  +
        self.arn.as_deref()
          14  +
    }
          15  +
}
          16  +
static OPSITEMNOTIFICATION_MEMBER_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          17  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemNotification$Arn", "com.amazonaws.ssm", "OpsItemNotification"),
          18  +
    ::aws_smithy_schema::ShapeType::String,
          19  +
    "Arn",
          20  +
    0,
          21  +
);
          22  +
static OPSITEMNOTIFICATION_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          23  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemNotification", "com.amazonaws.ssm", "OpsItemNotification"),
          24  +
    ::aws_smithy_schema::ShapeType::Structure,
          25  +
    &[&OPSITEMNOTIFICATION_MEMBER_ARN],
          26  +
);
          27  +
impl OpsItemNotification {
          28  +
    /// The schema for this shape.
          29  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &OPSITEMNOTIFICATION_SCHEMA;
          30  +
}
          31  +
impl ::aws_smithy_schema::serde::SerializableStruct for OpsItemNotification {
          32  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          33  +
    fn serialize_members(
          34  +
        &self,
          35  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          36  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          37  +
        if let Some(ref val) = self.arn {
          38  +
            ser.write_string(&OPSITEMNOTIFICATION_MEMBER_ARN, val)?;
          39  +
        }
          40  +
        Ok(())
          41  +
    }
          42  +
}
          43  +
impl OpsItemNotification {
          44  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          45  +
    pub fn deserialize(
          46  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          47  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          48  +
        #[allow(unused_variables, unused_mut)]
          49  +
        let mut builder = Self::builder();
          50  +
        #[allow(
          51  +
            unused_variables,
          52  +
            unreachable_code,
          53  +
            clippy::single_match,
          54  +
            clippy::match_single_binding,
          55  +
            clippy::diverging_sub_expression
          56  +
        )]
          57  +
        deserializer.read_struct(&OPSITEMNOTIFICATION_SCHEMA, &mut |member, deser| {
          58  +
            match member.member_index() {
          59  +
                Some(0) => {
          60  +
                    if deser.is_null() {
          61  +
                        deser.read_null()?;
          62  +
                    } else {
          63  +
                        builder.arn = Some(deser.read_string(member)?);
          64  +
                    }
          65  +
                }
          66  +
                _ => {}
          67  +
            }
          68  +
            Ok(())
          69  +
        })?;
          70  +
        Ok(builder.build())
          71  +
    }
          72  +
}
          73  +
impl OpsItemNotification {
          74  +
    /// Deserializes this structure from a body deserializer and HTTP response.
          75  +
    pub fn deserialize_with_response(
          76  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          77  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
          78  +
        _status: u16,
          79  +
        _body: &[u8],
          80  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          81  +
        Self::deserialize(deserializer)
          82  +
    }
          83  +
}
          84  +
impl OpsItemNotification {
          85  +
    /// Creates a new builder-style object to manufacture [`OpsItemNotification`](crate::types::OpsItemNotification).
          86  +
    pub fn builder() -> crate::types::builders::OpsItemNotificationBuilder {
          87  +
        crate::types::builders::OpsItemNotificationBuilder::default()
          88  +
    }
          89  +
}
          90  +
          91  +
/// A builder for [`OpsItemNotification`](crate::types::OpsItemNotification).
          92  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          93  +
#[non_exhaustive]
          94  +
pub struct OpsItemNotificationBuilder {
          95  +
    pub(crate) arn: ::std::option::Option<::std::string::String>,
          96  +
}
          97  +
impl OpsItemNotificationBuilder {
          98  +
    /// <p>The Amazon Resource Name (ARN) of an Amazon Simple Notification Service (Amazon SNS) topic where notifications are sent when this OpsItem is edited or changed.</p>
          99  +
    pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         100  +
        self.arn = ::std::option::Option::Some(input.into());
         101  +
        self
         102  +
    }
         103  +
    /// <p>The Amazon Resource Name (ARN) of an Amazon Simple Notification Service (Amazon SNS) topic where notifications are sent when this OpsItem is edited or changed.</p>
         104  +
    pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         105  +
        self.arn = input;
         106  +
        self
         107  +
    }
         108  +
    /// <p>The Amazon Resource Name (ARN) of an Amazon Simple Notification Service (Amazon SNS) topic where notifications are sent when this OpsItem is edited or changed.</p>
         109  +
    pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
         110  +
        &self.arn
         111  +
    }
         112  +
    /// Consumes the builder and constructs a [`OpsItemNotification`](crate::types::OpsItemNotification).
         113  +
    pub fn build(self) -> crate::types::OpsItemNotification {
         114  +
        crate::types::OpsItemNotification { arn: self.arn }
         115  +
    }
         116  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/types/_ops_item_related_item_summary.rs

@@ -0,1 +0,472 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Summary information about related-item resources for an OpsItem.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct OpsItemRelatedItemSummary {
           7  +
    /// <p>The OpsItem ID.</p>
           8  +
    pub ops_item_id: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The association ID.</p>
          10  +
    pub association_id: ::std::option::Option<::std::string::String>,
          11  +
    /// <p>The resource type.</p>
          12  +
    pub resource_type: ::std::option::Option<::std::string::String>,
          13  +
    /// <p>The association type.</p>
          14  +
    pub association_type: ::std::option::Option<::std::string::String>,
          15  +
    /// <p>The Amazon Resource Name (ARN) of the related-item resource.</p>
          16  +
    pub resource_uri: ::std::option::Option<::std::string::String>,
          17  +
    /// <p>Information about the user or resource that created an OpsItem event.</p>
          18  +
    pub created_by: ::std::option::Option<crate::types::OpsItemIdentity>,
          19  +
    /// <p>The time the related-item association was created.</p>
          20  +
    pub created_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          21  +
    /// <p>Information about the user or resource that created an OpsItem event.</p>
          22  +
    pub last_modified_by: ::std::option::Option<crate::types::OpsItemIdentity>,
          23  +
    /// <p>The time the related-item association was last updated.</p>
          24  +
    pub last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          25  +
}
          26  +
impl OpsItemRelatedItemSummary {
          27  +
    /// <p>The OpsItem ID.</p>
          28  +
    pub fn ops_item_id(&self) -> ::std::option::Option<&str> {
          29  +
        self.ops_item_id.as_deref()
          30  +
    }
          31  +
    /// <p>The association ID.</p>
          32  +
    pub fn association_id(&self) -> ::std::option::Option<&str> {
          33  +
        self.association_id.as_deref()
          34  +
    }
          35  +
    /// <p>The resource type.</p>
          36  +
    pub fn resource_type(&self) -> ::std::option::Option<&str> {
          37  +
        self.resource_type.as_deref()
          38  +
    }
          39  +
    /// <p>The association type.</p>
          40  +
    pub fn association_type(&self) -> ::std::option::Option<&str> {
          41  +
        self.association_type.as_deref()
          42  +
    }
          43  +
    /// <p>The Amazon Resource Name (ARN) of the related-item resource.</p>
          44  +
    pub fn resource_uri(&self) -> ::std::option::Option<&str> {
          45  +
        self.resource_uri.as_deref()
          46  +
    }
          47  +
    /// <p>Information about the user or resource that created an OpsItem event.</p>
          48  +
    pub fn created_by(&self) -> ::std::option::Option<&crate::types::OpsItemIdentity> {
          49  +
        self.created_by.as_ref()
          50  +
    }
          51  +
    /// <p>The time the related-item association was created.</p>
          52  +
    pub fn created_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          53  +
        self.created_time.as_ref()
          54  +
    }
          55  +
    /// <p>Information about the user or resource that created an OpsItem event.</p>
          56  +
    pub fn last_modified_by(&self) -> ::std::option::Option<&crate::types::OpsItemIdentity> {
          57  +
        self.last_modified_by.as_ref()
          58  +
    }
          59  +
    /// <p>The time the related-item association was last updated.</p>
          60  +
    pub fn last_modified_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          61  +
        self.last_modified_time.as_ref()
          62  +
    }
          63  +
}
          64  +
static OPSITEMRELATEDITEMSUMMARY_MEMBER_OPS_ITEM_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          65  +
    ::aws_smithy_schema::ShapeId::from_parts(
          66  +
        "com.amazonaws.ssm#OpsItemRelatedItemSummary$OpsItemId",
          67  +
        "com.amazonaws.ssm",
          68  +
        "OpsItemRelatedItemSummary",
          69  +
    ),
          70  +
    ::aws_smithy_schema::ShapeType::String,
          71  +
    "OpsItemId",
          72  +
    0,
          73  +
);
          74  +
static OPSITEMRELATEDITEMSUMMARY_MEMBER_ASSOCIATION_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          75  +
    ::aws_smithy_schema::ShapeId::from_parts(
          76  +
        "com.amazonaws.ssm#OpsItemRelatedItemSummary$AssociationId",
          77  +
        "com.amazonaws.ssm",
          78  +
        "OpsItemRelatedItemSummary",
          79  +
    ),
          80  +
    ::aws_smithy_schema::ShapeType::String,
          81  +
    "AssociationId",
          82  +
    1,
          83  +
);
          84  +
static OPSITEMRELATEDITEMSUMMARY_MEMBER_RESOURCE_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          85  +
    ::aws_smithy_schema::ShapeId::from_parts(
          86  +
        "com.amazonaws.ssm#OpsItemRelatedItemSummary$ResourceType",
          87  +
        "com.amazonaws.ssm",
          88  +
        "OpsItemRelatedItemSummary",
          89  +
    ),
          90  +
    ::aws_smithy_schema::ShapeType::String,
          91  +
    "ResourceType",
          92  +
    2,
          93  +
);
          94  +
static OPSITEMRELATEDITEMSUMMARY_MEMBER_ASSOCIATION_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          95  +
    ::aws_smithy_schema::ShapeId::from_parts(
          96  +
        "com.amazonaws.ssm#OpsItemRelatedItemSummary$AssociationType",
          97  +
        "com.amazonaws.ssm",
          98  +
        "OpsItemRelatedItemSummary",
          99  +
    ),
         100  +
    ::aws_smithy_schema::ShapeType::String,
         101  +
    "AssociationType",
         102  +
    3,
         103  +
);
         104  +
static OPSITEMRELATEDITEMSUMMARY_MEMBER_RESOURCE_URI: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         105  +
    ::aws_smithy_schema::ShapeId::from_parts(
         106  +
        "com.amazonaws.ssm#OpsItemRelatedItemSummary$ResourceUri",
         107  +
        "com.amazonaws.ssm",
         108  +
        "OpsItemRelatedItemSummary",
         109  +
    ),
         110  +
    ::aws_smithy_schema::ShapeType::String,
         111  +
    "ResourceUri",
         112  +
    4,
         113  +
);
         114  +
static OPSITEMRELATEDITEMSUMMARY_MEMBER_CREATED_BY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         115  +
    ::aws_smithy_schema::ShapeId::from_parts(
         116  +
        "com.amazonaws.ssm#OpsItemRelatedItemSummary$CreatedBy",
         117  +
        "com.amazonaws.ssm",
         118  +
        "OpsItemRelatedItemSummary",
         119  +
    ),
         120  +
    ::aws_smithy_schema::ShapeType::Structure,
         121  +
    "CreatedBy",
         122  +
    5,
         123  +
);
         124  +
static OPSITEMRELATEDITEMSUMMARY_MEMBER_CREATED_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         125  +
    ::aws_smithy_schema::ShapeId::from_parts(
         126  +
        "com.amazonaws.ssm#OpsItemRelatedItemSummary$CreatedTime",
         127  +
        "com.amazonaws.ssm",
         128  +
        "OpsItemRelatedItemSummary",
         129  +
    ),
         130  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         131  +
    "CreatedTime",
         132  +
    6,
         133  +
);
         134  +
static OPSITEMRELATEDITEMSUMMARY_MEMBER_LAST_MODIFIED_BY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         135  +
    ::aws_smithy_schema::ShapeId::from_parts(
         136  +
        "com.amazonaws.ssm#OpsItemRelatedItemSummary$LastModifiedBy",
         137  +
        "com.amazonaws.ssm",
         138  +
        "OpsItemRelatedItemSummary",
         139  +
    ),
         140  +
    ::aws_smithy_schema::ShapeType::Structure,
         141  +
    "LastModifiedBy",
         142  +
    7,
         143  +
);
         144  +
static OPSITEMRELATEDITEMSUMMARY_MEMBER_LAST_MODIFIED_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         145  +
    ::aws_smithy_schema::ShapeId::from_parts(
         146  +
        "com.amazonaws.ssm#OpsItemRelatedItemSummary$LastModifiedTime",
         147  +
        "com.amazonaws.ssm",
         148  +
        "OpsItemRelatedItemSummary",
         149  +
    ),
         150  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         151  +
    "LastModifiedTime",
         152  +
    8,
         153  +
);
         154  +
static OPSITEMRELATEDITEMSUMMARY_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         155  +
    ::aws_smithy_schema::ShapeId::from_parts(
         156  +
        "com.amazonaws.ssm#OpsItemRelatedItemSummary",
         157  +
        "com.amazonaws.ssm",
         158  +
        "OpsItemRelatedItemSummary",
         159  +
    ),
         160  +
    ::aws_smithy_schema::ShapeType::Structure,
         161  +
    &[
         162  +
        &OPSITEMRELATEDITEMSUMMARY_MEMBER_OPS_ITEM_ID,
         163  +
        &OPSITEMRELATEDITEMSUMMARY_MEMBER_ASSOCIATION_ID,
         164  +
        &OPSITEMRELATEDITEMSUMMARY_MEMBER_RESOURCE_TYPE,
         165  +
        &OPSITEMRELATEDITEMSUMMARY_MEMBER_ASSOCIATION_TYPE,
         166  +
        &OPSITEMRELATEDITEMSUMMARY_MEMBER_RESOURCE_URI,
         167  +
        &OPSITEMRELATEDITEMSUMMARY_MEMBER_CREATED_BY,
         168  +
        &OPSITEMRELATEDITEMSUMMARY_MEMBER_CREATED_TIME,
         169  +
        &OPSITEMRELATEDITEMSUMMARY_MEMBER_LAST_MODIFIED_BY,
         170  +
        &OPSITEMRELATEDITEMSUMMARY_MEMBER_LAST_MODIFIED_TIME,
         171  +
    ],
         172  +
);
         173  +
impl OpsItemRelatedItemSummary {
         174  +
    /// The schema for this shape.
         175  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &OPSITEMRELATEDITEMSUMMARY_SCHEMA;
         176  +
}
         177  +
impl ::aws_smithy_schema::serde::SerializableStruct for OpsItemRelatedItemSummary {
         178  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         179  +
    fn serialize_members(
         180  +
        &self,
         181  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         182  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         183  +
        if let Some(ref val) = self.ops_item_id {
         184  +
            ser.write_string(&OPSITEMRELATEDITEMSUMMARY_MEMBER_OPS_ITEM_ID, val)?;
         185  +
        }
         186  +
        if let Some(ref val) = self.association_id {
         187  +
            ser.write_string(&OPSITEMRELATEDITEMSUMMARY_MEMBER_ASSOCIATION_ID, val)?;
         188  +
        }
         189  +
        if let Some(ref val) = self.resource_type {
         190  +
            ser.write_string(&OPSITEMRELATEDITEMSUMMARY_MEMBER_RESOURCE_TYPE, val)?;
         191  +
        }
         192  +
        if let Some(ref val) = self.association_type {
         193  +
            ser.write_string(&OPSITEMRELATEDITEMSUMMARY_MEMBER_ASSOCIATION_TYPE, val)?;
         194  +
        }
         195  +
        if let Some(ref val) = self.resource_uri {
         196  +
            ser.write_string(&OPSITEMRELATEDITEMSUMMARY_MEMBER_RESOURCE_URI, val)?;
         197  +
        }
         198  +
        if let Some(ref val) = self.created_by {
         199  +
            ser.write_struct(&OPSITEMRELATEDITEMSUMMARY_MEMBER_CREATED_BY, val)?;
         200  +
        }
         201  +
        if let Some(ref val) = self.created_time {
         202  +
            ser.write_timestamp(&OPSITEMRELATEDITEMSUMMARY_MEMBER_CREATED_TIME, val)?;
         203  +
        }
         204  +
        if let Some(ref val) = self.last_modified_by {
         205  +
            ser.write_struct(&OPSITEMRELATEDITEMSUMMARY_MEMBER_LAST_MODIFIED_BY, val)?;
         206  +
        }
         207  +
        if let Some(ref val) = self.last_modified_time {
         208  +
            ser.write_timestamp(&OPSITEMRELATEDITEMSUMMARY_MEMBER_LAST_MODIFIED_TIME, val)?;
         209  +
        }
         210  +
        Ok(())
         211  +
    }
         212  +
}
         213  +
impl OpsItemRelatedItemSummary {
         214  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         215  +
    pub fn deserialize(
         216  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         217  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         218  +
        #[allow(unused_variables, unused_mut)]
         219  +
        let mut builder = Self::builder();
         220  +
        #[allow(
         221  +
            unused_variables,
         222  +
            unreachable_code,
         223  +
            clippy::single_match,
         224  +
            clippy::match_single_binding,
         225  +
            clippy::diverging_sub_expression
         226  +
        )]
         227  +
        deserializer.read_struct(&OPSITEMRELATEDITEMSUMMARY_SCHEMA, &mut |member, deser| {
         228  +
            match member.member_index() {
         229  +
                Some(0) => {
         230  +
                    if deser.is_null() {
         231  +
                        deser.read_null()?;
         232  +
                    } else {
         233  +
                        builder.ops_item_id = Some(deser.read_string(member)?);
         234  +
                    }
         235  +
                }
         236  +
                Some(1) => {
         237  +
                    if deser.is_null() {
         238  +
                        deser.read_null()?;
         239  +
                    } else {
         240  +
                        builder.association_id = Some(deser.read_string(member)?);
         241  +
                    }
         242  +
                }
         243  +
                Some(2) => {
         244  +
                    if deser.is_null() {
         245  +
                        deser.read_null()?;
         246  +
                    } else {
         247  +
                        builder.resource_type = Some(deser.read_string(member)?);
         248  +
                    }
         249  +
                }
         250  +
                Some(3) => {
         251  +
                    if deser.is_null() {
         252  +
                        deser.read_null()?;
         253  +
                    } else {
         254  +
                        builder.association_type = Some(deser.read_string(member)?);
         255  +
                    }
         256  +
                }
         257  +
                Some(4) => {
         258  +
                    if deser.is_null() {
         259  +
                        deser.read_null()?;
         260  +
                    } else {
         261  +
                        builder.resource_uri = Some(deser.read_string(member)?);
         262  +
                    }
         263  +
                }
         264  +
                Some(5) => {
         265  +
                    if deser.is_null() {
         266  +
                        deser.read_null()?;
         267  +
                    } else {
         268  +
                        builder.created_by = Some(crate::types::OpsItemIdentity::deserialize(deser)?);
         269  +
                    }
         270  +
                }
         271  +
                Some(6) => {
         272  +
                    if deser.is_null() {
         273  +
                        deser.read_null()?;
         274  +
                    } else {
         275  +
                        builder.created_time = Some(deser.read_timestamp(member)?);
         276  +
                    }
         277  +
                }
         278  +
                Some(7) => {
         279  +
                    if deser.is_null() {
         280  +
                        deser.read_null()?;
         281  +
                    } else {
         282  +
                        builder.last_modified_by = Some(crate::types::OpsItemIdentity::deserialize(deser)?);
         283  +
                    }
         284  +
                }
         285  +
                Some(8) => {
         286  +
                    if deser.is_null() {
         287  +
                        deser.read_null()?;
         288  +
                    } else {
         289  +
                        builder.last_modified_time = Some(deser.read_timestamp(member)?);
         290  +
                    }
         291  +
                }
         292  +
                _ => {}
         293  +
            }
         294  +
            Ok(())
         295  +
        })?;
         296  +
        Ok(builder.build())
         297  +
    }
         298  +
}
         299  +
impl OpsItemRelatedItemSummary {
         300  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         301  +
    pub fn deserialize_with_response(
         302  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         303  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         304  +
        _status: u16,
         305  +
        _body: &[u8],
         306  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         307  +
        Self::deserialize(deserializer)
         308  +
    }
         309  +
}
         310  +
impl OpsItemRelatedItemSummary {
         311  +
    /// Creates a new builder-style object to manufacture [`OpsItemRelatedItemSummary`](crate::types::OpsItemRelatedItemSummary).
         312  +
    pub fn builder() -> crate::types::builders::OpsItemRelatedItemSummaryBuilder {
         313  +
        crate::types::builders::OpsItemRelatedItemSummaryBuilder::default()
         314  +
    }
         315  +
}
         316  +
         317  +
/// A builder for [`OpsItemRelatedItemSummary`](crate::types::OpsItemRelatedItemSummary).
         318  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         319  +
#[non_exhaustive]
         320  +
pub struct OpsItemRelatedItemSummaryBuilder {
         321  +
    pub(crate) ops_item_id: ::std::option::Option<::std::string::String>,
         322  +
    pub(crate) association_id: ::std::option::Option<::std::string::String>,
         323  +
    pub(crate) resource_type: ::std::option::Option<::std::string::String>,
         324  +
    pub(crate) association_type: ::std::option::Option<::std::string::String>,
         325  +
    pub(crate) resource_uri: ::std::option::Option<::std::string::String>,
         326  +
    pub(crate) created_by: ::std::option::Option<crate::types::OpsItemIdentity>,
         327  +
    pub(crate) created_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         328  +
    pub(crate) last_modified_by: ::std::option::Option<crate::types::OpsItemIdentity>,
         329  +
    pub(crate) last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         330  +
}
         331  +
impl OpsItemRelatedItemSummaryBuilder {
         332  +
    /// <p>The OpsItem ID.</p>
         333  +
    pub fn ops_item_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         334  +
        self.ops_item_id = ::std::option::Option::Some(input.into());
         335  +
        self
         336  +
    }
         337  +
    /// <p>The OpsItem ID.</p>
         338  +
    pub fn set_ops_item_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         339  +
        self.ops_item_id = input;
         340  +
        self
         341  +
    }
         342  +
    /// <p>The OpsItem ID.</p>
         343  +
    pub fn get_ops_item_id(&self) -> &::std::option::Option<::std::string::String> {
         344  +
        &self.ops_item_id
         345  +
    }
         346  +
    /// <p>The association ID.</p>
         347  +
    pub fn association_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         348  +
        self.association_id = ::std::option::Option::Some(input.into());
         349  +
        self
         350  +
    }
         351  +
    /// <p>The association ID.</p>
         352  +
    pub fn set_association_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         353  +
        self.association_id = input;
         354  +
        self
         355  +
    }
         356  +
    /// <p>The association ID.</p>
         357  +
    pub fn get_association_id(&self) -> &::std::option::Option<::std::string::String> {
         358  +
        &self.association_id
         359  +
    }
         360  +
    /// <p>The resource type.</p>
         361  +
    pub fn resource_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         362  +
        self.resource_type = ::std::option::Option::Some(input.into());
         363  +
        self
         364  +
    }
         365  +
    /// <p>The resource type.</p>
         366  +
    pub fn set_resource_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         367  +
        self.resource_type = input;
         368  +
        self
         369  +
    }
         370  +
    /// <p>The resource type.</p>
         371  +
    pub fn get_resource_type(&self) -> &::std::option::Option<::std::string::String> {
         372  +
        &self.resource_type
         373  +
    }
         374  +
    /// <p>The association type.</p>
         375  +
    pub fn association_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         376  +
        self.association_type = ::std::option::Option::Some(input.into());
         377  +
        self
         378  +
    }
         379  +
    /// <p>The association type.</p>
         380  +
    pub fn set_association_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         381  +
        self.association_type = input;
         382  +
        self
         383  +
    }
         384  +
    /// <p>The association type.</p>
         385  +
    pub fn get_association_type(&self) -> &::std::option::Option<::std::string::String> {
         386  +
        &self.association_type
         387  +
    }
         388  +
    /// <p>The Amazon Resource Name (ARN) of the related-item resource.</p>
         389  +
    pub fn resource_uri(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         390  +
        self.resource_uri = ::std::option::Option::Some(input.into());
         391  +
        self
         392  +
    }
         393  +
    /// <p>The Amazon Resource Name (ARN) of the related-item resource.</p>
         394  +
    pub fn set_resource_uri(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         395  +
        self.resource_uri = input;
         396  +
        self
         397  +
    }
         398  +
    /// <p>The Amazon Resource Name (ARN) of the related-item resource.</p>
         399  +
    pub fn get_resource_uri(&self) -> &::std::option::Option<::std::string::String> {
         400  +
        &self.resource_uri
         401  +
    }
         402  +
    /// <p>Information about the user or resource that created an OpsItem event.</p>
         403  +
    pub fn created_by(mut self, input: crate::types::OpsItemIdentity) -> Self {
         404  +
        self.created_by = ::std::option::Option::Some(input);
         405  +
        self
         406  +
    }
         407  +
    /// <p>Information about the user or resource that created an OpsItem event.</p>
         408  +
    pub fn set_created_by(mut self, input: ::std::option::Option<crate::types::OpsItemIdentity>) -> Self {
         409  +
        self.created_by = input;
         410  +
        self
         411  +
    }
         412  +
    /// <p>Information about the user or resource that created an OpsItem event.</p>
         413  +
    pub fn get_created_by(&self) -> &::std::option::Option<crate::types::OpsItemIdentity> {
         414  +
        &self.created_by
         415  +
    }
         416  +
    /// <p>The time the related-item association was created.</p>
         417  +
    pub fn created_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         418  +
        self.created_time = ::std::option::Option::Some(input);
         419  +
        self
         420  +
    }
         421  +
    /// <p>The time the related-item association was created.</p>
         422  +
    pub fn set_created_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         423  +
        self.created_time = input;
         424  +
        self
         425  +
    }
         426  +
    /// <p>The time the related-item association was created.</p>
         427  +
    pub fn get_created_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         428  +
        &self.created_time
         429  +
    }
         430  +
    /// <p>Information about the user or resource that created an OpsItem event.</p>
         431  +
    pub fn last_modified_by(mut self, input: crate::types::OpsItemIdentity) -> Self {
         432  +
        self.last_modified_by = ::std::option::Option::Some(input);
         433  +
        self
         434  +
    }
         435  +
    /// <p>Information about the user or resource that created an OpsItem event.</p>
         436  +
    pub fn set_last_modified_by(mut self, input: ::std::option::Option<crate::types::OpsItemIdentity>) -> Self {
         437  +
        self.last_modified_by = input;
         438  +
        self
         439  +
    }
         440  +
    /// <p>Information about the user or resource that created an OpsItem event.</p>
         441  +
    pub fn get_last_modified_by(&self) -> &::std::option::Option<crate::types::OpsItemIdentity> {
         442  +
        &self.last_modified_by
         443  +
    }
         444  +
    /// <p>The time the related-item association was last updated.</p>
         445  +
    pub fn last_modified_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         446  +
        self.last_modified_time = ::std::option::Option::Some(input);
         447  +
        self
         448  +
    }
         449  +
    /// <p>The time the related-item association was last updated.</p>
         450  +
    pub fn set_last_modified_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         451  +
        self.last_modified_time = input;
         452  +
        self
         453  +
    }
         454  +
    /// <p>The time the related-item association was last updated.</p>
         455  +
    pub fn get_last_modified_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         456  +
        &self.last_modified_time
         457  +
    }
         458  +
    /// Consumes the builder and constructs a [`OpsItemRelatedItemSummary`](crate::types::OpsItemRelatedItemSummary).
         459  +
    pub fn build(self) -> crate::types::OpsItemRelatedItemSummary {
         460  +
        crate::types::OpsItemRelatedItemSummary {
         461  +
            ops_item_id: self.ops_item_id,
         462  +
            association_id: self.association_id,
         463  +
            resource_type: self.resource_type,
         464  +
            association_type: self.association_type,
         465  +
            resource_uri: self.resource_uri,
         466  +
            created_by: self.created_by,
         467  +
            created_time: self.created_time,
         468  +
            last_modified_by: self.last_modified_by,
         469  +
            last_modified_time: self.last_modified_time,
         470  +
        }
         471  +
    }
         472  +
}