AWS SDK

AWS SDK

rev. bbca34fa2eddb4be623fbbc6b6df1a2401de0029 (ignoring whitespace)

Files changed:

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

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

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

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

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

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

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

@@ -0,1 +0,237 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// When writing a match expression against `OpsItemStatus`, 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 opsitemstatus = unimplemented!();
          14  +
/// match opsitemstatus {
          15  +
///     OpsItemStatus::Approved => { /* ... */ },
          16  +
///     OpsItemStatus::Cancelled => { /* ... */ },
          17  +
///     OpsItemStatus::Cancelling => { /* ... */ },
          18  +
///     OpsItemStatus::ChangeCalendarOverrideApproved => { /* ... */ },
          19  +
///     OpsItemStatus::ChangeCalendarOverrideRejected => { /* ... */ },
          20  +
///     OpsItemStatus::Closed => { /* ... */ },
          21  +
///     OpsItemStatus::CompletedWithFailure => { /* ... */ },
          22  +
///     OpsItemStatus::CompletedWithSuccess => { /* ... */ },
          23  +
///     OpsItemStatus::Failed => { /* ... */ },
          24  +
///     OpsItemStatus::InProgress => { /* ... */ },
          25  +
///     OpsItemStatus::Open => { /* ... */ },
          26  +
///     OpsItemStatus::Pending => { /* ... */ },
          27  +
///     OpsItemStatus::PendingApproval => { /* ... */ },
          28  +
///     OpsItemStatus::PendingChangeCalendarOverride => { /* ... */ },
          29  +
///     OpsItemStatus::Rejected => { /* ... */ },
          30  +
///     OpsItemStatus::Resolved => { /* ... */ },
          31  +
///     OpsItemStatus::Revoked => { /* ... */ },
          32  +
///     OpsItemStatus::RunbookInProgress => { /* ... */ },
          33  +
///     OpsItemStatus::Scheduled => { /* ... */ },
          34  +
///     OpsItemStatus::TimedOut => { /* ... */ },
          35  +
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
          36  +
///     _ => { /* ... */ },
          37  +
/// }
          38  +
/// ```
          39  +
/// The above code demonstrates that when `opsitemstatus` represents
          40  +
/// `NewFeature`, the execution path will lead to the second last match arm,
          41  +
/// even though the enum does not contain a variant `OpsItemStatus::NewFeature`
          42  +
/// in the current version of SDK. The reason is that the variable `other`,
          43  +
/// created by the `@` operator, is bound to
          44  +
/// `OpsItemStatus::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
          45  +
/// and calling `as_str` on it yields `"NewFeature"`.
          46  +
/// This match expression is forward-compatible when executed with a newer
          47  +
/// version of SDK where the variant `OpsItemStatus::NewFeature` is defined.
          48  +
/// Specifically, when `opsitemstatus` represents `NewFeature`,
          49  +
/// the execution path will hit the second last match arm as before by virtue of
          50  +
/// calling `as_str` on `OpsItemStatus::NewFeature` also yielding `"NewFeature"`.
          51  +
///
          52  +
/// Explicitly matching on the `Unknown` variant should
          53  +
/// be avoided for two reasons:
          54  +
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
          55  +
/// - It might inadvertently shadow other intended match arms.
          56  +
///
          57  +
#[allow(missing_docs)] // documentation missing in model
          58  +
#[non_exhaustive]
          59  +
#[derive(
          60  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
          61  +
)]
          62  +
pub enum OpsItemStatus {
          63  +
    #[allow(missing_docs)] // documentation missing in model
          64  +
    Approved,
          65  +
    #[allow(missing_docs)] // documentation missing in model
          66  +
    Cancelled,
          67  +
    #[allow(missing_docs)] // documentation missing in model
          68  +
    Cancelling,
          69  +
    #[allow(missing_docs)] // documentation missing in model
          70  +
    ChangeCalendarOverrideApproved,
          71  +
    #[allow(missing_docs)] // documentation missing in model
          72  +
    ChangeCalendarOverrideRejected,
          73  +
    #[allow(missing_docs)] // documentation missing in model
          74  +
    Closed,
          75  +
    #[allow(missing_docs)] // documentation missing in model
          76  +
    CompletedWithFailure,
          77  +
    #[allow(missing_docs)] // documentation missing in model
          78  +
    CompletedWithSuccess,
          79  +
    #[allow(missing_docs)] // documentation missing in model
          80  +
    Failed,
          81  +
    #[allow(missing_docs)] // documentation missing in model
          82  +
    InProgress,
          83  +
    #[allow(missing_docs)] // documentation missing in model
          84  +
    Open,
          85  +
    #[allow(missing_docs)] // documentation missing in model
          86  +
    Pending,
          87  +
    #[allow(missing_docs)] // documentation missing in model
          88  +
    PendingApproval,
          89  +
    #[allow(missing_docs)] // documentation missing in model
          90  +
    PendingChangeCalendarOverride,
          91  +
    #[allow(missing_docs)] // documentation missing in model
          92  +
    Rejected,
          93  +
    #[allow(missing_docs)] // documentation missing in model
          94  +
    Resolved,
          95  +
    #[allow(missing_docs)] // documentation missing in model
          96  +
    Revoked,
          97  +
    #[allow(missing_docs)] // documentation missing in model
          98  +
    RunbookInProgress,
          99  +
    #[allow(missing_docs)] // documentation missing in model
         100  +
    Scheduled,
         101  +
    #[allow(missing_docs)] // documentation missing in model
         102  +
    TimedOut,
         103  +
    /// `Unknown` contains new variants that have been added since this code was generated.
         104  +
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
         105  +
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
         106  +
}
         107  +
impl ::std::convert::From<&str> for OpsItemStatus {
         108  +
    fn from(s: &str) -> Self {
         109  +
        match s {
         110  +
            "Approved" => OpsItemStatus::Approved,
         111  +
            "Cancelled" => OpsItemStatus::Cancelled,
         112  +
            "Cancelling" => OpsItemStatus::Cancelling,
         113  +
            "ChangeCalendarOverrideApproved" => OpsItemStatus::ChangeCalendarOverrideApproved,
         114  +
            "ChangeCalendarOverrideRejected" => OpsItemStatus::ChangeCalendarOverrideRejected,
         115  +
            "Closed" => OpsItemStatus::Closed,
         116  +
            "CompletedWithFailure" => OpsItemStatus::CompletedWithFailure,
         117  +
            "CompletedWithSuccess" => OpsItemStatus::CompletedWithSuccess,
         118  +
            "Failed" => OpsItemStatus::Failed,
         119  +
            "InProgress" => OpsItemStatus::InProgress,
         120  +
            "Open" => OpsItemStatus::Open,
         121  +
            "Pending" => OpsItemStatus::Pending,
         122  +
            "PendingApproval" => OpsItemStatus::PendingApproval,
         123  +
            "PendingChangeCalendarOverride" => OpsItemStatus::PendingChangeCalendarOverride,
         124  +
            "Rejected" => OpsItemStatus::Rejected,
         125  +
            "Resolved" => OpsItemStatus::Resolved,
         126  +
            "Revoked" => OpsItemStatus::Revoked,
         127  +
            "RunbookInProgress" => OpsItemStatus::RunbookInProgress,
         128  +
            "Scheduled" => OpsItemStatus::Scheduled,
         129  +
            "TimedOut" => OpsItemStatus::TimedOut,
         130  +
            other => OpsItemStatus::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
         131  +
        }
         132  +
    }
         133  +
}
         134  +
