aws-sdk-wellarchitected 0.24.0

AWS SDK for AWS Well-Architected Tool
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpgradeLensReviewOutput {}
/// See [`UpgradeLensReviewOutput`](crate::output::UpgradeLensReviewOutput).
pub mod upgrade_lens_review_output {

    /// A builder for [`UpgradeLensReviewOutput`](crate::output::UpgradeLensReviewOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UpgradeLensReviewOutput`](crate::output::UpgradeLensReviewOutput).
        pub fn build(self) -> crate::output::UpgradeLensReviewOutput {
            crate::output::UpgradeLensReviewOutput {}
        }
    }
}
impl UpgradeLensReviewOutput {
    /// Creates a new builder-style object to manufacture [`UpgradeLensReviewOutput`](crate::output::UpgradeLensReviewOutput).
    pub fn builder() -> crate::output::upgrade_lens_review_output::Builder {
        crate::output::upgrade_lens_review_output::Builder::default()
    }
}

/// <p>Input for Update Workload Share</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateWorkloadShareOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>A workload share return object.</p>
    #[doc(hidden)]
    pub workload_share: std::option::Option<crate::model::WorkloadShare>,
}
impl UpdateWorkloadShareOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>A workload share return object.</p>
    pub fn workload_share(&self) -> std::option::Option<&crate::model::WorkloadShare> {
        self.workload_share.as_ref()
    }
}
/// See [`UpdateWorkloadShareOutput`](crate::output::UpdateWorkloadShareOutput).
pub mod update_workload_share_output {

    /// A builder for [`UpdateWorkloadShareOutput`](crate::output::UpdateWorkloadShareOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) workload_share: std::option::Option<crate::model::WorkloadShare>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>A workload share return object.</p>
        pub fn workload_share(mut self, input: crate::model::WorkloadShare) -> Self {
            self.workload_share = Some(input);
            self
        }
        /// <p>A workload share return object.</p>
        pub fn set_workload_share(
            mut self,
            input: std::option::Option<crate::model::WorkloadShare>,
        ) -> Self {
            self.workload_share = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateWorkloadShareOutput`](crate::output::UpdateWorkloadShareOutput).
        pub fn build(self) -> crate::output::UpdateWorkloadShareOutput {
            crate::output::UpdateWorkloadShareOutput {
                workload_id: self.workload_id,
                workload_share: self.workload_share,
            }
        }
    }
}
impl UpdateWorkloadShareOutput {
    /// Creates a new builder-style object to manufacture [`UpdateWorkloadShareOutput`](crate::output::UpdateWorkloadShareOutput).
    pub fn builder() -> crate::output::update_workload_share_output::Builder {
        crate::output::update_workload_share_output::Builder::default()
    }
}

/// <p>Output of an update workload call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateWorkloadOutput {
    /// <p>A workload return object.</p>
    #[doc(hidden)]
    pub workload: std::option::Option<crate::model::Workload>,
}
impl UpdateWorkloadOutput {
    /// <p>A workload return object.</p>
    pub fn workload(&self) -> std::option::Option<&crate::model::Workload> {
        self.workload.as_ref()
    }
}
/// See [`UpdateWorkloadOutput`](crate::output::UpdateWorkloadOutput).
pub mod update_workload_output {

    /// A builder for [`UpdateWorkloadOutput`](crate::output::UpdateWorkloadOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload: std::option::Option<crate::model::Workload>,
    }
    impl Builder {
        /// <p>A workload return object.</p>
        pub fn workload(mut self, input: crate::model::Workload) -> Self {
            self.workload = Some(input);
            self
        }
        /// <p>A workload return object.</p>
        pub fn set_workload(mut self, input: std::option::Option<crate::model::Workload>) -> Self {
            self.workload = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateWorkloadOutput`](crate::output::UpdateWorkloadOutput).
        pub fn build(self) -> crate::output::UpdateWorkloadOutput {
            crate::output::UpdateWorkloadOutput {
                workload: self.workload,
            }
        }
    }
}
impl UpdateWorkloadOutput {
    /// Creates a new builder-style object to manufacture [`UpdateWorkloadOutput`](crate::output::UpdateWorkloadOutput).
    pub fn builder() -> crate::output::update_workload_output::Builder {
        crate::output::update_workload_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateShareInvitationOutput {
    /// <p>The updated workload or custom lens share invitation.</p>
    #[doc(hidden)]
    pub share_invitation: std::option::Option<crate::model::ShareInvitation>,
}
impl UpdateShareInvitationOutput {
    /// <p>The updated workload or custom lens share invitation.</p>
    pub fn share_invitation(&self) -> std::option::Option<&crate::model::ShareInvitation> {
        self.share_invitation.as_ref()
    }
}
/// See [`UpdateShareInvitationOutput`](crate::output::UpdateShareInvitationOutput).
pub mod update_share_invitation_output {

    /// A builder for [`UpdateShareInvitationOutput`](crate::output::UpdateShareInvitationOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) share_invitation: std::option::Option<crate::model::ShareInvitation>,
    }
    impl Builder {
        /// <p>The updated workload or custom lens share invitation.</p>
        pub fn share_invitation(mut self, input: crate::model::ShareInvitation) -> Self {
            self.share_invitation = Some(input);
            self
        }
        /// <p>The updated workload or custom lens share invitation.</p>
        pub fn set_share_invitation(
            mut self,
            input: std::option::Option<crate::model::ShareInvitation>,
        ) -> Self {
            self.share_invitation = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateShareInvitationOutput`](crate::output::UpdateShareInvitationOutput).
        pub fn build(self) -> crate::output::UpdateShareInvitationOutput {
            crate::output::UpdateShareInvitationOutput {
                share_invitation: self.share_invitation,
            }
        }
    }
}
impl UpdateShareInvitationOutput {
    /// Creates a new builder-style object to manufacture [`UpdateShareInvitationOutput`](crate::output::UpdateShareInvitationOutput).
    pub fn builder() -> crate::output::update_share_invitation_output::Builder {
        crate::output::update_share_invitation_output::Builder::default()
    }
}

/// <p>Output of a update lens review call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateLensReviewOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>A lens review of a question.</p>
    #[doc(hidden)]
    pub lens_review: std::option::Option<crate::model::LensReview>,
}
impl UpdateLensReviewOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>A lens review of a question.</p>
    pub fn lens_review(&self) -> std::option::Option<&crate::model::LensReview> {
        self.lens_review.as_ref()
    }
}
/// See [`UpdateLensReviewOutput`](crate::output::UpdateLensReviewOutput).
pub mod update_lens_review_output {

    /// A builder for [`UpdateLensReviewOutput`](crate::output::UpdateLensReviewOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) lens_review: std::option::Option<crate::model::LensReview>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>A lens review of a question.</p>
        pub fn lens_review(mut self, input: crate::model::LensReview) -> Self {
            self.lens_review = Some(input);
            self
        }
        /// <p>A lens review of a question.</p>
        pub fn set_lens_review(
            mut self,
            input: std::option::Option<crate::model::LensReview>,
        ) -> Self {
            self.lens_review = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateLensReviewOutput`](crate::output::UpdateLensReviewOutput).
        pub fn build(self) -> crate::output::UpdateLensReviewOutput {
            crate::output::UpdateLensReviewOutput {
                workload_id: self.workload_id,
                lens_review: self.lens_review,
            }
        }
    }
}
impl UpdateLensReviewOutput {
    /// Creates a new builder-style object to manufacture [`UpdateLensReviewOutput`](crate::output::UpdateLensReviewOutput).
    pub fn builder() -> crate::output::update_lens_review_output::Builder {
        crate::output::update_lens_review_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateGlobalSettingsOutput {}
/// See [`UpdateGlobalSettingsOutput`](crate::output::UpdateGlobalSettingsOutput).
pub mod update_global_settings_output {

    /// A builder for [`UpdateGlobalSettingsOutput`](crate::output::UpdateGlobalSettingsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UpdateGlobalSettingsOutput`](crate::output::UpdateGlobalSettingsOutput).
        pub fn build(self) -> crate::output::UpdateGlobalSettingsOutput {
            crate::output::UpdateGlobalSettingsOutput {}
        }
    }
}
impl UpdateGlobalSettingsOutput {
    /// Creates a new builder-style object to manufacture [`UpdateGlobalSettingsOutput`](crate::output::UpdateGlobalSettingsOutput).
    pub fn builder() -> crate::output::update_global_settings_output::Builder {
        crate::output::update_global_settings_output::Builder::default()
    }
}

/// <p>Output of a update answer call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateAnswerOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>The alias of the lens.</p>
    /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
    /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
    /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
    #[doc(hidden)]
    pub lens_alias: std::option::Option<std::string::String>,
    /// <p>The ARN for the lens.</p>
    #[doc(hidden)]
    pub lens_arn: std::option::Option<std::string::String>,
    /// <p>An answer of the question.</p>
    #[doc(hidden)]
    pub answer: std::option::Option<crate::model::Answer>,
}
impl UpdateAnswerOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>The alias of the lens.</p>
    /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
    /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
    /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
    pub fn lens_alias(&self) -> std::option::Option<&str> {
        self.lens_alias.as_deref()
    }
    /// <p>The ARN for the lens.</p>
    pub fn lens_arn(&self) -> std::option::Option<&str> {
        self.lens_arn.as_deref()
    }
    /// <p>An answer of the question.</p>
    pub fn answer(&self) -> std::option::Option<&crate::model::Answer> {
        self.answer.as_ref()
    }
}
/// See [`UpdateAnswerOutput`](crate::output::UpdateAnswerOutput).
pub mod update_answer_output {