impl ::std::str::FromStr for OpsItemStatus {
         135  +
    type Err = ::std::convert::Infallible;
         136  +
         137  +
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
         138  +
        ::std::result::Result::Ok(OpsItemStatus::from(s))
         139  +
    }
         140  +
}
         141  +
impl OpsItemStatus {
         142  +
    /// Returns the `&str` value of the enum member.
         143  +
    pub fn as_str(&self) -> &str {
         144  +
        match self {
         145  +
            OpsItemStatus::Approved => "Approved",
         146  +
            OpsItemStatus::Cancelled => "Cancelled",
         147  +
            OpsItemStatus::Cancelling => "Cancelling",
         148  +
            OpsItemStatus::ChangeCalendarOverrideApproved => "ChangeCalendarOverrideApproved",
         149  +
            OpsItemStatus::ChangeCalendarOverrideRejected => "ChangeCalendarOverrideRejected",
         150  +
            OpsItemStatus::Closed => "Closed",
         151  +
            OpsItemStatus::CompletedWithFailure => "CompletedWithFailure",
         152  +
            OpsItemStatus::CompletedWithSuccess => "CompletedWithSuccess",
         153  +
            OpsItemStatus::Failed => "Failed",
         154  +
            OpsItemStatus::InProgress => "InProgress",
         155  +
            OpsItemStatus::Open => "Open",
         156  +
            OpsItemStatus::Pending => "Pending",
         157  +
            OpsItemStatus::PendingApproval => "PendingApproval",
         158  +
            OpsItemStatus::PendingChangeCalendarOverride => "PendingChangeCalendarOverride",
         159  +
            OpsItemStatus::Rejected => "Rejected",
         160  +
            OpsItemStatus::Resolved => "Resolved",
         161  +
            OpsItemStatus::Revoked => "Revoked",
         162  +
            OpsItemStatus::RunbookInProgress => "RunbookInProgress",
         163  +
            OpsItemStatus::Scheduled => "Scheduled",
         164  +
            OpsItemStatus::TimedOut => "TimedOut",
         165  +
            OpsItemStatus::Unknown(value) => value.as_str(),
         166  +
        }
         167  +
    }
         168  +
    /// Returns all the `&str` representations of the enum members.
         169  +
    pub const fn values() -> &'static [&'static str] {
         170  +
        &[
         171  +
            "Approved",
         172  +
            "Cancelled",
         173  +
            "Cancelling",
         174  +
            "ChangeCalendarOverrideApproved",
         175  +
            "ChangeCalendarOverrideRejected",
         176  +
            "Closed",
         177  +
            "CompletedWithFailure",
         178  +
            "CompletedWithSuccess",
         179  +
            "Failed",
         180  +
            "InProgress",
         181  +
            "Open",
         182  +
            "Pending",
         183  +
            "PendingApproval",
         184  +
            "PendingChangeCalendarOverride",
         185  +
            "Rejected",
         186  +
            "Resolved",
         187  +
            "Revoked",
         188  +
            "RunbookInProgress",
         189  +
            "Scheduled",
         190  +
            "TimedOut",
         191  +
        ]
         192  +
    }
         193  +
}
         194  +
impl ::std::convert::AsRef<str> for OpsItemStatus {
         195  +
    fn as_ref(&self) -> &str {
         196  +
        self.as_str()
         197  +
    }
         198  +
}
         199  +
impl OpsItemStatus {
         200  +
    /// Parses the enum value while disallowing unknown variants.
         201  +
    ///
         202  +
    /// Unknown variants will result in an error.
         203  +
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
         204  +
        match Self::from(value) {
         205  +
            #[allow(deprecated)]
         206  +
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
         207  +
            known => Ok(known),
         208  +
        }
         209  +
    }
         210  +
}
         211  +
impl ::std::fmt::Display for OpsItemStatus {
         212  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         213  +
        match self {
         214  +
            OpsItemStatus::Approved => write!(f, "Approved"),
         215  +
            OpsItemStatus::Cancelled => write!(f, "Cancelled"),
         216  +
            OpsItemStatus::Cancelling => write!(f, "Cancelling"),
         217  +
            OpsItemStatus::ChangeCalendarOverrideApproved => write!(f, "ChangeCalendarOverrideApproved"),
         218  +
            OpsItemStatus::ChangeCalendarOverrideRejected => write!(f, "ChangeCalendarOverrideRejected"),
         219  +
            OpsItemStatus::Closed => write!(f, "Closed"),
         220  +
            OpsItemStatus::CompletedWithFailure => write!(f, "CompletedWithFailure"),
         221  +
            OpsItemStatus::CompletedWithSuccess => write!(f, "CompletedWithSuccess"),
         222  +
            OpsItemStatus::Failed => write!(f, "Failed"),
         223  +
            OpsItemStatus::InProgress => write!(f, "InProgress"),
         224  +
            OpsItemStatus::Open => write!(f, "Open"),
         225  +
            OpsItemStatus::Pending => write!(f, "Pending"),
         226  +
            OpsItemStatus::PendingApproval => write!(f, "PendingApproval"),
         227  +
            OpsItemStatus::PendingChangeCalendarOverride => write!(f, "PendingChangeCalendarOverride"),
         228  +
            OpsItemStatus::Rejected => write!(f, "Rejected"),
         229  +
            OpsItemStatus::Resolved => write!(f, "Resolved"),
         230  +
            OpsItemStatus::Revoked => write!(f, "Revoked"),
         231  +
            OpsItemStatus::RunbookInProgress => write!(f, "RunbookInProgress"),
         232  +
            OpsItemStatus::Scheduled => write!(f, "Scheduled"),
         233  +
            OpsItemStatus::TimedOut => write!(f, "TimedOut"),
         234  +
            OpsItemStatus::Unknown(value) => write!(f, "{value}"),
         235  +
        }
         236  +
    }
         237  +
}

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

@@ -0,1 +0,845 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>A count of OpsItems.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct OpsItemSummary {
           7  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
           8  +
    pub created_by: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The date and time the OpsItem was created.</p>
          10  +
    pub created_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          11  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
          12  +
    pub last_modified_by: ::std::option::Option<::std::string::String>,
          13  +
    /// <p>The date and time the OpsItem was last updated.</p>
          14  +
    pub last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          15  +
    /// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
          16  +
    pub priority: ::std::option::Option<i32>,
          17  +
    /// <p>The impacted Amazon Web Services resource.</p>
          18  +
    pub source: ::std::option::Option<::std::string::String>,
          19  +
    /// <p>The OpsItem status.</p>
          20  +
    pub status: ::std::option::Option<crate::types::OpsItemStatus>,
          21  +
    /// <p>The ID of the OpsItem.</p>
          22  +
    pub ops_item_id: ::std::option::Option<::std::string::String>,
          23  +
    /// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
          24  +
    pub title: ::std::option::Option<::std::string::String>,
          25  +
    /// <p>Operational data is custom data that provides useful reference details about the OpsItem.</p>
          26  +
    pub operational_data: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::OpsItemDataValue>>,
          27  +
    /// <p>A list of OpsItems by category.</p>
          28  +
    pub category: ::std::option::Option<::std::string::String>,
          29  +
    /// <p>A list of OpsItems by severity.</p>
          30  +
    pub severity: ::std::option::Option<::std::string::String>,
          31  +
    /// <p>The type of OpsItem. Systems Manager supports the following types of OpsItems:</p>
          32  +
    /// <ul>
          33  +
    /// <li>
          34  +
    /// <p><code>/aws/issue</code></p>
          35  +
    /// <p>This type of OpsItem is used for default OpsItems created by OpsCenter.</p></li>
          36  +
    /// <li>
          37  +
    /// <p><code>/aws/changerequest</code></p>
          38  +
    /// <p>This type of OpsItem is used by Change Manager for reviewing and approving or rejecting change requests.</p></li>
          39  +
    /// <li>
          40  +
    /// <p><code>/aws/insight</code></p>
          41  +
    /// <p>This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate OpsItems.</p></li>
          42  +
    /// </ul>
          43  +
    pub ops_item_type: ::std::option::Option<::std::string::String>,
          44  +
    /// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
          45  +
    pub actual_start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          46  +
    /// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
          47  +
    pub actual_end_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          48  +
    /// <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>
          49  +
    pub planned_start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          50  +
    /// <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>
          51  +
    pub planned_end_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          52  +
}
          53  +
impl OpsItemSummary {
          54  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
          55  +
    pub fn created_by(&self) -> ::std::option::Option<&str> {
          56  +
        self.created_by.as_deref()
          57  +
    }
          58  +
    /// <p>The date and time the OpsItem was created.</p>
          59  +
    pub fn created_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          60  +
        self.created_time.as_ref()
          61  +
    }
          62  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
          63  +
    pub fn last_modified_by(&self) -> ::std::option::Option<&str> {
          64  +
        self.last_modified_by.as_deref()
          65  +
    }
          66  +
    /// <p>The date and time the OpsItem was last updated.</p>
          67  +
    pub fn last_modified_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          68  +
        self.last_modified_time.as_ref()
          69  +
    }
          70  +
    /// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
          71  +
    pub fn priority(&self) -> ::std::option::Option<i32> {
          72  +
        self.priority
          73  +
    }
          74  +
    /// <p>The impacted Amazon Web Services resource.</p>
          75  +
    pub fn source(&self) -> ::std::option::Option<&str> {
          76  +
        self.source.as_deref()
          77  +
    }
          78  +
    /// <p>The OpsItem status.</p>
          79  +
    pub fn status(&self) -> ::std::option::Option<&crate::types::OpsItemStatus> {
          80  +
        self.status.as_ref()
          81  +
    }
          82  +
    /// <p>The ID of the OpsItem.</p>
          83  +
    pub fn ops_item_id(&self) -> ::std::option::Option<&str> {
          84  +
        self.ops_item_id.as_deref()
          85  +
    }
          86  +
    /// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
          87  +
    pub fn title(&self) -> ::std::option::Option<&str> {
          88  +
        self.title.as_deref()
          89  +
    }
          90  +
    /// <p>Operational data is custom data that provides useful reference details about the OpsItem.</p>
          91  +
    pub fn operational_data(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::OpsItemDataValue>> {
          92  +
        self.operational_data.as_ref()
          93  +
    }
          94  +
    /// <p>A list of OpsItems by category.</p>
          95  +
    pub fn category(&self) -> ::std::option::Option<&str> {
          96  +
        self.category.as_deref()
          97  +
    }
          98  +
    /// <p>A list of OpsItems by severity.</p>
          99  +
    pub fn severity(&self) -> ::std::option::Option<&str> {
         100  +
        self.severity.as_deref()
         101  +
    }
         102  +
    /// <p>The type of OpsItem. Systems Manager supports the following types of OpsItems:</p>
         103  +
    /// <ul>
         104  +
    /// <li>
         105  +
    /// <p><code>/aws/issue</code></p>
         106  +
    /// <p>This type of OpsItem is used for default OpsItems created by OpsCenter.</p></li>
         107  +
    /// <li>
         108  +
    /// <p><code>/aws/changerequest</code></p>
         109  +
    /// <p>This type of OpsItem is used by Change Manager for reviewing and approving or rejecting change requests.</p></li>
         110  +
    /// <li>
         111  +
    /// <p><code>/aws/insight</code></p>
         112  +
    /// <p>This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate OpsItems.</p></li>
         113  +
    /// </ul>
         114  +
    pub fn ops_item_type(&self) -> ::std::option::Option<&str> {
         115  +
        self.ops_item_type.as_deref()
         116  +
    }
         117  +
    /// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         118  +
    pub fn actual_start_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         119  +
        self.actual_start_time.as_ref()
         120  +
    }
         121  +
    /// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         122  +
    pub fn actual_end_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         123  +
        self.actual_end_time.as_ref()
         124  +
    }
         125  +
    /// <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>
         126  +
    pub fn planned_start_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         127  +
        self.planned_start_time.as_ref()
         128  +
    }
         129  +
    /// <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>
         130  +
    pub fn planned_end_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         131  +
        self.planned_end_time.as_ref()
         132  +
    }
         133  +
}
         134  +