    /// A builder for [`UpdateAnswerOutput`](crate::output::UpdateAnswerOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) lens_alias: std::option::Option<std::string::String>,
        pub(crate) lens_arn: std::option::Option<std::string::String>,
        pub(crate) answer: std::option::Option<crate::model::Answer>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>The alias of the lens.</p>
        /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
        /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
        /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
        pub fn lens_alias(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_alias = Some(input.into());
            self
        }
        /// <p>The alias of the lens.</p>
        /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
        /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
        /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
        pub fn set_lens_alias(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_alias = input;
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn lens_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_arn = Some(input.into());
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn set_lens_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_arn = input;
            self
        }
        /// <p>An answer of the question.</p>
        pub fn answer(mut self, input: crate::model::Answer) -> Self {
            self.answer = Some(input);
            self
        }
        /// <p>An answer of the question.</p>
        pub fn set_answer(mut self, input: std::option::Option<crate::model::Answer>) -> Self {
            self.answer = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateAnswerOutput`](crate::output::UpdateAnswerOutput).
        pub fn build(self) -> crate::output::UpdateAnswerOutput {
            crate::output::UpdateAnswerOutput {
                workload_id: self.workload_id,
                lens_alias: self.lens_alias,
                lens_arn: self.lens_arn,
                answer: self.answer,
            }
        }
    }
}
impl UpdateAnswerOutput {
    /// Creates a new builder-style object to manufacture [`UpdateAnswerOutput`](crate::output::UpdateAnswerOutput).
    pub fn builder() -> crate::output::update_answer_output::Builder {
        crate::output::update_answer_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UntagResourceOutput {}
/// See [`UntagResourceOutput`](crate::output::UntagResourceOutput).
pub mod untag_resource_output {

    /// A builder for [`UntagResourceOutput`](crate::output::UntagResourceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UntagResourceOutput`](crate::output::UntagResourceOutput).
        pub fn build(self) -> crate::output::UntagResourceOutput {
            crate::output::UntagResourceOutput {}
        }
    }
}
impl UntagResourceOutput {
    /// Creates a new builder-style object to manufacture [`UntagResourceOutput`](crate::output::UntagResourceOutput).
    pub fn builder() -> crate::output::untag_resource_output::Builder {
        crate::output::untag_resource_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct TagResourceOutput {}
/// See [`TagResourceOutput`](crate::output::TagResourceOutput).
pub mod tag_resource_output {

    /// A builder for [`TagResourceOutput`](crate::output::TagResourceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`TagResourceOutput`](crate::output::TagResourceOutput).
        pub fn build(self) -> crate::output::TagResourceOutput {
            crate::output::TagResourceOutput {}
        }
    }
}
impl TagResourceOutput {
    /// Creates a new builder-style object to manufacture [`TagResourceOutput`](crate::output::TagResourceOutput).
    pub fn builder() -> crate::output::tag_resource_output::Builder {
        crate::output::tag_resource_output::Builder::default()
    }
}

/// <p>Input for List Workload Share</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListWorkloadSharesOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>A list of workload share summaries.</p>
    #[doc(hidden)]
    pub workload_share_summaries:
        std::option::Option<std::vec::Vec<crate::model::WorkloadShareSummary>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListWorkloadSharesOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>A list of workload share summaries.</p>
    pub fn workload_share_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::WorkloadShareSummary]> {
        self.workload_share_summaries.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListWorkloadSharesOutput`](crate::output::ListWorkloadSharesOutput).
pub mod list_workload_shares_output {

    /// A builder for [`ListWorkloadSharesOutput`](crate::output::ListWorkloadSharesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) workload_share_summaries:
            std::option::Option<std::vec::Vec<crate::model::WorkloadShareSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// Appends an item to `workload_share_summaries`.
        ///
        /// To override the contents of this collection use [`set_workload_share_summaries`](Self::set_workload_share_summaries).
        ///
        /// <p>A list of workload share summaries.</p>
        pub fn workload_share_summaries(
            mut self,
            input: crate::model::WorkloadShareSummary,
        ) -> Self {
            let mut v = self.workload_share_summaries.unwrap_or_default();
            v.push(input);
            self.workload_share_summaries = Some(v);
            self
        }
        /// <p>A list of workload share summaries.</p>
        pub fn set_workload_share_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::WorkloadShareSummary>>,
        ) -> Self {
            self.workload_share_summaries = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListWorkloadSharesOutput`](crate::output::ListWorkloadSharesOutput).
        pub fn build(self) -> crate::output::ListWorkloadSharesOutput {
            crate::output::ListWorkloadSharesOutput {
                workload_id: self.workload_id,
                workload_share_summaries: self.workload_share_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListWorkloadSharesOutput {
    /// Creates a new builder-style object to manufacture [`ListWorkloadSharesOutput`](crate::output::ListWorkloadSharesOutput).
    pub fn builder() -> crate::output::list_workload_shares_output::Builder {
        crate::output::list_workload_shares_output::Builder::default()
    }
}

/// <p>Output of a list workloads call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListWorkloadsOutput {
    /// <p>A list of workload summaries.</p>
    #[doc(hidden)]
    pub workload_summaries: std::option::Option<std::vec::Vec<crate::model::WorkloadSummary>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListWorkloadsOutput {
    /// <p>A list of workload summaries.</p>
    pub fn workload_summaries(&self) -> std::option::Option<&[crate::model::WorkloadSummary]> {
        self.workload_summaries.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListWorkloadsOutput`](crate::output::ListWorkloadsOutput).
pub mod list_workloads_output {

    /// A builder for [`ListWorkloadsOutput`](crate::output::ListWorkloadsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_summaries:
            std::option::Option<std::vec::Vec<crate::model::WorkloadSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `workload_summaries`.
        ///
        /// To override the contents of this collection use [`set_workload_summaries`](Self::set_workload_summaries).
        ///
        /// <p>A list of workload summaries.</p>
        pub fn workload_summaries(mut self, input: crate::model::WorkloadSummary) -> Self {
            let mut v = self.workload_summaries.unwrap_or_default();
            v.push(input);
            self.workload_summaries = Some(v);
            self
        }
        /// <p>A list of workload summaries.</p>
        pub fn set_workload_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::WorkloadSummary>>,
        ) -> Self {
            self.workload_summaries = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListWorkloadsOutput`](crate::output::ListWorkloadsOutput).
        pub fn build(self) -> crate::output::ListWorkloadsOutput {
            crate::output::ListWorkloadsOutput {
                workload_summaries: self.workload_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListWorkloadsOutput {
    /// Creates a new builder-style object to manufacture [`ListWorkloadsOutput`](crate::output::ListWorkloadsOutput).
    pub fn builder() -> crate::output::list_workloads_output::Builder {
        crate::output::list_workloads_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListTagsForResourceOutput {
    /// <p>The tags for the resource.</p>
    #[doc(hidden)]
    pub tags:
        std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
}
impl ListTagsForResourceOutput {
    /// <p>The tags for the resource.</p>
    pub fn tags(
        &self,
    ) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
    {
        self.tags.as_ref()
    }
}
/// See [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
pub mod list_tags_for_resource_output {

    /// A builder for [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) tags: std::option::Option<
            std::collections::HashMap<std::string::String, std::string::String>,
        >,
    }
    impl Builder {
        /// Adds a key-value pair to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The tags for the resource.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            let mut hash_map = self.tags.unwrap_or_default();
            hash_map.insert(k.into(), v.into());
            self.tags = Some(hash_map);
            self
        }
        /// <p>The tags for the resource.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.tags = input;
            self
        }
        /// Consumes the builder and constructs a [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
        pub fn build(self) -> crate::output::ListTagsForResourceOutput {
            crate::output::ListTagsForResourceOutput { tags: self.tags }
        }
    }
}
impl ListTagsForResourceOutput {
    /// Creates a new builder-style object to manufacture [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
    pub fn builder() -> crate::output::list_tags_for_resource_output::Builder {
        crate::output::list_tags_for_resource_output::Builder::default()
    }
}

/// <p>Input for List Share Invitations</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListShareInvitationsOutput {
    /// <p>List of share invitation summaries in a workload.</p>
    #[doc(hidden)]
    pub share_invitation_summaries:
        std::option::Option<std::vec::Vec<crate::model::ShareInvitationSummary>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListShareInvitationsOutput {
    /// <p>List of share invitation summaries in a workload.</p>
    pub fn share_invitation_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::ShareInvitationSummary]> {
        self.share_invitation_summaries.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListShareInvitationsOutput`](crate::output::ListShareInvitationsOutput).
pub mod list_share_invitations_output {

    /// A builder for [`ListShareInvitationsOutput`](crate::output::ListShareInvitationsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) share_invitation_summaries:
            std::option::Option<std::vec::Vec<crate::model::ShareInvitationSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `share_invitation_summaries`.
        ///
        /// To override the contents of this collection use [`set_share_invitation_summaries`](Self::set_share_invitation_summaries).
        ///
        /// <p>List of share invitation summaries in a workload.</p>
        pub fn share_invitation_summaries(
            mut self,
            input: crate::model::ShareInvitationSummary,
        ) -> Self {
            let mut v = self.share_invitation_summaries.unwrap_or_default();
            v.push(input);
            self.share_invitation_summaries = Some(v);
            self
        }
        /// <p>List of share invitation summaries in a workload.</p>
        pub fn set_share_invitation_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ShareInvitationSummary>>,
        ) -> Self {
            self.share_invitation_summaries = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListShareInvitationsOutput`](crate::output::ListShareInvitationsOutput).
        pub fn build(self) -> crate::output::ListShareInvitationsOutput {
            crate::output::ListShareInvitationsOutput {
                share_invitation_summaries: self.share_invitation_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListShareInvitationsOutput {
    /// Creates a new builder-style object to manufacture [`ListShareInvitationsOutput`](crate::output::ListShareInvitationsOutput).
    pub fn builder() -> crate::output::list_share_invitations_output::Builder {
        crate::output::list_share_invitations_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListNotificationsOutput {
    /// <p>List of lens notification summaries in a workload.</p>
    #[doc(hidden)]
    pub notification_summaries:
        std::option::Option<std::vec::Vec<crate::model::NotificationSummary>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListNotificationsOutput {
    /// <p>List of lens notification summaries in a workload.</p>
    pub fn notification_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::NotificationSummary]> {
        self.notification_summaries.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListNotificationsOutput`](crate::output::ListNotificationsOutput).
pub mod list_notifications_output {

    /// A builder for [`ListNotificationsOutput`](crate::output::ListNotificationsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) notification_summaries:
            std::option::Option<std::vec::Vec<crate::model::NotificationSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `notification_summaries`.
        ///
        /// To override the contents of this collection use [`set_notification_summaries`](Self::set_notification_summaries).
        ///
        /// <p>List of lens notification summaries in a workload.</p>
        pub fn notification_summaries(mut self, input: crate::model::NotificationSummary) -> Self {
            let mut v = self.notification_summaries.unwrap_or_default();
            v.push(input);
            self.notification_summaries = Some(v);
            self
        }
        /// <p>List of lens notification summaries in a workload.</p>
        pub fn set_notification_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::NotificationSummary>>,
        ) -> Self {
            self.notification_summaries = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListNotificationsOutput`](crate::output::ListNotificationsOutput).
        pub fn build(self) -> crate::output::ListNotificationsOutput {
            crate::output::ListNotificationsOutput {
                notification_summaries: self.notification_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListNotificationsOutput {
    /// Creates a new builder-style object to manufacture [`ListNotificationsOutput`](crate::output::ListNotificationsOutput).
    pub fn builder() -> crate::output::list_notifications_output::Builder {
        crate::output::list_notifications_output::Builder::default()
    }
}

/// <p>Output of a list milestones call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListMilestonesOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>A list of milestone summaries.</p>
    #[doc(hidden)]
    pub milestone_summaries: std::option::Option<std::vec::Vec<crate::model::MilestoneSummary>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListMilestonesOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>A list of milestone summaries.</p>
    pub fn milestone_summaries(&self) -> std::option::Option<&[crate::model::MilestoneSummary]> {
        self.milestone_summaries.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListMilestonesOutput`](crate::output::ListMilestonesOutput).
pub mod list_milestones_output {

    /// A builder for [`ListMilestonesOutput`](crate::output::ListMilestonesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) milestone_summaries:
            std::option::Option<std::vec::Vec<crate::model::MilestoneSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// Appends an item to `milestone_summaries`.
        ///
        /// To override the contents of this collection use [`set_milestone_summaries`](Self::set_milestone_summaries).
        ///
        /// <p>A list of milestone summaries.</p>
        pub fn milestone_summaries(mut self, input: crate::model::MilestoneSummary) -> Self {
            let mut v = self.milestone_summaries.unwrap_or_default();
            v.push(input);
            self.milestone_summaries = Some(v);
            self
        }
        /// <p>A list of milestone summaries.</p>
        pub fn set_milestone_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MilestoneSummary>>,
        ) -> Self {
            self.milestone_summaries = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListMilestonesOutput`](crate::output::ListMilestonesOutput).
        pub fn build(self) -> crate::output::ListMilestonesOutput {
            crate::output::ListMilestonesOutput {
                workload_id: self.workload_id,
                milestone_summaries: self.milestone_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListMilestonesOutput {
    /// Creates a new builder-style object to manufacture [`ListMilestonesOutput`](crate::output::ListMilestonesOutput).
    pub fn builder() -> crate::output::list_milestones_output::Builder {
        crate::output::list_milestones_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListLensSharesOutput {
    /// <p>A list of lens share summaries.</p>
    #[doc(hidden)]
    pub lens_share_summaries: std::option::Option<std::vec::Vec<crate::model::LensShareSummary>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListLensSharesOutput {
    /// <p>A list of lens share summaries.</p>
    pub fn lens_share_summaries(&self) -> std::option::Option<&[crate::model::LensShareSummary]> {
        self.lens_share_summaries.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListLensSharesOutput`](crate::output::ListLensSharesOutput).
pub mod list_lens_shares_output {

    /// A builder for [`ListLensSharesOutput`](crate::output::ListLensSharesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) lens_share_summaries:
            std::option::Option<std::vec::Vec<crate::model::LensShareSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `lens_share_summaries`.
        ///
        /// To override the contents of this collection use [`set_lens_share_summaries`](Self::set_lens_share_summaries).
        ///
        /// <p>A list of lens share summaries.</p>
        pub fn lens_share_summaries(mut self, input: crate::model::LensShareSummary) -> Self {
            let mut v = self.lens_share_summaries.unwrap_or_default();
            v.push(input);
            self.lens_share_summaries = Some(v);
            self
        }
        /// <p>A list of lens share summaries.</p>
        pub fn set_lens_share_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::LensShareSummary>>,
        ) -> Self {
            self.lens_share_summaries = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListLensSharesOutput`](crate::output::ListLensSharesOutput).
        pub fn build(self) -> crate::output::ListLensSharesOutput {
            crate::output::ListLensSharesOutput {
                lens_share_summaries: self.lens_share_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListLensSharesOutput {
    /// Creates a new builder-style object to manufacture [`ListLensSharesOutput`](crate::output::ListLensSharesOutput).
    pub fn builder() -> crate::output::list_lens_shares_output::Builder {
        crate::output::list_lens_shares_output::Builder::default()
    }
}

/// <p>Output of a list lens reviews call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListLensReviewsOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    #[doc(hidden)]
    pub milestone_number: i32,
    /// <p>List of lens summaries of lens reviews of a workload.</p>
    #[doc(hidden)]
    pub lens_review_summaries: std::option::Option<std::vec::Vec<crate::model::LensReviewSummary>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListLensReviewsOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    pub fn milestone_number(&self) -> i32 {
        self.milestone_number
    }
    /// <p>List of lens summaries of lens reviews of a workload.</p>
    pub fn lens_review_summaries(&self) -> std::option::Option<&[crate::model::LensReviewSummary]> {
        self.lens_review_summaries.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListLensReviewsOutput`](crate::output::ListLensReviewsOutput).
pub mod list_lens_reviews_output {

    /// A builder for [`ListLensReviewsOutput`](crate::output::ListLensReviewsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) milestone_number: std::option::Option<i32>,
        pub(crate) lens_review_summaries:
            std::option::Option<std::vec::Vec<crate::model::LensReviewSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn milestone_number(mut self, input: i32) -> Self {
            self.milestone_number = Some(input);
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn set_milestone_number(mut self, input: std::option::Option<i32>) -> Self {
            self.milestone_number = input;
            self
        }
        /// Appends an item to `lens_review_summaries`.
        ///
        /// To override the contents of this collection use [`set_lens_review_summaries`](Self::set_lens_review_summaries).
        ///
        /// <p>List of lens summaries of lens reviews of a workload.</p>
        pub fn lens_review_summaries(mut self, input: crate::model::LensReviewSummary) -> Self {
            let mut v = self.lens_review_summaries.unwrap_or_default();
            v.push(input);
            self.lens_review_summaries = Some(v);
            self
        }
        /// <p>List of lens summaries of lens reviews of a workload.</p>
        pub fn set_lens_review_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::LensReviewSummary>>,
        ) -> Self {
            self.lens_review_summaries = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListLensReviewsOutput`](crate::output::ListLensReviewsOutput).
        pub fn build(self) -> crate::output::ListLensReviewsOutput {
            crate::output::ListLensReviewsOutput {
                workload_id: self.workload_id,
                milestone_number: self.milestone_number.unwrap_or_default(),
                lens_review_summaries: self.lens_review_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListLensReviewsOutput {
    /// Creates a new builder-style object to manufacture [`ListLensReviewsOutput`](crate::output::ListLensReviewsOutput).
    pub fn builder() -> crate::output::list_lens_reviews_output::Builder {
        crate::output::list_lens_reviews_output::Builder::default()
    }
}

/// <p>Output of a list lens review improvements call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListLensReviewImprovementsOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    #[doc(hidden)]
    pub milestone_number: i32,
    /// <p>The alias of the lens.</p>
    /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
    /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
    /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
    #[doc(hidden)]
    pub lens_alias: std::option::Option<std::string::String>,
    /// <p>The ARN for the lens.</p>
    #[doc(hidden)]
    pub lens_arn: std::option::Option<std::string::String>,
    /// <p>List of improvement summaries of lens review in a workload.</p>
    #[doc(hidden)]
    pub improvement_summaries: std::option::Option<std::vec::Vec<crate::model::ImprovementSummary>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListLensReviewImprovementsOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    pub fn milestone_number(&self) -> i32 {
        self.milestone_number
    }
    /// <p>The alias of the lens.</p>
    /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
    /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
    /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
    pub fn lens_alias(&self) -> std::option::Option<&str> {
        self.lens_alias.as_deref()
    }
    /// <p>The ARN for the lens.</p>
    pub fn lens_arn(&self) -> std::option::Option<&str> {
        self.lens_arn.as_deref()
    }
    /// <p>List of improvement summaries of lens review in a workload.</p>
    pub fn improvement_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::ImprovementSummary]> {
        self.improvement_summaries.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListLensReviewImprovementsOutput`](crate::output::ListLensReviewImprovementsOutput).
pub mod list_lens_review_improvements_output {

    /// A builder for [`ListLensReviewImprovementsOutput`](crate::output::ListLensReviewImprovementsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) milestone_number: std::option::Option<i32>,
        pub(crate) lens_alias: std::option::Option<std::string::String>,
        pub(crate) lens_arn: std::option::Option<std::string::String>,
        pub(crate) improvement_summaries:
            std::option::Option<std::vec::Vec<crate::model::ImprovementSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn milestone_number(mut self, input: i32) -> Self {
            self.milestone_number = Some(input);
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn set_milestone_number(mut self, input: std::option::Option<i32>) -> Self {
            self.milestone_number = input;
            self
        }
        /// <p>The alias of the lens.</p>
        /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
        /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
        /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
        pub fn lens_alias(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_alias = Some(input.into());
            self
        }
        /// <p>The alias of the lens.</p>
        /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
        /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
        /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
        pub fn set_lens_alias(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_alias = input;
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn lens_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_arn = Some(input.into());
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn set_lens_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_arn = input;
            self
        }
        /// Appends an item to `improvement_summaries`.
        ///
        /// To override the contents of this collection use [`set_improvement_summaries`](Self::set_improvement_summaries).
        ///
        /// <p>List of improvement summaries of lens review in a workload.</p>
        pub fn improvement_summaries(mut self, input: crate::model::ImprovementSummary) -> Self {
            let mut v = self.improvement_summaries.unwrap_or_default();
            v.push(input);
            self.improvement_summaries = Some(v);
            self
        }
        /// <p>List of improvement summaries of lens review in a workload.</p>
        pub fn set_improvement_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ImprovementSummary>>,
        ) -> Self {
            self.improvement_summaries = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListLensReviewImprovementsOutput`](crate::output::ListLensReviewImprovementsOutput).
        pub fn build(self) -> crate::output::ListLensReviewImprovementsOutput {
            crate::output::ListLensReviewImprovementsOutput {
                workload_id: self.workload_id,
                milestone_number: self.milestone_number.unwrap_or_default(),
                lens_alias: self.lens_alias,
                lens_arn: self.lens_arn,
                improvement_summaries: self.improvement_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListLensReviewImprovementsOutput {
    /// Creates a new builder-style object to manufacture [`ListLensReviewImprovementsOutput`](crate::output::ListLensReviewImprovementsOutput).
    pub fn builder() -> crate::output::list_lens_review_improvements_output::Builder {
        crate::output::list_lens_review_improvements_output::Builder::default()
    }
}

/// <p>Output of a list lenses call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListLensesOutput {
    /// <p>List of lens summaries of available lenses.</p>
    #[doc(hidden)]
    pub lens_summaries: std::option::Option<std::vec::Vec<crate::model::LensSummary>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListLensesOutput {
    /// <p>List of lens summaries of available lenses.</p>
    pub fn lens_summaries(&self) -> std::option::Option<&[crate::model::LensSummary]> {
        self.lens_summaries.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListLensesOutput`](crate::output::ListLensesOutput).
pub mod list_lenses_output {

    /// A builder for [`ListLensesOutput`](crate::output::ListLensesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) lens_summaries: std::option::Option<std::vec::Vec<crate::model::LensSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `lens_summaries`.
        ///
        /// To override the contents of this collection use [`set_lens_summaries`](Self::set_lens_summaries).
        ///
        /// <p>List of lens summaries of available lenses.</p>
        pub fn lens_summaries(mut self, input: crate::model::LensSummary) -> Self {
            let mut v = self.lens_summaries.unwrap_or_default();
            v.push(input);
            self.lens_summaries = Some(v);
            self
        }
        /// <p>List of lens summaries of available lenses.</p>
        pub fn set_lens_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::LensSummary>>,
        ) -> Self {
            self.lens_summaries = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListLensesOutput`](crate::output::ListLensesOutput).
        pub fn build(self) -> crate::output::ListLensesOutput {
            crate::output::ListLensesOutput {
                lens_summaries: self.lens_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListLensesOutput {
    /// Creates a new builder-style object to manufacture [`ListLensesOutput`](crate::output::ListLensesOutput).
    pub fn builder() -> crate::output::list_lenses_output::Builder {
        crate::output::list_lenses_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListCheckSummariesOutput {
    /// <p>List of Trusted Advisor summaries related to the Well-Architected best practice.</p>
    #[doc(hidden)]
    pub check_summaries: std::option::Option<std::vec::Vec<crate::model::CheckSummary>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListCheckSummariesOutput {
    /// <p>List of Trusted Advisor summaries related to the Well-Architected best practice.</p>
    pub fn check_summaries(&self) -> std::option::Option<&[crate::model::CheckSummary]> {
        self.check_summaries.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListCheckSummariesOutput`](crate::output::ListCheckSummariesOutput).
pub mod list_check_summaries_output {

    /// A builder for [`ListCheckSummariesOutput`](crate::output::ListCheckSummariesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) check_summaries: std::option::Option<std::vec::Vec<crate::model::CheckSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `check_summaries`.
        ///
        /// To override the contents of this collection use [`set_check_summaries`](Self::set_check_summaries).
        ///
        /// <p>List of Trusted Advisor summaries related to the Well-Architected best practice.</p>
        pub fn check_summaries(mut self, input: crate::model::CheckSummary) -> Self {
            let mut v = self.check_summaries.unwrap_or_default();
            v.push(input);
            self.check_summaries = Some(v);
            self
        }
        /// <p>List of Trusted Advisor summaries related to the Well-Architected best practice.</p>
        pub fn set_check_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CheckSummary>>,
        ) -> Self {
            self.check_summaries = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListCheckSummariesOutput`](crate::output::ListCheckSummariesOutput).
        pub fn build(self) -> crate::output::ListCheckSummariesOutput {
            crate::output::ListCheckSummariesOutput {
                check_summaries: self.check_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListCheckSummariesOutput {
    /// Creates a new builder-style object to manufacture [`ListCheckSummariesOutput`](crate::output::ListCheckSummariesOutput).
    pub fn builder() -> crate::output::list_check_summaries_output::Builder {
        crate::output::list_check_summaries_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListCheckDetailsOutput {
    /// <p>The details about the Trusted Advisor checks related to the Well-Architected best practice.</p>
    #[doc(hidden)]
    pub check_details: std::option::Option<std::vec::Vec<crate::model::CheckDetail>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListCheckDetailsOutput {
    /// <p>The details about the Trusted Advisor checks related to the Well-Architected best practice.</p>
    pub fn check_details(&self) -> std::option::Option<&[crate::model::CheckDetail]> {
        self.check_details.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListCheckDetailsOutput`](crate::output::ListCheckDetailsOutput).
pub mod list_check_details_output {

    /// A builder for [`ListCheckDetailsOutput`](crate::output::ListCheckDetailsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) check_details: std::option::Option<std::vec::Vec<crate::model::CheckDetail>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `check_details`.
        ///
        /// To override the contents of this collection use [`set_check_details`](Self::set_check_details).
        ///
        /// <p>The details about the Trusted Advisor checks related to the Well-Architected best practice.</p>
        pub fn check_details(mut self, input: crate::model::CheckDetail) -> Self {
            let mut v = self.check_details.unwrap_or_default();
            v.push(input);
            self.check_details = Some(v);
            self
        }
        /// <p>The details about the Trusted Advisor checks related to the Well-Architected best practice.</p>
        pub fn set_check_details(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CheckDetail>>,
        ) -> Self {
            self.check_details = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListCheckDetailsOutput`](crate::output::ListCheckDetailsOutput).
        pub fn build(self) -> crate::output::ListCheckDetailsOutput {
            crate::output::ListCheckDetailsOutput {
                check_details: self.check_details,
                next_token: self.next_token,
            }
        }
    }
}
impl ListCheckDetailsOutput {
    /// Creates a new builder-style object to manufacture [`ListCheckDetailsOutput`](crate::output::ListCheckDetailsOutput).
    pub fn builder() -> crate::output::list_check_details_output::Builder {
        crate::output::list_check_details_output::Builder::default()
    }
}

/// <p>Output of a list answers call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListAnswersOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    #[doc(hidden)]
    pub milestone_number: i32,
    /// <p>The alias of the lens.</p>
    /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
    /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
    /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
    #[doc(hidden)]
    pub lens_alias: std::option::Option<std::string::String>,
    /// <p>The ARN for the lens.</p>
    #[doc(hidden)]
    pub lens_arn: std::option::Option<std::string::String>,
    /// <p>List of answer summaries of lens review in a workload.</p>
    #[doc(hidden)]
    pub answer_summaries: std::option::Option<std::vec::Vec<crate::model::AnswerSummary>>,
    /// <p>The token to use to retrieve the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListAnswersOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    pub fn milestone_number(&self) -> i32 {
        self.milestone_number
    }
    /// <p>The alias of the lens.</p>
    /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
    /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
    /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
    pub fn lens_alias(&self) -> std::option::Option<&str> {
        self.lens_alias.as_deref()
    }
    /// <p>The ARN for the lens.</p>
    pub fn lens_arn(&self) -> std::option::Option<&str> {
        self.lens_arn.as_deref()
    }
    /// <p>List of answer summaries of lens review in a workload.</p>
    pub fn answer_summaries(&self) -> std::option::Option<&[crate::model::AnswerSummary]> {
        self.answer_summaries.as_deref()
    }
    /// <p>The token to use to retrieve the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListAnswersOutput`](crate::output::ListAnswersOutput).
pub mod list_answers_output {

    /// A builder for [`ListAnswersOutput`](crate::output::ListAnswersOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) milestone_number: std::option::Option<i32>,
        pub(crate) lens_alias: std::option::Option<std::string::String>,
        pub(crate) lens_arn: std::option::Option<std::string::String>,
        pub(crate) answer_summaries:
            std::option::Option<std::vec::Vec<crate::model::AnswerSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn milestone_number(mut self, input: i32) -> Self {
            self.milestone_number = Some(input);
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn set_milestone_number(mut self, input: std::option::Option<i32>) -> Self {
            self.milestone_number = input;
            self
        }
        /// <p>The alias of the lens.</p>
        /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
        /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
        /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
        pub fn lens_alias(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_alias = Some(input.into());
            self
        }
        /// <p>The alias of the lens.</p>
        /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
        /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
        /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
        pub fn set_lens_alias(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_alias = input;
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn lens_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_arn = Some(input.into());
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn set_lens_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_arn = input;
            self
        }
        /// Appends an item to `answer_summaries`.
        ///
        /// To override the contents of this collection use [`set_answer_summaries`](Self::set_answer_summaries).
        ///
        /// <p>List of answer summaries of lens review in a workload.</p>
        pub fn answer_summaries(mut self, input: crate::model::AnswerSummary) -> Self {
            let mut v = self.answer_summaries.unwrap_or_default();
            v.push(input);
            self.answer_summaries = Some(v);
            self
        }
        /// <p>List of answer summaries of lens review in a workload.</p>
        pub fn set_answer_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::AnswerSummary>>,
        ) -> Self {
            self.answer_summaries = input;
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use to retrieve the next set of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListAnswersOutput`](crate::output::ListAnswersOutput).
        pub fn build(self) -> crate::output::ListAnswersOutput {
            crate::output::ListAnswersOutput {
                workload_id: self.workload_id,
                milestone_number: self.milestone_number.unwrap_or_default(),
                lens_alias: self.lens_alias,
                lens_arn: self.lens_arn,
                answer_summaries: self.answer_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListAnswersOutput {
    /// Creates a new builder-style object to manufacture [`ListAnswersOutput`](crate::output::ListAnswersOutput).
    pub fn builder() -> crate::output::list_answers_output::Builder {
        crate::output::list_answers_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ImportLensOutput {
    /// <p>The ARN for the lens.</p>
    #[doc(hidden)]
    pub lens_arn: std::option::Option<std::string::String>,
    /// <p>The status of the imported lens.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::ImportLensStatus>,
}
impl ImportLensOutput {
    /// <p>The ARN for the lens.</p>
    pub fn lens_arn(&self) -> std::option::Option<&str> {
        self.lens_arn.as_deref()
    }
    /// <p>The status of the imported lens.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::ImportLensStatus> {
        self.status.as_ref()
    }
}
/// See [`ImportLensOutput`](crate::output::ImportLensOutput).
pub mod import_lens_output {

    /// A builder for [`ImportLensOutput`](crate::output::ImportLensOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) lens_arn: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::ImportLensStatus>,
    }
    impl Builder {
        /// <p>The ARN for the lens.</p>
        pub fn lens_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_arn = Some(input.into());
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn set_lens_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_arn = input;
            self
        }
        /// <p>The status of the imported lens.</p>
        pub fn status(mut self, input: crate::model::ImportLensStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The status of the imported lens.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::ImportLensStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// Consumes the builder and constructs a [`ImportLensOutput`](crate::output::ImportLensOutput).
        pub fn build(self) -> crate::output::ImportLensOutput {
            crate::output::ImportLensOutput {
                lens_arn: self.lens_arn,
                status: self.status,
            }
        }
    }
}
impl ImportLensOutput {
    /// Creates a new builder-style object to manufacture [`ImportLensOutput`](crate::output::ImportLensOutput).
    pub fn builder() -> crate::output::import_lens_output::Builder {
        crate::output::import_lens_output::Builder::default()
    }
}

/// <p>Output of a get workload call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetWorkloadOutput {
    /// <p>A workload return object.</p>
    #[doc(hidden)]
    pub workload: std::option::Option<crate::model::Workload>,
}
impl GetWorkloadOutput {
    /// <p>A workload return object.</p>
    pub fn workload(&self) -> std::option::Option<&crate::model::Workload> {
        self.workload.as_ref()
    }
}
/// See [`GetWorkloadOutput`](crate::output::GetWorkloadOutput).
pub mod get_workload_output {

    /// A builder for [`GetWorkloadOutput`](crate::output::GetWorkloadOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload: std::option::Option<crate::model::Workload>,
    }
    impl Builder {
        /// <p>A workload return object.</p>
        pub fn workload(mut self, input: crate::model::Workload) -> Self {
            self.workload = Some(input);
            self
        }
        /// <p>A workload return object.</p>
        pub fn set_workload(mut self, input: std::option::Option<crate::model::Workload>) -> Self {
            self.workload = input;
            self
        }
        /// Consumes the builder and constructs a [`GetWorkloadOutput`](crate::output::GetWorkloadOutput).
        pub fn build(self) -> crate::output::GetWorkloadOutput {
            crate::output::GetWorkloadOutput {
                workload: self.workload,
            }
        }
    }
}
impl GetWorkloadOutput {
    /// Creates a new builder-style object to manufacture [`GetWorkloadOutput`](crate::output::GetWorkloadOutput).
    pub fn builder() -> crate::output::get_workload_output::Builder {
        crate::output::get_workload_output::Builder::default()
    }
}

/// <p>Output of a get milestone call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetMilestoneOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>A milestone return object.</p>
    #[doc(hidden)]
    pub milestone: std::option::Option<crate::model::Milestone>,
}
impl GetMilestoneOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>A milestone return object.</p>
    pub fn milestone(&self) -> std::option::Option<&crate::model::Milestone> {
        self.milestone.as_ref()
    }
}
/// See [`GetMilestoneOutput`](crate::output::GetMilestoneOutput).
pub mod get_milestone_output {

    /// A builder for [`GetMilestoneOutput`](crate::output::GetMilestoneOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) milestone: std::option::Option<crate::model::Milestone>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>A milestone return object.</p>
        pub fn milestone(mut self, input: crate::model::Milestone) -> Self {
            self.milestone = Some(input);
            self
        }
        /// <p>A milestone return object.</p>
        pub fn set_milestone(
            mut self,
            input: std::option::Option<crate::model::Milestone>,
        ) -> Self {
            self.milestone = input;
            self
        }
        /// Consumes the builder and constructs a [`GetMilestoneOutput`](crate::output::GetMilestoneOutput).
        pub fn build(self) -> crate::output::GetMilestoneOutput {
            crate::output::GetMilestoneOutput {
                workload_id: self.workload_id,
                milestone: self.milestone,
            }
        }
    }
}
impl GetMilestoneOutput {
    /// Creates a new builder-style object to manufacture [`GetMilestoneOutput`](crate::output::GetMilestoneOutput).
    pub fn builder() -> crate::output::get_milestone_output::Builder {
        crate::output::get_milestone_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetLensVersionDifferenceOutput {
    /// <p>The alias of the lens.</p>
    /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
    /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
    /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
    #[doc(hidden)]
    pub lens_alias: std::option::Option<std::string::String>,
    /// <p>The ARN for the lens.</p>
    #[doc(hidden)]
    pub lens_arn: std::option::Option<std::string::String>,
    /// <p>The base version of the lens.</p>
    #[doc(hidden)]
    pub base_lens_version: std::option::Option<std::string::String>,
    /// <p>The target lens version for the lens.</p>
    #[doc(hidden)]
    pub target_lens_version: std::option::Option<std::string::String>,
    /// <p>The latest version of the lens.</p>
    #[doc(hidden)]
    pub latest_lens_version: std::option::Option<std::string::String>,
    /// <p>The differences between the base and latest versions of the lens.</p>
    #[doc(hidden)]
    pub version_differences: std::option::Option<crate::model::VersionDifferences>,
}
impl GetLensVersionDifferenceOutput {
    /// <p>The alias of the lens.</p>
    /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
    /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
    /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
    pub fn lens_alias(&self) -> std::option::Option<&str> {
        self.lens_alias.as_deref()
    }
    /// <p>The ARN for the lens.</p>
    pub fn lens_arn(&self) -> std::option::Option<&str> {
        self.lens_arn.as_deref()
    }
    /// <p>The base version of the lens.</p>
    pub fn base_lens_version(&self) -> std::option::Option<&str> {
        self.base_lens_version.as_deref()
    }
    /// <p>The target lens version for the lens.</p>
    pub fn target_lens_version(&self) -> std::option::Option<&str> {
        self.target_lens_version.as_deref()
    }
    /// <p>The latest version of the lens.</p>
    pub fn latest_lens_version(&self) -> std::option::Option<&str> {
        self.latest_lens_version.as_deref()
    }
    /// <p>The differences between the base and latest versions of the lens.</p>
    pub fn version_differences(&self) -> std::option::Option<&crate::model::VersionDifferences> {
        self.version_differences.as_ref()
    }
}
/// See [`GetLensVersionDifferenceOutput`](crate::output::GetLensVersionDifferenceOutput).
pub mod get_lens_version_difference_output {

    /// A builder for [`GetLensVersionDifferenceOutput`](crate::output::GetLensVersionDifferenceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) lens_alias: std::option::Option<std::string::String>,
        pub(crate) lens_arn: std::option::Option<std::string::String>,
        pub(crate) base_lens_version: std::option::Option<std::string::String>,
        pub(crate) target_lens_version: std::option::Option<std::string::String>,
        pub(crate) latest_lens_version: std::option::Option<std::string::String>,
        pub(crate) version_differences: std::option::Option<crate::model::VersionDifferences>,
    }
    impl Builder {
        /// <p>The alias of the lens.</p>
        /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
        /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
        /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
        pub fn lens_alias(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_alias = Some(input.into());
            self
        }
        /// <p>The alias of the lens.</p>
        /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
        /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
        /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
        pub fn set_lens_alias(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_alias = input;
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn lens_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_arn = Some(input.into());
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn set_lens_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_arn = input;
            self
        }
        /// <p>The base version of the lens.</p>
        pub fn base_lens_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.base_lens_version = Some(input.into());
            self
        }
        /// <p>The base version of the lens.</p>
        pub fn set_base_lens_version(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.base_lens_version = input;
            self
        }
        /// <p>The target lens version for the lens.</p>
        pub fn target_lens_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.target_lens_version = Some(input.into());
            self
        }
        /// <p>The target lens version for the lens.</p>
        pub fn set_target_lens_version(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.target_lens_version = input;
            self
        }
        /// <p>The latest version of the lens.</p>
        pub fn latest_lens_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.latest_lens_version = Some(input.into());
            self
        }
        /// <p>The latest version of the lens.</p>
        pub fn set_latest_lens_version(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.latest_lens_version = input;
            self
        }
        /// <p>The differences between the base and latest versions of the lens.</p>
        pub fn version_differences(mut self, input: crate::model::VersionDifferences) -> Self {
            self.version_differences = Some(input);
            self
        }
        /// <p>The differences between the base and latest versions of the lens.</p>
        pub fn set_version_differences(
            mut self,
            input: std::option::Option<crate::model::VersionDifferences>,
        ) -> Self {
            self.version_differences = input;
            self
        }
        /// Consumes the builder and constructs a [`GetLensVersionDifferenceOutput`](crate::output::GetLensVersionDifferenceOutput).
        pub fn build(self) -> crate::output::GetLensVersionDifferenceOutput {
            crate::output::GetLensVersionDifferenceOutput {
                lens_alias: self.lens_alias,
                lens_arn: self.lens_arn,
                base_lens_version: self.base_lens_version,
                target_lens_version: self.target_lens_version,
                latest_lens_version: self.latest_lens_version,
                version_differences: self.version_differences,
            }
        }
    }
}
impl GetLensVersionDifferenceOutput {
    /// Creates a new builder-style object to manufacture [`GetLensVersionDifferenceOutput`](crate::output::GetLensVersionDifferenceOutput).
    pub fn builder() -> crate::output::get_lens_version_difference_output::Builder {
        crate::output::get_lens_version_difference_output::Builder::default()
    }
}

/// <p>Output of a get lens review report call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetLensReviewReportOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    #[doc(hidden)]
    pub milestone_number: i32,
    /// <p>A report of a lens review.</p>
    #[doc(hidden)]
    pub lens_review_report: std::option::Option<crate::model::LensReviewReport>,
}
impl GetLensReviewReportOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    pub fn milestone_number(&self) -> i32 {
        self.milestone_number
    }
    /// <p>A report of a lens review.</p>
    pub fn lens_review_report(&self) -> std::option::Option<&crate::model::LensReviewReport> {
        self.lens_review_report.as_ref()
    }
}
/// See [`GetLensReviewReportOutput`](crate::output::GetLensReviewReportOutput).
pub mod get_lens_review_report_output {

    /// A builder for [`GetLensReviewReportOutput`](crate::output::GetLensReviewReportOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) milestone_number: std::option::Option<i32>,
        pub(crate) lens_review_report: std::option::Option<crate::model::LensReviewReport>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn milestone_number(mut self, input: i32) -> Self {
            self.milestone_number = Some(input);
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn set_milestone_number(mut self, input: std::option::Option<i32>) -> Self {
            self.milestone_number = input;
            self
        }
        /// <p>A report of a lens review.</p>
        pub fn lens_review_report(mut self, input: crate::model::LensReviewReport) -> Self {
            self.lens_review_report = Some(input);
            self
        }
        /// <p>A report of a lens review.</p>
        pub fn set_lens_review_report(
            mut self,
            input: std::option::Option<crate::model::LensReviewReport>,
        ) -> Self {
            self.lens_review_report = input;
            self
        }
        /// Consumes the builder and constructs a [`GetLensReviewReportOutput`](crate::output::GetLensReviewReportOutput).
        pub fn build(self) -> crate::output::GetLensReviewReportOutput {
            crate::output::GetLensReviewReportOutput {
                workload_id: self.workload_id,
                milestone_number: self.milestone_number.unwrap_or_default(),
                lens_review_report: self.lens_review_report,
            }
        }
    }
}
impl GetLensReviewReportOutput {
    /// Creates a new builder-style object to manufacture [`GetLensReviewReportOutput`](crate::output::GetLensReviewReportOutput).
    pub fn builder() -> crate::output::get_lens_review_report_output::Builder {
        crate::output::get_lens_review_report_output::Builder::default()
    }
}

/// <p>Output of a get lens review call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetLensReviewOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    #[doc(hidden)]
    pub milestone_number: i32,
    /// <p>A lens review of a question.</p>
    #[doc(hidden)]
    pub lens_review: std::option::Option<crate::model::LensReview>,
}
impl GetLensReviewOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    pub fn milestone_number(&self) -> i32 {
        self.milestone_number
    }
    /// <p>A lens review of a question.</p>
    pub fn lens_review(&self) -> std::option::Option<&crate::model::LensReview> {
        self.lens_review.as_ref()
    }
}
/// See [`GetLensReviewOutput`](crate::output::GetLensReviewOutput).
pub mod get_lens_review_output {

    /// A builder for [`GetLensReviewOutput`](crate::output::GetLensReviewOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) milestone_number: std::option::Option<i32>,
        pub(crate) lens_review: std::option::Option<crate::model::LensReview>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn milestone_number(mut self, input: i32) -> Self {
            self.milestone_number = Some(input);
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn set_milestone_number(mut self, input: std::option::Option<i32>) -> Self {
            self.milestone_number = input;
            self
        }
        /// <p>A lens review of a question.</p>
        pub fn lens_review(mut self, input: crate::model::LensReview) -> Self {
            self.lens_review = Some(input);
            self
        }
        /// <p>A lens review of a question.</p>
        pub fn set_lens_review(
            mut self,
            input: std::option::Option<crate::model::LensReview>,
        ) -> Self {
            self.lens_review = input;
            self
        }
        /// Consumes the builder and constructs a [`GetLensReviewOutput`](crate::output::GetLensReviewOutput).
        pub fn build(self) -> crate::output::GetLensReviewOutput {
            crate::output::GetLensReviewOutput {
                workload_id: self.workload_id,
                milestone_number: self.milestone_number.unwrap_or_default(),
                lens_review: self.lens_review,
            }
        }
    }
}
impl GetLensReviewOutput {
    /// Creates a new builder-style object to manufacture [`GetLensReviewOutput`](crate::output::GetLensReviewOutput).
    pub fn builder() -> crate::output::get_lens_review_output::Builder {
        crate::output::get_lens_review_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetLensOutput {
    /// <p>A lens return object.</p>
    #[doc(hidden)]
    pub lens: std::option::Option<crate::model::Lens>,
}
impl GetLensOutput {
    /// <p>A lens return object.</p>
    pub fn lens(&self) -> std::option::Option<&crate::model::Lens> {
        self.lens.as_ref()
    }
}
/// See [`GetLensOutput`](crate::output::GetLensOutput).
pub mod get_lens_output {

    /// A builder for [`GetLensOutput`](crate::output::GetLensOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) lens: std::option::Option<crate::model::Lens>,
    }
    impl Builder {
        /// <p>A lens return object.</p>
        pub fn lens(mut self, input: crate::model::Lens) -> Self {
            self.lens = Some(input);
            self
        }
        /// <p>A lens return object.</p>
        pub fn set_lens(mut self, input: std::option::Option<crate::model::Lens>) -> Self {
            self.lens = input;
            self
        }
        /// Consumes the builder and constructs a [`GetLensOutput`](crate::output::GetLensOutput).
        pub fn build(self) -> crate::output::GetLensOutput {
            crate::output::GetLensOutput { lens: self.lens }
        }
    }
}
impl GetLensOutput {
    /// Creates a new builder-style object to manufacture [`GetLensOutput`](crate::output::GetLensOutput).
    pub fn builder() -> crate::output::get_lens_output::Builder {
        crate::output::get_lens_output::Builder::default()
    }
}

/// <p>Output of a get answer call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetAnswerOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    #[doc(hidden)]
    pub milestone_number: i32,
    /// <p>The alias of the lens.</p>
    /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
    /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
    /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
    #[doc(hidden)]
    pub lens_alias: std::option::Option<std::string::String>,
    /// <p>The ARN for the lens.</p>
    #[doc(hidden)]
    pub lens_arn: std::option::Option<std::string::String>,
    /// <p>An answer of the question.</p>
    #[doc(hidden)]
    pub answer: std::option::Option<crate::model::Answer>,
}
impl GetAnswerOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    pub fn milestone_number(&self) -> i32 {
        self.milestone_number
    }
    /// <p>The alias of the lens.</p>
    /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
    /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
    /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
    pub fn lens_alias(&self) -> std::option::Option<&str> {
        self.lens_alias.as_deref()
    }
    /// <p>The ARN for the lens.</p>
    pub fn lens_arn(&self) -> std::option::Option<&str> {
        self.lens_arn.as_deref()
    }
    /// <p>An answer of the question.</p>
    pub fn answer(&self) -> std::option::Option<&crate::model::Answer> {
        self.answer.as_ref()
    }
}
/// See [`GetAnswerOutput`](crate::output::GetAnswerOutput).
pub mod get_answer_output {

    /// A builder for [`GetAnswerOutput`](crate::output::GetAnswerOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) milestone_number: std::option::Option<i32>,
        pub(crate) lens_alias: std::option::Option<std::string::String>,
        pub(crate) lens_arn: std::option::Option<std::string::String>,
        pub(crate) answer: std::option::Option<crate::model::Answer>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn milestone_number(mut self, input: i32) -> Self {
            self.milestone_number = Some(input);
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn set_milestone_number(mut self, input: std::option::Option<i32>) -> Self {
            self.milestone_number = input;
            self
        }
        /// <p>The alias of the lens.</p>
        /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
        /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
        /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
        pub fn lens_alias(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_alias = Some(input.into());
            self
        }
        /// <p>The alias of the lens.</p>
        /// <p>For Amazon Web Services official lenses, this is either the lens alias, such as <code>serverless</code>, or the lens ARN, such as <code>arn:aws:wellarchitected:us-west-2::lens/serverless</code>.</p>
        /// <p>For custom lenses, this is the lens ARN, such as <code>arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens</code>. </p>
        /// <p>Each lens is identified by its <code>LensSummary$LensAlias</code>.</p>
        pub fn set_lens_alias(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_alias = input;
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn lens_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_arn = Some(input.into());
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn set_lens_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_arn = input;
            self
        }
        /// <p>An answer of the question.</p>
        pub fn answer(mut self, input: crate::model::Answer) -> Self {
            self.answer = Some(input);
            self
        }
        /// <p>An answer of the question.</p>
        pub fn set_answer(mut self, input: std::option::Option<crate::model::Answer>) -> Self {
            self.answer = input;
            self
        }
        /// Consumes the builder and constructs a [`GetAnswerOutput`](crate::output::GetAnswerOutput).
        pub fn build(self) -> crate::output::GetAnswerOutput {
            crate::output::GetAnswerOutput {
                workload_id: self.workload_id,
                milestone_number: self.milestone_number.unwrap_or_default(),
                lens_alias: self.lens_alias,
                lens_arn: self.lens_arn,
                answer: self.answer,
            }
        }
    }
}
impl GetAnswerOutput {
    /// Creates a new builder-style object to manufacture [`GetAnswerOutput`](crate::output::GetAnswerOutput).
    pub fn builder() -> crate::output::get_answer_output::Builder {
        crate::output::get_answer_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ExportLensOutput {
    /// <p>The JSON for the lens.</p>
    #[doc(hidden)]
    pub lens_json: std::option::Option<std::string::String>,
}
impl ExportLensOutput {
    /// <p>The JSON for the lens.</p>
    pub fn lens_json(&self) -> std::option::Option<&str> {
        self.lens_json.as_deref()
    }
}
/// See [`ExportLensOutput`](crate::output::ExportLensOutput).
pub mod export_lens_output {

    /// A builder for [`ExportLensOutput`](crate::output::ExportLensOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) lens_json: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The JSON for the lens.</p>
        pub fn lens_json(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_json = Some(input.into());
            self
        }
        /// <p>The JSON for the lens.</p>
        pub fn set_lens_json(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_json = input;
            self
        }
        /// Consumes the builder and constructs a [`ExportLensOutput`](crate::output::ExportLensOutput).
        pub fn build(self) -> crate::output::ExportLensOutput {
            crate::output::ExportLensOutput {
                lens_json: self.lens_json,
            }
        }
    }
}
impl ExportLensOutput {
    /// Creates a new builder-style object to manufacture [`ExportLensOutput`](crate::output::ExportLensOutput).
    pub fn builder() -> crate::output::export_lens_output::Builder {
        crate::output::export_lens_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DisassociateLensesOutput {}
/// See [`DisassociateLensesOutput`](crate::output::DisassociateLensesOutput).
pub mod disassociate_lenses_output {

    /// A builder for [`DisassociateLensesOutput`](crate::output::DisassociateLensesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DisassociateLensesOutput`](crate::output::DisassociateLensesOutput).
        pub fn build(self) -> crate::output::DisassociateLensesOutput {
            crate::output::DisassociateLensesOutput {}
        }
    }
}
impl DisassociateLensesOutput {
    /// Creates a new builder-style object to manufacture [`DisassociateLensesOutput`](crate::output::DisassociateLensesOutput).
    pub fn builder() -> crate::output::disassociate_lenses_output::Builder {
        crate::output::disassociate_lenses_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteWorkloadShareOutput {}
/// See [`DeleteWorkloadShareOutput`](crate::output::DeleteWorkloadShareOutput).
pub mod delete_workload_share_output {

    /// A builder for [`DeleteWorkloadShareOutput`](crate::output::DeleteWorkloadShareOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeleteWorkloadShareOutput`](crate::output::DeleteWorkloadShareOutput).
        pub fn build(self) -> crate::output::DeleteWorkloadShareOutput {
            crate::output::DeleteWorkloadShareOutput {}
        }
    }
}
impl DeleteWorkloadShareOutput {
    /// Creates a new builder-style object to manufacture [`DeleteWorkloadShareOutput`](crate::output::DeleteWorkloadShareOutput).
    pub fn builder() -> crate::output::delete_workload_share_output::Builder {
        crate::output::delete_workload_share_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteWorkloadOutput {}
/// See [`DeleteWorkloadOutput`](crate::output::DeleteWorkloadOutput).
pub mod delete_workload_output {

    /// A builder for [`DeleteWorkloadOutput`](crate::output::DeleteWorkloadOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeleteWorkloadOutput`](crate::output::DeleteWorkloadOutput).
        pub fn build(self) -> crate::output::DeleteWorkloadOutput {
            crate::output::DeleteWorkloadOutput {}
        }
    }
}
impl DeleteWorkloadOutput {
    /// Creates a new builder-style object to manufacture [`DeleteWorkloadOutput`](crate::output::DeleteWorkloadOutput).
    pub fn builder() -> crate::output::delete_workload_output::Builder {
        crate::output::delete_workload_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteLensShareOutput {}
/// See [`DeleteLensShareOutput`](crate::output::DeleteLensShareOutput).
pub mod delete_lens_share_output {

    /// A builder for [`DeleteLensShareOutput`](crate::output::DeleteLensShareOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeleteLensShareOutput`](crate::output::DeleteLensShareOutput).
        pub fn build(self) -> crate::output::DeleteLensShareOutput {
            crate::output::DeleteLensShareOutput {}
        }
    }
}
impl DeleteLensShareOutput {
    /// Creates a new builder-style object to manufacture [`DeleteLensShareOutput`](crate::output::DeleteLensShareOutput).
    pub fn builder() -> crate::output::delete_lens_share_output::Builder {
        crate::output::delete_lens_share_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteLensOutput {}
/// See [`DeleteLensOutput`](crate::output::DeleteLensOutput).
pub mod delete_lens_output {

    /// A builder for [`DeleteLensOutput`](crate::output::DeleteLensOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeleteLensOutput`](crate::output::DeleteLensOutput).
        pub fn build(self) -> crate::output::DeleteLensOutput {
            crate::output::DeleteLensOutput {}
        }
    }
}
impl DeleteLensOutput {
    /// Creates a new builder-style object to manufacture [`DeleteLensOutput`](crate::output::DeleteLensOutput).
    pub fn builder() -> crate::output::delete_lens_output::Builder {
        crate::output::delete_lens_output::Builder::default()
    }
}

/// <p>Input for Create Workload Share</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateWorkloadShareOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>The ID associated with the workload share.</p>
    #[doc(hidden)]
    pub share_id: std::option::Option<std::string::String>,
}
impl CreateWorkloadShareOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>The ID associated with the workload share.</p>
    pub fn share_id(&self) -> std::option::Option<&str> {
        self.share_id.as_deref()
    }
}
/// See [`CreateWorkloadShareOutput`](crate::output::CreateWorkloadShareOutput).
pub mod create_workload_share_output {

    /// A builder for [`CreateWorkloadShareOutput`](crate::output::CreateWorkloadShareOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) share_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>The ID associated with the workload share.</p>
        pub fn share_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.share_id = Some(input.into());
            self
        }
        /// <p>The ID associated with the workload share.</p>
        pub fn set_share_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.share_id = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateWorkloadShareOutput`](crate::output::CreateWorkloadShareOutput).
        pub fn build(self) -> crate::output::CreateWorkloadShareOutput {
            crate::output::CreateWorkloadShareOutput {
                workload_id: self.workload_id,
                share_id: self.share_id,
            }
        }
    }
}
impl CreateWorkloadShareOutput {
    /// Creates a new builder-style object to manufacture [`CreateWorkloadShareOutput`](crate::output::CreateWorkloadShareOutput).
    pub fn builder() -> crate::output::create_workload_share_output::Builder {
        crate::output::create_workload_share_output::Builder::default()
    }
}

/// <p>Output of a create workload call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateWorkloadOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>The ARN for the workload.</p>
    #[doc(hidden)]
    pub workload_arn: std::option::Option<std::string::String>,
}
impl CreateWorkloadOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>The ARN for the workload.</p>
    pub fn workload_arn(&self) -> std::option::Option<&str> {
        self.workload_arn.as_deref()
    }
}
/// See [`CreateWorkloadOutput`](crate::output::CreateWorkloadOutput).
pub mod create_workload_output {

    /// A builder for [`CreateWorkloadOutput`](crate::output::CreateWorkloadOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) workload_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>The ARN for the workload.</p>
        pub fn workload_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_arn = Some(input.into());
            self
        }
        /// <p>The ARN for the workload.</p>
        pub fn set_workload_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateWorkloadOutput`](crate::output::CreateWorkloadOutput).
        pub fn build(self) -> crate::output::CreateWorkloadOutput {
            crate::output::CreateWorkloadOutput {
                workload_id: self.workload_id,
                workload_arn: self.workload_arn,
            }
        }
    }
}
impl CreateWorkloadOutput {
    /// Creates a new builder-style object to manufacture [`CreateWorkloadOutput`](crate::output::CreateWorkloadOutput).
    pub fn builder() -> crate::output::create_workload_output::Builder {
        crate::output::create_workload_output::Builder::default()
    }
}

/// <p>Output of a create milestone call.</p>
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateMilestoneOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    #[doc(hidden)]
    pub workload_id: std::option::Option<std::string::String>,
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    #[doc(hidden)]
    pub milestone_number: i32,
}
impl CreateMilestoneOutput {
    /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
    pub fn workload_id(&self) -> std::option::Option<&str> {
        self.workload_id.as_deref()
    }
    /// <p>The milestone number.</p>
    /// <p>A workload can have a maximum of 100 milestones.</p>
    pub fn milestone_number(&self) -> i32 {
        self.milestone_number
    }
}
/// See [`CreateMilestoneOutput`](crate::output::CreateMilestoneOutput).
pub mod create_milestone_output {

    /// A builder for [`CreateMilestoneOutput`](crate::output::CreateMilestoneOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workload_id: std::option::Option<std::string::String>,
        pub(crate) milestone_number: std::option::Option<i32>,
    }
    impl Builder {
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn workload_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.workload_id = Some(input.into());
            self
        }
        /// <p>The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.</p>
        pub fn set_workload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workload_id = input;
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn milestone_number(mut self, input: i32) -> Self {
            self.milestone_number = Some(input);
            self
        }
        /// <p>The milestone number.</p>
        /// <p>A workload can have a maximum of 100 milestones.</p>
        pub fn set_milestone_number(mut self, input: std::option::Option<i32>) -> Self {
            self.milestone_number = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateMilestoneOutput`](crate::output::CreateMilestoneOutput).
        pub fn build(self) -> crate::output::CreateMilestoneOutput {
            crate::output::CreateMilestoneOutput {
                workload_id: self.workload_id,
                milestone_number: self.milestone_number.unwrap_or_default(),
            }
        }
    }
}
impl CreateMilestoneOutput {
    /// Creates a new builder-style object to manufacture [`CreateMilestoneOutput`](crate::output::CreateMilestoneOutput).
    pub fn builder() -> crate::output::create_milestone_output::Builder {
        crate::output::create_milestone_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateLensVersionOutput {
    /// <p>The ARN for the lens.</p>
    #[doc(hidden)]
    pub lens_arn: std::option::Option<std::string::String>,
    /// <p>The version of the lens.</p>
    #[doc(hidden)]
    pub lens_version: std::option::Option<std::string::String>,
}
impl CreateLensVersionOutput {
    /// <p>The ARN for the lens.</p>
    pub fn lens_arn(&self) -> std::option::Option<&str> {
        self.lens_arn.as_deref()
    }
    /// <p>The version of the lens.</p>
    pub fn lens_version(&self) -> std::option::Option<&str> {
        self.lens_version.as_deref()
    }
}
/// See [`CreateLensVersionOutput`](crate::output::CreateLensVersionOutput).
pub mod create_lens_version_output {

    /// A builder for [`CreateLensVersionOutput`](crate::output::CreateLensVersionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) lens_arn: std::option::Option<std::string::String>,
        pub(crate) lens_version: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ARN for the lens.</p>
        pub fn lens_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_arn = Some(input.into());
            self
        }
        /// <p>The ARN for the lens.</p>
        pub fn set_lens_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_arn = input;
            self
        }
        /// <p>The version of the lens.</p>
        pub fn lens_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.lens_version = Some(input.into());
            self
        }
        /// <p>The version of the lens.</p>
        pub fn set_lens_version(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.lens_version = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateLensVersionOutput`](crate::output::CreateLensVersionOutput).
        pub fn build(self) -> crate::output::CreateLensVersionOutput {
            crate::output::CreateLensVersionOutput {
                lens_arn: self.lens_arn,
                lens_version: self.lens_version,
            }
        }
    }
}
impl CreateLensVersionOutput {
    /// Creates a new builder-style object to manufacture [`CreateLensVersionOutput`](crate::output::CreateLensVersionOutput).
    pub fn builder() -> crate::output::create_lens_version_output::Builder {
        crate::output::create_lens_version_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateLensShareOutput {
    /// <p>The ID associated with the workload share.</p>
    #[doc(hidden)]
    pub share_id: std::option::Option<std::string::String>,
}
impl CreateLensShareOutput {
    /// <p>The ID associated with the workload share.</p>
    pub fn share_id(&self) -> std::option::Option<&str> {
        self.share_id.as_deref()
    }
}
/// See [`CreateLensShareOutput`](crate::output::CreateLensShareOutput).
pub mod create_lens_share_output {

    /// A builder for [`CreateLensShareOutput`](crate::output::CreateLensShareOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) share_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID associated with the workload share.</p>
        pub fn share_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.share_id = Some(input.into());
            self
        }
        /// <p>The ID associated with the workload share.</p>
        pub fn set_share_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.share_id = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateLensShareOutput`](crate::output::CreateLensShareOutput).
        pub fn build(self) -> crate::output::CreateLensShareOutput {
            crate::output::CreateLensShareOutput {
                share_id: self.share_id,
            }
        }
    }
}
impl CreateLensShareOutput {
    /// Creates a new builder-style object to manufacture [`CreateLensShareOutput`](crate::output::CreateLensShareOutput).
    pub fn builder() -> crate::output::create_lens_share_output::Builder {
        crate::output::create_lens_share_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct AssociateLensesOutput {}
/// See [`AssociateLensesOutput`](crate::output::AssociateLensesOutput).
pub mod associate_lenses_output {

    /// A builder for [`AssociateLensesOutput`](crate::output::AssociateLensesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`AssociateLensesOutput`](crate::output::AssociateLensesOutput).
        pub fn build(self) -> crate::output::AssociateLensesOutput {
            crate::output::AssociateLensesOutput {}
        }
    }
}
impl AssociateLensesOutput {
    /// Creates a new builder-style object to manufacture [`AssociateLensesOutput`](crate::output::AssociateLensesOutput).
    pub fn builder() -> crate::output::associate_lenses_output::Builder {
        crate::output::associate_lenses_output::Builder::default()
    }
}