static OPSITEMSUMMARY_MEMBER_CREATED_BY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         135  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$CreatedBy", "com.amazonaws.ssm", "OpsItemSummary"),
         136  +
    ::aws_smithy_schema::ShapeType::String,
         137  +
    "CreatedBy",
         138  +
    0,
         139  +
);
         140  +
static OPSITEMSUMMARY_MEMBER_CREATED_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         141  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$CreatedTime", "com.amazonaws.ssm", "OpsItemSummary"),
         142  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         143  +
    "CreatedTime",
         144  +
    1,
         145  +
);
         146  +
static OPSITEMSUMMARY_MEMBER_LAST_MODIFIED_BY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         147  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$LastModifiedBy", "com.amazonaws.ssm", "OpsItemSummary"),
         148  +
    ::aws_smithy_schema::ShapeType::String,
         149  +
    "LastModifiedBy",
         150  +
    2,
         151  +
);
         152  +
static OPSITEMSUMMARY_MEMBER_LAST_MODIFIED_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         153  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$LastModifiedTime", "com.amazonaws.ssm", "OpsItemSummary"),
         154  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         155  +
    "LastModifiedTime",
         156  +
    3,
         157  +
);
         158  +
static OPSITEMSUMMARY_MEMBER_PRIORITY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         159  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$Priority", "com.amazonaws.ssm", "OpsItemSummary"),
         160  +
    ::aws_smithy_schema::ShapeType::Integer,
         161  +
    "Priority",
         162  +
    4,
         163  +
);
         164  +
static OPSITEMSUMMARY_MEMBER_SOURCE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         165  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$Source", "com.amazonaws.ssm", "OpsItemSummary"),
         166  +
    ::aws_smithy_schema::ShapeType::String,
         167  +
    "Source",
         168  +
    5,
         169  +
);
         170  +
static OPSITEMSUMMARY_MEMBER_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         171  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$Status", "com.amazonaws.ssm", "OpsItemSummary"),
         172  +
    ::aws_smithy_schema::ShapeType::String,
         173  +
    "Status",
         174  +
    6,
         175  +
);
         176  +
static OPSITEMSUMMARY_MEMBER_OPS_ITEM_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         177  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$OpsItemId", "com.amazonaws.ssm", "OpsItemSummary"),
         178  +
    ::aws_smithy_schema::ShapeType::String,
         179  +
    "OpsItemId",
         180  +
    7,
         181  +
);
         182  +
static OPSITEMSUMMARY_MEMBER_TITLE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         183  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$Title", "com.amazonaws.ssm", "OpsItemSummary"),
         184  +
    ::aws_smithy_schema::ShapeType::String,
         185  +
    "Title",
         186  +
    8,
         187  +
);
         188  +
static OPSITEMSUMMARY_MEMBER_OPERATIONAL_DATA_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         189  +
    ::aws_smithy_schema::ShapeId::from_parts(
         190  +
        "com.amazonaws.ssm#OpsItemOperationalData$key",
         191  +
        "com.amazonaws.ssm",
         192  +
        "OpsItemOperationalData",
         193  +
    ),
         194  +
    ::aws_smithy_schema::ShapeType::String,
         195  +
    "key",
         196  +
    0,
         197  +
);
         198  +
static OPSITEMSUMMARY_MEMBER_OPERATIONAL_DATA_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         199  +
    ::aws_smithy_schema::ShapeId::from_parts(
         200  +
        "com.amazonaws.ssm#OpsItemOperationalData$value",
         201  +
        "com.amazonaws.ssm",
         202  +
        "OpsItemOperationalData",
         203  +
    ),
         204  +
    ::aws_smithy_schema::ShapeType::Structure,
         205  +
    "value",
         206  +
    1,
         207  +
);
         208  +
static OPSITEMSUMMARY_MEMBER_OPERATIONAL_DATA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         209  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$OperationalData", "com.amazonaws.ssm", "OpsItemSummary"),
         210  +
    ::aws_smithy_schema::ShapeType::Map,
         211  +
    "OperationalData",
         212  +
    9,
         213  +
)
         214  +
.with_map_members(&OPSITEMSUMMARY_MEMBER_OPERATIONAL_DATA_KEY, &OPSITEMSUMMARY_MEMBER_OPERATIONAL_DATA_VALUE);
         215  +
static OPSITEMSUMMARY_MEMBER_CATEGORY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         216  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$Category", "com.amazonaws.ssm", "OpsItemSummary"),
         217  +
    ::aws_smithy_schema::ShapeType::String,
         218  +
    "Category",
         219  +
    10,
         220  +
);
         221  +
static OPSITEMSUMMARY_MEMBER_SEVERITY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         222  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$Severity", "com.amazonaws.ssm", "OpsItemSummary"),
         223  +
    ::aws_smithy_schema::ShapeType::String,
         224  +
    "Severity",
         225  +
    11,
         226  +
);
         227  +
static OPSITEMSUMMARY_MEMBER_OPS_ITEM_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         228  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$OpsItemType", "com.amazonaws.ssm", "OpsItemSummary"),
         229  +
    ::aws_smithy_schema::ShapeType::String,
         230  +
    "OpsItemType",
         231  +
    12,
         232  +
);
         233  +
static OPSITEMSUMMARY_MEMBER_ACTUAL_START_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         234  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$ActualStartTime", "com.amazonaws.ssm", "OpsItemSummary"),
         235  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         236  +
    "ActualStartTime",
         237  +
    13,
         238  +
);
         239  +
static OPSITEMSUMMARY_MEMBER_ACTUAL_END_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         240  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$ActualEndTime", "com.amazonaws.ssm", "OpsItemSummary"),
         241  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         242  +
    "ActualEndTime",
         243  +
    14,
         244  +
);
         245  +
static OPSITEMSUMMARY_MEMBER_PLANNED_START_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         246  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$PlannedStartTime", "com.amazonaws.ssm", "OpsItemSummary"),
         247  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         248  +
    "PlannedStartTime",
         249  +
    15,
         250  +
);
         251  +
static OPSITEMSUMMARY_MEMBER_PLANNED_END_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         252  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary$PlannedEndTime", "com.amazonaws.ssm", "OpsItemSummary"),
         253  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         254  +
    "PlannedEndTime",
         255  +
    16,
         256  +
);
         257  +
static OPSITEMSUMMARY_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         258  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#OpsItemSummary", "com.amazonaws.ssm", "OpsItemSummary"),
         259  +
    ::aws_smithy_schema::ShapeType::Structure,
         260  +
    &[
         261  +
        &OPSITEMSUMMARY_MEMBER_CREATED_BY,
         262  +
        &OPSITEMSUMMARY_MEMBER_CREATED_TIME,
         263  +
        &OPSITEMSUMMARY_MEMBER_LAST_MODIFIED_BY,
         264  +
        &OPSITEMSUMMARY_MEMBER_LAST_MODIFIED_TIME,
         265  +
        &OPSITEMSUMMARY_MEMBER_PRIORITY,
         266  +
        &OPSITEMSUMMARY_MEMBER_SOURCE,
         267  +
        &OPSITEMSUMMARY_MEMBER_STATUS,
         268  +
        &OPSITEMSUMMARY_MEMBER_OPS_ITEM_ID,
         269  +
        &OPSITEMSUMMARY_MEMBER_TITLE,
         270  +
        &OPSITEMSUMMARY_MEMBER_OPERATIONAL_DATA,
         271  +
        &OPSITEMSUMMARY_MEMBER_CATEGORY,
         272  +
        &OPSITEMSUMMARY_MEMBER_SEVERITY,
         273  +
        &OPSITEMSUMMARY_MEMBER_OPS_ITEM_TYPE,
         274  +
        &OPSITEMSUMMARY_MEMBER_ACTUAL_START_TIME,
         275  +
        &OPSITEMSUMMARY_MEMBER_ACTUAL_END_TIME,
         276  +
        &OPSITEMSUMMARY_MEMBER_PLANNED_START_TIME,
         277  +
        &OPSITEMSUMMARY_MEMBER_PLANNED_END_TIME,
         278  +
    ],
         279  +
);
         280  +
impl OpsItemSummary {
         281  +
    /// The schema for this shape.
         282  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &OPSITEMSUMMARY_SCHEMA;
         283  +
}
         284  +
impl ::aws_smithy_schema::serde::SerializableStruct for OpsItemSummary {
         285  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         286  +
    fn serialize_members(
         287  +
        &self,
         288  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         289  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         290  +
        if let Some(ref val) = self.created_by {
         291  +
            ser.write_string(&OPSITEMSUMMARY_MEMBER_CREATED_BY, val)?;
         292  +
        }
         293  +
        if let Some(ref val) = self.created_time {
         294  +
            ser.write_timestamp(&OPSITEMSUMMARY_MEMBER_CREATED_TIME, val)?;
         295  +
        }
         296  +
        if let Some(ref val) = self.last_modified_by {
         297  +
            ser.write_string(&OPSITEMSUMMARY_MEMBER_LAST_MODIFIED_BY, val)?;
         298  +
        }
         299  +
        if let Some(ref val) = self.last_modified_time {
         300  +
            ser.write_timestamp(&OPSITEMSUMMARY_MEMBER_LAST_MODIFIED_TIME, val)?;
         301  +
        }
         302  +
        if let Some(ref val) = self.priority {
         303  +
            ser.write_integer(&OPSITEMSUMMARY_MEMBER_PRIORITY, *val)?;
         304  +
        }
         305  +
        if let Some(ref val) = self.source {
         306  +
            ser.write_string(&OPSITEMSUMMARY_MEMBER_SOURCE, val)?;
         307  +
        }
         308  +
        if let Some(ref val) = self.status {
         309  +
            ser.write_string(&OPSITEMSUMMARY_MEMBER_STATUS, val.as_str())?;
         310  +
        }
         311  +
        if let Some(ref val) = self.ops_item_id {
         312  +
            ser.write_string(&OPSITEMSUMMARY_MEMBER_OPS_ITEM_ID, val)?;
         313  +
        }
         314  +
        if let Some(ref val) = self.title {
         315  +
            ser.write_string(&OPSITEMSUMMARY_MEMBER_TITLE, val)?;
         316  +
        }
         317  +
        if let Some(ref val) = self.operational_data {
         318  +
            ser.write_map(
         319  +
                &OPSITEMSUMMARY_MEMBER_OPERATIONAL_DATA,
         320  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         321  +
                    for (key, value) in val {
         322  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         323  +
                        ser.write_struct(crate::types::OpsItemDataValue::SCHEMA, value)?;
         324  +
                    }
         325  +
                    Ok(())
         326  +
                },
         327  +
            )?;
         328  +
        }
         329  +
        if let Some(ref val) = self.category {
         330  +
            ser.write_string(&OPSITEMSUMMARY_MEMBER_CATEGORY, val)?;
         331  +
        }
         332  +
        if let Some(ref val) = self.severity {
         333  +
            ser.write_string(&OPSITEMSUMMARY_MEMBER_SEVERITY, val)?;
         334  +
        }
         335  +
        if let Some(ref val) = self.ops_item_type {
         336  +
            ser.write_string(&OPSITEMSUMMARY_MEMBER_OPS_ITEM_TYPE, val)?;
         337  +
        }
         338  +
        if let Some(ref val) = self.actual_start_time {
         339  +
            ser.write_timestamp(&OPSITEMSUMMARY_MEMBER_ACTUAL_START_TIME, val)?;
         340  +
        }
         341  +
        if let Some(ref val) = self.actual_end_time {
         342  +
            ser.write_timestamp(&OPSITEMSUMMARY_MEMBER_ACTUAL_END_TIME, val)?;
         343  +
        }
         344  +
        if let Some(ref val) = self.planned_start_time {
         345  +
            ser.write_timestamp(&OPSITEMSUMMARY_MEMBER_PLANNED_START_TIME, val)?;
         346  +
        }
         347  +
        if let Some(ref val) = self.planned_end_time {
         348  +
            ser.write_timestamp(&OPSITEMSUMMARY_MEMBER_PLANNED_END_TIME, val)?;
         349  +
        }
         350  +
        Ok(())
         351  +
    }
         352  +
}
         353  +
impl OpsItemSummary {
         354  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         355  +
    pub fn deserialize(
         356  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         357  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         358  +
        #[allow(unused_variables, unused_mut)]
         359  +
        let mut builder = Self::builder();
         360  +
        #[allow(
         361  +
            unused_variables,
         362  +
            unreachable_code,
         363  +
            clippy::single_match,
         364  +
            clippy::match_single_binding,
         365  +
            clippy::diverging_sub_expression
         366  +
        )]
         367  +
        deserializer.read_struct(&OPSITEMSUMMARY_SCHEMA, &mut |member, deser| {
         368  +
            match member.member_index() {
         369  +
                Some(0) => {
         370  +
                    if deser.is_null() {
         371  +
                        deser.read_null()?;
         372  +
                    } else {
         373  +
                        builder.created_by = Some(deser.read_string(member)?);
         374  +
                    }
         375  +
                }
         376  +
                Some(1) => {
         377  +
                    if deser.is_null() {
         378  +
                        deser.read_null()?;
         379  +
                    } else {
         380  +
                        builder.created_time = Some(deser.read_timestamp(member)?);
         381  +
                    }
         382  +
                }
         383  +
                Some(2) => {
         384  +
                    if deser.is_null() {
         385  +
                        deser.read_null()?;
         386  +
                    } else {
         387  +
                        builder.last_modified_by = Some(deser.read_string(member)?);
         388  +
                    }
         389  +
                }
         390  +
                Some(3) => {
         391  +
                    if deser.is_null() {
         392  +
                        deser.read_null()?;
         393  +
                    } else {
         394  +
                        builder.last_modified_time = Some(deser.read_timestamp(member)?);
         395  +
                    }
         396  +
                }
         397  +
                Some(4) => {
         398  +
                    if deser.is_null() {
         399  +
                        deser.read_null()?;
         400  +
                    } else {
         401  +
                        builder.priority = Some(deser.read_integer(member)?);
         402  +
                    }
         403  +
                }
         404  +
                Some(5) => {
         405  +
                    if deser.is_null() {
         406  +
                        deser.read_null()?;
         407  +
                    } else {
         408  +
                        builder.source = Some(deser.read_string(member)?);
         409  +
                    }
         410  +
                }
         411  +
                Some(6) => {
         412  +
                    if deser.is_null() {
         413  +
                        deser.read_null()?;
         414  +
                    } else {
         415  +
                        builder.status = Some(crate::types::OpsItemStatus::from(deser.read_string(member)?.as_str()));
         416  +
                    }
         417  +
                }
         418  +
                Some(7) => {
         419  +
                    if deser.is_null() {
         420  +
                        deser.read_null()?;
         421  +
                    } else {
         422  +
                        builder.ops_item_id = Some(deser.read_string(member)?);
         423  +
                    }
         424  +
                }
         425  +
                Some(8) => {
         426  +
                    if deser.is_null() {
         427  +
                        deser.read_null()?;
         428  +
                    } else {
         429  +
                        builder.title = Some(deser.read_string(member)?);
         430  +
                    }
         431  +
                }
         432  +
                Some(9) => {
         433  +
                    if deser.is_null() {
         434  +
                        deser.read_null()?;
         435  +
                    } else {
         436  +
                        builder.operational_data = Some({
         437  +
                            let mut container = std::collections::HashMap::new();
         438  +
                            deser.read_map(member, &mut |key, deser| {
         439  +
                                container.insert(key, crate::types::OpsItemDataValue::deserialize(deser)?);
         440  +
                                Ok(())
         441  +
                            })?;
         442  +
                            container
         443  +
                        });
         444  +
                    }
         445  +
                }
         446  +
                Some(10) => {
         447  +
                    if deser.is_null() {
         448  +
                        deser.read_null()?;
         449  +
                    } else {
         450  +
                        builder.category = Some(deser.read_string(member)?);
         451  +
                    }
         452  +
                }
         453  +
                Some(11) => {
         454  +
                    if deser.is_null() {
         455  +
                        deser.read_null()?;
         456  +
                    } else {
         457  +
                        builder.severity = Some(deser.read_string(member)?);
         458  +
                    }
         459  +
                }
         460  +
                Some(12) => {
         461  +
                    if deser.is_null() {
         462  +
                        deser.read_null()?;
         463  +
                    } else {
         464  +
                        builder.ops_item_type = Some(deser.read_string(member)?);
         465  +
                    }
         466  +
                }
         467  +
                Some(13) => {
         468  +
                    if deser.is_null() {
         469  +
                        deser.read_null()?;
         470  +
                    } else {
         471  +
                        builder.actual_start_time = Some(deser.read_timestamp(member)?);
         472  +
                    }
         473  +
                }
         474  +
                Some(14) => {
         475  +
                    if deser.is_null() {
         476  +
                        deser.read_null()?;
         477  +
                    } else {
         478  +
                        builder.actual_end_time = Some(deser.read_timestamp(member)?);
         479  +
                    }
         480  +
                }
         481  +
                Some(15) => {
         482  +
                    if deser.is_null() {
         483  +
                        deser.read_null()?;
         484  +
                    } else {
         485  +
                        builder.planned_start_time = Some(deser.read_timestamp(member)?);
         486  +
                    }
         487  +
                }
         488  +
                Some(16) => {
         489  +
                    if deser.is_null() {
         490  +
                        deser.read_null()?;
         491  +
                    } else {
         492  +
                        builder.planned_end_time = Some(deser.read_timestamp(member)?);
         493  +
                    }
         494  +
                }
         495  +
                _ => {}
         496  +
            }
         497  +
            Ok(())
         498  +
        })?;
         499  +
        Ok(builder.build())
         500  +
    }
         501  +
}
         502  +
impl OpsItemSummary {
         503  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         504  +
    pub fn deserialize_with_response(
         505  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         506  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         507  +
        _status: u16,
         508  +
        _body: &[u8],
         509  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         510  +
        Self::deserialize(deserializer)
         511  +
    }
         512  +
}
         513  +
impl OpsItemSummary {
         514  +
    /// Creates a new builder-style object to manufacture [`OpsItemSummary`](crate::types::OpsItemSummary).
         515  +
    pub fn builder() -> crate::types::builders::OpsItemSummaryBuilder {
         516  +
        crate::types::builders::OpsItemSummaryBuilder::default()
         517  +
    }
         518  +
}
         519  +
         520  +
/// A builder for [`OpsItemSummary`](crate::types::OpsItemSummary).
         521  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         522  +
#[non_exhaustive]
         523  +
pub struct OpsItemSummaryBuilder {
         524  +
    pub(crate) created_by: ::std::option::Option<::std::string::String>,
         525  +
    pub(crate) created_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         526  +
    pub(crate) last_modified_by: ::std::option::Option<::std::string::String>,
         527  +
    pub(crate) last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         528  +
    pub(crate) priority: ::std::option::Option<i32>,
         529  +
    pub(crate) source: ::std::option::Option<::std::string::String>,
         530  +
    pub(crate) status: ::std::option::Option<crate::types::OpsItemStatus>,
         531  +
    pub(crate) ops_item_id: ::std::option::Option<::std::string::String>,
         532  +
    pub(crate) title: ::std::option::Option<::std::string::String>,
         533  +
    pub(crate) operational_data: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::OpsItemDataValue>>,
         534  +
    pub(crate) category: ::std::option::Option<::std::string::String>,
         535  +
    pub(crate) severity: ::std::option::Option<::std::string::String>,
         536  +
    pub(crate) ops_item_type: ::std::option::Option<::std::string::String>,
         537  +
    pub(crate) actual_start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         538  +
    pub(crate) actual_end_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         539  +
    pub(crate) planned_start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         540  +
    pub(crate) planned_end_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         541  +
}
         542  +
impl OpsItemSummaryBuilder {
         543  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
         544  +
    pub fn created_by(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         545  +
        self.created_by = ::std::option::Option::Some(input.into());
         546  +
        self
         547  +
    }
         548  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
         549  +
    pub fn set_created_by(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         550  +
        self.created_by = input;
         551  +
        self
         552  +
    }
         553  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
         554  +
    pub fn get_created_by(&self) -> &::std::option::Option<::std::string::String> {
         555  +
        &self.created_by
         556  +
    }
         557  +
    /// <p>The date and time the OpsItem was created.</p>
         558  +
    pub fn created_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         559  +
        self.created_time = ::std::option::Option::Some(input);
         560  +
        self
         561  +
    }
         562  +
    /// <p>The date and time the OpsItem was created.</p>
         563  +
    pub fn set_created_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         564  +
        self.created_time = input;
         565  +
        self
         566  +
    }
         567  +
    /// <p>The date and time the OpsItem was created.</p>
         568  +
    pub fn get_created_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         569  +
        &self.created_time
         570  +
    }
         571  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
         572  +
    pub fn last_modified_by(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         573  +
        self.last_modified_by = ::std::option::Option::Some(input.into());
         574  +
        self
         575  +
    }
         576  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
         577  +
    pub fn set_last_modified_by(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         578  +
        self.last_modified_by = input;
         579  +
        self
         580  +
    }
         581  +
    /// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
         582  +
    pub fn get_last_modified_by(&self) -> &::std::option::Option<::std::string::String> {
         583  +
        &self.last_modified_by
         584  +
    }
         585  +
    /// <p>The date and time the OpsItem was last updated.</p>
         586  +
    pub fn last_modified_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         587  +
        self.last_modified_time = ::std::option::Option::Some(input);
         588  +
        self
         589  +
    }
         590  +
    /// <p>The date and time the OpsItem was last updated.</p>
         591  +
    pub fn set_last_modified_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         592  +
        self.last_modified_time = input;
         593  +
        self
         594  +
    }
         595  +
    /// <p>The date and time the OpsItem was last updated.</p>
         596  +
    pub fn get_last_modified_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         597  +
        &self.last_modified_time
         598  +
    }
         599  +
    /// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
         600  +
    pub fn priority(mut self, input: i32) -> Self {
         601  +
        self.priority = ::std::option::Option::Some(input);
         602  +
        self
         603  +
    }
         604  +
    /// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
         605  +
    pub fn set_priority(mut self, input: ::std::option::Option<i32>) -> Self {
         606  +
        self.priority = input;
         607  +
        self
         608  +
    }
         609  +
    /// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
         610  +
    pub fn get_priority(&self) -> &::std::option::Option<i32> {
         611  +
        &self.priority
         612  +
    }
         613  +
    /// <p>The impacted Amazon Web Services resource.</p>
         614  +
    pub fn source(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         615  +
        self.source = ::std::option::Option::Some(input.into());
         616  +
        self
         617  +
    }
         618  +
    /// <p>The impacted Amazon Web Services resource.</p>
         619  +
    pub fn set_source(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         620  +
        self.source = input;
         621  +
        self
         622  +
    }
         623  +
    /// <p>The impacted Amazon Web Services resource.</p>
         624  +
    pub fn get_source(&self) -> &::std::option::Option<::std::string::String> {
         625  +
        &self.source
         626  +
    }
         627  +
    /// <p>The OpsItem status.</p>
         628  +
    pub fn status(mut self, input: crate::types::OpsItemStatus) -> Self {
         629  +
        self.status = ::std::option::Option::Some(input);
         630  +
        self
         631  +
    }
         632  +
    /// <p>The OpsItem status.</p>
         633  +
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::OpsItemStatus>) -> Self {
         634  +
        self.status = input;
         635  +
        self
         636  +
    }
         637  +
    /// <p>The OpsItem status.</p>
         638  +
    pub fn get_status(&self) -> &::std::option::Option<crate::types::OpsItemStatus> {
         639  +
        &self.status
         640  +
    }
         641  +
    /// <p>The ID of the OpsItem.</p>
         642  +
    pub fn ops_item_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         643  +
        self.ops_item_id = ::std::option::Option::Some(input.into());
         644  +
        self
         645  +
    }
         646  +
    /// <p>The ID of the OpsItem.</p>
         647  +
    pub fn set_ops_item_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         648  +
        self.ops_item_id = input;
         649  +
        self
         650  +
    }
         651  +
    /// <p>The ID of the OpsItem.</p>
         652  +
    pub fn get_ops_item_id(&self) -> &::std::option::Option<::std::string::String> {
         653  +
        &self.ops_item_id
         654  +
    }
         655  +
    /// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
         656  +
    pub fn title(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         657  +
        self.title = ::std::option::Option::Some(input.into());
         658  +
        self
         659  +
    }
         660  +
    /// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
         661  +
    pub fn set_title(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         662  +
        self.title = input;
         663  +
        self
         664  +
    }
         665  +
    /// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
         666  +
    pub fn get_title(&self) -> &::std::option::Option<::std::string::String> {
         667  +
        &self.title
         668  +
    }
         669  +
    /// Adds a key-value pair to `operational_data`.
         670  +
    ///
         671  +
    /// To override the contents of this collection use [`set_operational_data`](Self::set_operational_data).
         672  +
    ///
         673  +
    /// <p>Operational data is custom data that provides useful reference details about the OpsItem.</p>
         674  +
    pub fn operational_data(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::OpsItemDataValue) -> Self {
         675  +
        let mut hash_map = self.operational_data.unwrap_or_default();
         676  +
        hash_map.insert(k.into(), v);
         677  +
        self.operational_data = ::std::option::Option::Some(hash_map);
         678  +
        self
         679  +
    }
         680  +
    /// <p>Operational data is custom data that provides useful reference details about the OpsItem.</p>
         681  +
    pub fn set_operational_data(
         682  +
        mut self,
         683  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::OpsItemDataValue>>,
         684  +
    ) -> Self {
         685  +
        self.operational_data = input;
         686  +
        self
         687  +
    }
         688  +
    /// <p>Operational data is custom data that provides useful reference details about the OpsItem.</p>
         689  +
    pub fn get_operational_data(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::OpsItemDataValue>> {
         690  +
        &self.operational_data
         691  +
    }
         692  +
    /// <p>A list of OpsItems by category.</p>
         693  +
    pub fn category(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         694  +
        self.category = ::std::option::Option::Some(input.into());
         695  +
        self
         696  +
    }
         697  +
    /// <p>A list of OpsItems by category.</p>
         698  +
    pub fn set_category(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         699  +
        self.category = input;
         700  +
        self
         701  +
    }
         702  +
    /// <p>A list of OpsItems by category.</p>
         703  +
    pub fn get_category(&self) -> &::std::option::Option<::std::string::String> {
         704  +
        &self.category
         705  +
    }
         706  +
    /// <p>A list of OpsItems by severity.</p>
         707  +
    pub fn severity(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         708  +
        self.severity = ::std::option::Option::Some(input.into());
         709  +
        self
         710  +
    }
         711  +
    /// <p>A list of OpsItems by severity.</p>
         712  +
    pub fn set_severity(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         713  +
        self.severity = input;
         714  +
        self
         715  +
    }
         716  +
    /// <p>A list of OpsItems by severity.</p>
         717  +
    pub fn get_severity(&self) -> &::std::option::Option<::std::string::String> {
         718  +
        &self.severity
         719  +
    }
         720  +
    /// <p>The type of OpsItem. Systems Manager supports the following types of OpsItems:</p>
         721  +
    /// <ul>
         722  +
    /// <li>
         723  +
    /// <p><code>/aws/issue</code></p>
         724  +
    /// <p>This type of OpsItem is used for default OpsItems created by OpsCenter.</p></li>
         725  +
    /// <li>
         726  +
    /// <p><code>/aws/changerequest</code></p>
         727  +
    /// <p>This type of OpsItem is used by Change Manager for reviewing and approving or rejecting change requests.</p></li>
         728  +
    /// <li>
         729  +
    /// <p><code>/aws/insight</code></p>
         730  +
    /// <p>This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate OpsItems.</p></li>
         731  +
    /// </ul>
         732  +
    pub fn ops_item_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         733  +
        self.ops_item_type = ::std::option::Option::Some(input.into());
         734  +
        self
         735  +
    }
         736  +
    /// <p>The type of OpsItem. Systems Manager supports the following types of OpsItems:</p>
         737  +
    /// <ul>
         738  +
    /// <li>
         739  +
    /// <p><code>/aws/issue</code></p>
         740  +
    /// <p>This type of OpsItem is used for default OpsItems created by OpsCenter.</p></li>
         741  +
    /// <li>
         742  +
    /// <p><code>/aws/changerequest</code></p>
         743  +
    /// <p>This type of OpsItem is used by Change Manager for reviewing and approving or rejecting change requests.</p></li>
         744  +
    /// <li>
         745  +
    /// <p><code>/aws/insight</code></p>
         746  +
    /// <p>This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate OpsItems.</p></li>
         747  +
    /// </ul>
         748  +
    pub fn set_ops_item_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         749  +
        self.ops_item_type = input;
         750  +
        self
         751  +
    }
         752  +
    /// <p>The type of OpsItem. Systems Manager supports the following types of OpsItems:</p>
         753  +
    /// <ul>
         754  +
    /// <li>
         755  +
    /// <p><code>/aws/issue</code></p>
         756  +
    /// <p>This type of OpsItem is used for default OpsItems created by OpsCenter.</p></li>
         757  +
    /// <li>
         758  +
    /// <p><code>/aws/changerequest</code></p>
         759  +
    /// <p>This type of OpsItem is used by Change Manager for reviewing and approving or rejecting change requests.</p></li>
         760  +
    /// <li>
         761  +
    /// <p><code>/aws/insight</code></p>
         762  +
    /// <p>This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate OpsItems.</p></li>
         763  +
    /// </ul>
         764  +
    pub fn get_ops_item_type(&self) -> &::std::option::Option<::std::string::String> {
         765  +
        &self.ops_item_type
         766  +
    }
         767  +
    /// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         768  +
    pub fn actual_start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         769  +
        self.actual_start_time = ::std::option::Option::Some(input);
         770  +
        self
         771  +
    }
         772  +
    /// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         773  +
    pub fn set_actual_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         774  +
        self.actual_start_time = input;
         775  +
        self
         776  +
    }
         777  +
    /// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         778  +
    pub fn get_actual_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         779  +
        &self.actual_start_time
         780  +
    }
         781  +
    /// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         782  +
    pub fn actual_end_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         783  +
        self.actual_end_time = ::std::option::Option::Some(input);
         784  +
        self
         785  +
    }
         786  +
    /// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         787  +
    pub fn set_actual_end_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         788  +
        self.actual_end_time = input;
         789  +
        self
         790  +
    }
         791  +
    /// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
         792  +
    pub fn get_actual_end_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         793  +
        &self.actual_end_time
         794  +
    }
         795  +
    /// <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>
         796  +
    pub fn planned_start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         797  +
        self.planned_start_time = ::std::option::Option::Some(input);
         798  +
        self
         799  +
    }
         800  +
    /// <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>
         801  +
    pub fn set_planned_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         802  +
        self.planned_start_time = input;
         803  +
        self
         804  +
    }
         805  +
    /// <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>
         806  +
    pub fn get_planned_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         807  +
        &self.planned_start_time
         808  +
    }
         809  +
    /// <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>
         810  +
    pub fn planned_end_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         811  +
        self.planned_end_time = ::std::option::Option::Some(input);
         812  +
        self
         813  +
    }
         814  +
    /// <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>
         815  +
    pub fn set_planned_end_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         816  +
        self.planned_end_time = input;
         817  +
        self
         818  +
    }
         819  +
    /// <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>
         820  +
    pub fn get_planned_end_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         821  +
        &self.planned_end_time
         822  +
    }
         823  +
    /// Consumes the builder and constructs a [`OpsItemSummary`](crate::types::OpsItemSummary).
         824  +
    pub fn build(self) -> crate::types::OpsItemSummary {
         825  +
        crate::types::OpsItemSummary {
         826  +
            created_by: self.created_by,
         827  +
            created_time: self.created_time,
         828  +
            last_modified_by: self.last_modified_by,
         829  +
            last_modified_time: self.last_modified_time,
         830  +
            priority: self.priority,
         831  +
            source: self.source,
         832  +
            status: self.status,
         833  +
            ops_item_id: self.ops_item_id,
         834  +
            title: self.title,
         835  +
            operational_data: self.operational_data,
         836  +
            category: self.category,
         837  +
            severity: self.severity,
         838  +
            ops_item_type: self.ops_item_type,
         839  +
            actual_start_time: self.actual_start_time,
         840  +
            actual_end_time: self.actual_end_time,
         841  +
            planned_start_time: self.planned_start_time,
         842  +
            planned_end_time: self.planned_end_time,
         843  +
        }
         844  +
    }
         845  +
}