aws-sdk-connectcases 0.5.0

AWS SDK for Amazon Connect Cases
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 ListTemplatesOutput {
    /// <p>List of template summary objects.</p>
    #[doc(hidden)]
    pub templates: std::option::Option<std::vec::Vec<crate::model::TemplateSummary>>,
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListTemplatesOutput {
    /// <p>List of template summary objects.</p>
    pub fn templates(&self) -> std::option::Option<&[crate::model::TemplateSummary]> {
        self.templates.as_deref()
    }
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListTemplatesOutput`](crate::output::ListTemplatesOutput).
pub mod list_templates_output {

    /// A builder for [`ListTemplatesOutput`](crate::output::ListTemplatesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) templates: std::option::Option<std::vec::Vec<crate::model::TemplateSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `templates`.
        ///
        /// To override the contents of this collection use [`set_templates`](Self::set_templates).
        ///
        /// <p>List of template summary objects.</p>
        pub fn templates(mut self, input: crate::model::TemplateSummary) -> Self {
            let mut v = self.templates.unwrap_or_default();
            v.push(input);
            self.templates = Some(v);
            self
        }
        /// <p>List of template summary objects.</p>
        pub fn set_templates(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::TemplateSummary>>,
        ) -> Self {
            self.templates = input;
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</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 [`ListTemplatesOutput`](crate::output::ListTemplatesOutput).
        pub fn build(self) -> crate::output::ListTemplatesOutput {
            crate::output::ListTemplatesOutput {
                templates: self.templates,
                next_token: self.next_token,
            }
        }
    }
}
impl ListTemplatesOutput {
    /// Creates a new builder-style object to manufacture [`ListTemplatesOutput`](crate::output::ListTemplatesOutput).
    pub fn builder() -> crate::output::list_templates_output::Builder {
        crate::output::list_templates_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateTemplateOutput {
    /// <p>A unique identifier of a template.</p>
    #[doc(hidden)]
    pub template_id: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the newly created template.</p>
    #[doc(hidden)]
    pub template_arn: std::option::Option<std::string::String>,
}
impl CreateTemplateOutput {
    /// <p>A unique identifier of a template.</p>
    pub fn template_id(&self) -> std::option::Option<&str> {
        self.template_id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the newly created template.</p>
    pub fn template_arn(&self) -> std::option::Option<&str> {
        self.template_arn.as_deref()
    }
}
/// See [`CreateTemplateOutput`](crate::output::CreateTemplateOutput).
pub mod create_template_output {

    /// A builder for [`CreateTemplateOutput`](crate::output::CreateTemplateOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) template_id: std::option::Option<std::string::String>,
        pub(crate) template_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>A unique identifier of a template.</p>
        pub fn template_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.template_id = Some(input.into());
            self
        }
        /// <p>A unique identifier of a template.</p>
        pub fn set_template_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.template_id = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the newly created template.</p>
        pub fn template_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.template_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the newly created template.</p>
        pub fn set_template_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.template_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateTemplateOutput`](crate::output::CreateTemplateOutput).
        pub fn build(self) -> crate::output::CreateTemplateOutput {
            crate::output::CreateTemplateOutput {
                template_id: self.template_id,
                template_arn: self.template_arn,
            }
        }
    }
}
impl CreateTemplateOutput {
    /// Creates a new builder-style object to manufacture [`CreateTemplateOutput`](crate::output::CreateTemplateOutput).
    pub fn builder() -> crate::output::create_template_output::Builder {
        crate::output::create_template_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetTemplateOutput {
    /// <p>A unique identifier of a template.</p>
    #[doc(hidden)]
    pub template_id: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the template.</p>
    #[doc(hidden)]
    pub template_arn: std::option::Option<std::string::String>,
    /// <p>The name of the template.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p>A brief description of the template.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>Configuration of layouts associated to the template.</p>
    #[doc(hidden)]
    pub layout_configuration: std::option::Option<crate::model::LayoutConfiguration>,
    /// <p>A list of fields that must contain a value for a case to be successfully created with this template.</p>
    #[doc(hidden)]
    pub required_fields: std::option::Option<std::vec::Vec<crate::model::RequiredField>>,
    /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
    #[doc(hidden)]
    pub tags: std::option::Option<
        std::collections::HashMap<std::string::String, std::option::Option<std::string::String>>,
    >,
    /// <p>The status of the template.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::TemplateStatus>,
}
impl GetTemplateOutput {
    /// <p>A unique identifier of a template.</p>
    pub fn template_id(&self) -> std::option::Option<&str> {
        self.template_id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the template.</p>
    pub fn template_arn(&self) -> std::option::Option<&str> {
        self.template_arn.as_deref()
    }
    /// <p>The name of the template.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p>A brief description of the template.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>Configuration of layouts associated to the template.</p>
    pub fn layout_configuration(&self) -> std::option::Option<&crate::model::LayoutConfiguration> {
        self.layout_configuration.as_ref()
    }
    /// <p>A list of fields that must contain a value for a case to be successfully created with this template.</p>
    pub fn required_fields(&self) -> std::option::Option<&[crate::model::RequiredField]> {
        self.required_fields.as_deref()
    }
    /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
    pub fn tags(
        &self,
    ) -> std::option::Option<
        &std::collections::HashMap<std::string::String, std::option::Option<std::string::String>>,
    > {
        self.tags.as_ref()
    }
    /// <p>The status of the template.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::TemplateStatus> {
        self.status.as_ref()
    }
}
/// See [`GetTemplateOutput`](crate::output::GetTemplateOutput).
pub mod get_template_output {

    /// A builder for [`GetTemplateOutput`](crate::output::GetTemplateOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) template_id: std::option::Option<std::string::String>,
        pub(crate) template_arn: std::option::Option<std::string::String>,
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) layout_configuration: std::option::Option<crate::model::LayoutConfiguration>,
        pub(crate) required_fields: std::option::Option<std::vec::Vec<crate::model::RequiredField>>,
        pub(crate) tags: std::option::Option<
            std::collections::HashMap<
                std::string::String,
                std::option::Option<std::string::String>,
            >,
        >,
        pub(crate) status: std::option::Option<crate::model::TemplateStatus>,
    }
    impl Builder {
        /// <p>A unique identifier of a template.</p>
        pub fn template_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.template_id = Some(input.into());
            self
        }
        /// <p>A unique identifier of a template.</p>
        pub fn set_template_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.template_id = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the template.</p>
        pub fn template_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.template_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the template.</p>
        pub fn set_template_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.template_arn = input;
            self
        }
        /// <p>The name of the template.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p>The name of the template.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p>A brief description of the template.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>A brief description of the template.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>Configuration of layouts associated to the template.</p>
        pub fn layout_configuration(mut self, input: crate::model::LayoutConfiguration) -> Self {
            self.layout_configuration = Some(input);
            self
        }
        /// <p>Configuration of layouts associated to the template.</p>
        pub fn set_layout_configuration(
            mut self,
            input: std::option::Option<crate::model::LayoutConfiguration>,
        ) -> Self {
            self.layout_configuration = input;
            self
        }
        /// Appends an item to `required_fields`.
        ///
        /// To override the contents of this collection use [`set_required_fields`](Self::set_required_fields).
        ///
        /// <p>A list of fields that must contain a value for a case to be successfully created with this template.</p>
        pub fn required_fields(mut self, input: crate::model::RequiredField) -> Self {
            let mut v = self.required_fields.unwrap_or_default();
            v.push(input);
            self.required_fields = Some(v);
            self
        }
        /// <p>A list of fields that must contain a value for a case to be successfully created with this template.</p>
        pub fn set_required_fields(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::RequiredField>>,
        ) -> Self {
            self.required_fields = input;
            self
        }
        /// Adds a key-value pair to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: std::option::Option<std::string::String>,
        ) -> Self {
            let mut hash_map = self.tags.unwrap_or_default();
            hash_map.insert(k.into(), v);
            self.tags = Some(hash_map);
            self
        }
        /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<
                    std::string::String,
                    std::option::Option<std::string::String>,
                >,
            >,
        ) -> Self {
            self.tags = input;
            self
        }
        /// <p>The status of the template.</p>
        pub fn status(mut self, input: crate::model::TemplateStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The status of the template.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::TemplateStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// Consumes the builder and constructs a [`GetTemplateOutput`](crate::output::GetTemplateOutput).
        pub fn build(self) -> crate::output::GetTemplateOutput {
            crate::output::GetTemplateOutput {
                template_id: self.template_id,
                template_arn: self.template_arn,
                name: self.name,
                description: self.description,
                layout_configuration: self.layout_configuration,
                required_fields: self.required_fields,
                tags: self.tags,
                status: self.status,
            }
        }
    }
}
impl GetTemplateOutput {
    /// Creates a new builder-style object to manufacture [`GetTemplateOutput`](crate::output::GetTemplateOutput).
    pub fn builder() -> crate::output::get_template_output::Builder {
        crate::output::get_template_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListLayoutsOutput {
    /// <p>The layouts for the domain.</p>
    #[doc(hidden)]
    pub layouts: std::option::Option<std::vec::Vec<crate::model::LayoutSummary>>,
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListLayoutsOutput {
    /// <p>The layouts for the domain.</p>
    pub fn layouts(&self) -> std::option::Option<&[crate::model::LayoutSummary]> {
        self.layouts.as_deref()
    }
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListLayoutsOutput`](crate::output::ListLayoutsOutput).
pub mod list_layouts_output {

    /// A builder for [`ListLayoutsOutput`](crate::output::ListLayoutsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) layouts: std::option::Option<std::vec::Vec<crate::model::LayoutSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `layouts`.
        ///
        /// To override the contents of this collection use [`set_layouts`](Self::set_layouts).
        ///
        /// <p>The layouts for the domain.</p>
        pub fn layouts(mut self, input: crate::model::LayoutSummary) -> Self {
            let mut v = self.layouts.unwrap_or_default();
            v.push(input);
            self.layouts = Some(v);
            self
        }
        /// <p>The layouts for the domain.</p>
        pub fn set_layouts(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::LayoutSummary>>,
        ) -> Self {
            self.layouts = input;
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</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 [`ListLayoutsOutput`](crate::output::ListLayoutsOutput).
        pub fn build(self) -> crate::output::ListLayoutsOutput {
            crate::output::ListLayoutsOutput {
                layouts: self.layouts,
                next_token: self.next_token,
            }
        }
    }
}
impl ListLayoutsOutput {
    /// Creates a new builder-style object to manufacture [`ListLayoutsOutput`](crate::output::ListLayoutsOutput).
    pub fn builder() -> crate::output::list_layouts_output::Builder {
        crate::output::list_layouts_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateLayoutOutput {
    /// <p>The unique identifier of the layout.</p>
    #[doc(hidden)]
    pub layout_id: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the newly created layout.</p>
    #[doc(hidden)]
    pub layout_arn: std::option::Option<std::string::String>,
}
impl CreateLayoutOutput {
    /// <p>The unique identifier of the layout.</p>
    pub fn layout_id(&self) -> std::option::Option<&str> {
        self.layout_id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the newly created layout.</p>
    pub fn layout_arn(&self) -> std::option::Option<&str> {
        self.layout_arn.as_deref()
    }
}
/// See [`CreateLayoutOutput`](crate::output::CreateLayoutOutput).
pub mod create_layout_output {

    /// A builder for [`CreateLayoutOutput`](crate::output::CreateLayoutOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) layout_id: std::option::Option<std::string::String>,
        pub(crate) layout_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The unique identifier of the layout.</p>
        pub fn layout_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.layout_id = Some(input.into());
            self
        }
        /// <p>The unique identifier of the layout.</p>
        pub fn set_layout_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.layout_id = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the newly created layout.</p>
        pub fn layout_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.layout_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the newly created layout.</p>
        pub fn set_layout_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.layout_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateLayoutOutput`](crate::output::CreateLayoutOutput).
        pub fn build(self) -> crate::output::CreateLayoutOutput {
            crate::output::CreateLayoutOutput {
                layout_id: self.layout_id,
                layout_arn: self.layout_arn,
            }
        }
    }
}
impl CreateLayoutOutput {
    /// Creates a new builder-style object to manufacture [`CreateLayoutOutput`](crate::output::CreateLayoutOutput).
    pub fn builder() -> crate::output::create_layout_output::Builder {
        crate::output::create_layout_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetLayoutOutput {
    /// <p>The unique identifier of the layout.</p>
    #[doc(hidden)]
    pub layout_id: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the newly created layout.</p>
    #[doc(hidden)]
    pub layout_arn: std::option::Option<std::string::String>,
    /// <p>The name of the layout. It must be unique.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p>Information about which fields will be present in the layout, the order of the fields, and read-only attribute of the field. </p>
    #[doc(hidden)]
    pub content: std::option::Option<crate::model::LayoutContent>,
    /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
    #[doc(hidden)]
    pub tags: std::option::Option<
        std::collections::HashMap<std::string::String, std::option::Option<std::string::String>>,
    >,
}
impl GetLayoutOutput {
    /// <p>The unique identifier of the layout.</p>
    pub fn layout_id(&self) -> std::option::Option<&str> {
        self.layout_id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the newly created layout.</p>
    pub fn layout_arn(&self) -> std::option::Option<&str> {
        self.layout_arn.as_deref()
    }
    /// <p>The name of the layout. It must be unique.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p>Information about which fields will be present in the layout, the order of the fields, and read-only attribute of the field. </p>
    pub fn content(&self) -> std::option::Option<&crate::model::LayoutContent> {
        self.content.as_ref()
    }
    /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
    pub fn tags(
        &self,
    ) -> std::option::Option<
        &std::collections::HashMap<std::string::String, std::option::Option<std::string::String>>,
    > {
        self.tags.as_ref()
    }
}
/// See [`GetLayoutOutput`](crate::output::GetLayoutOutput).
pub mod get_layout_output {

    /// A builder for [`GetLayoutOutput`](crate::output::GetLayoutOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) layout_id: std::option::Option<std::string::String>,
        pub(crate) layout_arn: std::option::Option<std::string::String>,
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) content: std::option::Option<crate::model::LayoutContent>,
        pub(crate) tags: std::option::Option<
            std::collections::HashMap<
                std::string::String,
                std::option::Option<std::string::String>,
            >,
        >,
    }
    impl Builder {
        /// <p>The unique identifier of the layout.</p>
        pub fn layout_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.layout_id = Some(input.into());
            self
        }
        /// <p>The unique identifier of the layout.</p>
        pub fn set_layout_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.layout_id = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the newly created layout.</p>
        pub fn layout_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.layout_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the newly created layout.</p>
        pub fn set_layout_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.layout_arn = input;
            self
        }
        /// <p>The name of the layout. It must be unique.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p>The name of the layout. It must be unique.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p>Information about which fields will be present in the layout, the order of the fields, and read-only attribute of the field. </p>
        pub fn content(mut self, input: crate::model::LayoutContent) -> Self {
            self.content = Some(input);
            self
        }
        /// <p>Information about which fields will be present in the layout, the order of the fields, and read-only attribute of the field. </p>
        pub fn set_content(
            mut self,
            input: std::option::Option<crate::model::LayoutContent>,
        ) -> Self {
            self.content = input;
            self
        }
        /// Adds a key-value pair to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: std::option::Option<std::string::String>,
        ) -> Self {
            let mut hash_map = self.tags.unwrap_or_default();
            hash_map.insert(k.into(), v);
            self.tags = Some(hash_map);
            self
        }
        /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<
                    std::string::String,
                    std::option::Option<std::string::String>,
                >,
            >,
        ) -> Self {
            self.tags = input;
            self
        }
        /// Consumes the builder and constructs a [`GetLayoutOutput`](crate::output::GetLayoutOutput).
        pub fn build(self) -> crate::output::GetLayoutOutput {
            crate::output::GetLayoutOutput {
                layout_id: self.layout_id,
                layout_arn: self.layout_arn,
                name: self.name,
                content: self.content,
                tags: self.tags,
            }
        }
    }
}
impl GetLayoutOutput {
    /// Creates a new builder-style object to manufacture [`GetLayoutOutput`](crate::output::GetLayoutOutput).
    pub fn builder() -> crate::output::get_layout_output::Builder {
        crate::output::get_layout_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListFieldOptionsOutput {
    /// <p>A list of <code>FieldOption</code> objects.</p>
    #[doc(hidden)]
    pub options: std::option::Option<std::vec::Vec<crate::model::FieldOption>>,
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListFieldOptionsOutput {
    /// <p>A list of <code>FieldOption</code> objects.</p>
    pub fn options(&self) -> std::option::Option<&[crate::model::FieldOption]> {
        self.options.as_deref()
    }
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListFieldOptionsOutput`](crate::output::ListFieldOptionsOutput).
pub mod list_field_options_output {

    /// A builder for [`ListFieldOptionsOutput`](crate::output::ListFieldOptionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) options: std::option::Option<std::vec::Vec<crate::model::FieldOption>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `options`.
        ///
        /// To override the contents of this collection use [`set_options`](Self::set_options).
        ///
        /// <p>A list of <code>FieldOption</code> objects.</p>
        pub fn options(mut self, input: crate::model::FieldOption) -> Self {
            let mut v = self.options.unwrap_or_default();
            v.push(input);
            self.options = Some(v);
            self
        }
        /// <p>A list of <code>FieldOption</code> objects.</p>
        pub fn set_options(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::FieldOption>>,
        ) -> Self {
            self.options = input;
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</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 [`ListFieldOptionsOutput`](crate::output::ListFieldOptionsOutput).
        pub fn build(self) -> crate::output::ListFieldOptionsOutput {
            crate::output::ListFieldOptionsOutput {
                options: self.options,
                next_token: self.next_token,
            }
        }
    }
}
impl ListFieldOptionsOutput {
    /// Creates a new builder-style object to manufacture [`ListFieldOptionsOutput`](crate::output::ListFieldOptionsOutput).
    pub fn builder() -> crate::output::list_field_options_output::Builder {
        crate::output::list_field_options_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct BatchPutFieldOptionsOutput {
    /// <p>A list of field errors. </p>
    #[doc(hidden)]
    pub errors: std::option::Option<std::vec::Vec<crate::model::FieldOptionError>>,
}
impl BatchPutFieldOptionsOutput {
    /// <p>A list of field errors. </p>
    pub fn errors(&self) -> std::option::Option<&[crate::model::FieldOptionError]> {
        self.errors.as_deref()
    }
}
/// See [`BatchPutFieldOptionsOutput`](crate::output::BatchPutFieldOptionsOutput).
pub mod batch_put_field_options_output {

    /// A builder for [`BatchPutFieldOptionsOutput`](crate::output::BatchPutFieldOptionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) errors: std::option::Option<std::vec::Vec<crate::model::FieldOptionError>>,
    }
    impl Builder {
        /// Appends an item to `errors`.
        ///
        /// To override the contents of this collection use [`set_errors`](Self::set_errors).
        ///
        /// <p>A list of field errors. </p>
        pub fn errors(mut self, input: crate::model::FieldOptionError) -> Self {
            let mut v = self.errors.unwrap_or_default();
            v.push(input);
            self.errors = Some(v);
            self
        }
        /// <p>A list of field errors. </p>
        pub fn set_errors(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::FieldOptionError>>,
        ) -> Self {
            self.errors = input;
            self
        }
        /// Consumes the builder and constructs a [`BatchPutFieldOptionsOutput`](crate::output::BatchPutFieldOptionsOutput).
        pub fn build(self) -> crate::output::BatchPutFieldOptionsOutput {
            crate::output::BatchPutFieldOptionsOutput {
                errors: self.errors,
            }
        }
    }
}
impl BatchPutFieldOptionsOutput {
    /// Creates a new builder-style object to manufacture [`BatchPutFieldOptionsOutput`](crate::output::BatchPutFieldOptionsOutput).
    pub fn builder() -> crate::output::batch_put_field_options_output::Builder {
        crate::output::batch_put_field_options_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct BatchGetFieldOutput {
    /// <p>A list of detailed field information. </p>
    #[doc(hidden)]
    pub fields: std::option::Option<std::vec::Vec<crate::model::GetFieldResponse>>,
    /// <p>A list of field errors. </p>
    #[doc(hidden)]
    pub errors: std::option::Option<std::vec::Vec<crate::model::FieldError>>,
}
impl BatchGetFieldOutput {
    /// <p>A list of detailed field information. </p>
    pub fn fields(&self) -> std::option::Option<&[crate::model::GetFieldResponse]> {
        self.fields.as_deref()
    }
    /// <p>A list of field errors. </p>
    pub fn errors(&self) -> std::option::Option<&[crate::model::FieldError]> {
        self.errors.as_deref()
    }
}
/// See [`BatchGetFieldOutput`](crate::output::BatchGetFieldOutput).
pub mod batch_get_field_output {

    /// A builder for [`BatchGetFieldOutput`](crate::output::BatchGetFieldOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) fields: std::option::Option<std::vec::Vec<crate::model::GetFieldResponse>>,
        pub(crate) errors: std::option::Option<std::vec::Vec<crate::model::FieldError>>,
    }
    impl Builder {
        /// Appends an item to `fields`.
        ///
        /// To override the contents of this collection use [`set_fields`](Self::set_fields).
        ///
        /// <p>A list of detailed field information. </p>
        pub fn fields(mut self, input: crate::model::GetFieldResponse) -> Self {
            let mut v = self.fields.unwrap_or_default();
            v.push(input);
            self.fields = Some(v);
            self
        }
        /// <p>A list of detailed field information. </p>
        pub fn set_fields(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::GetFieldResponse>>,
        ) -> Self {
            self.fields = input;
            self
        }
        /// Appends an item to `errors`.
        ///
        /// To override the contents of this collection use [`set_errors`](Self::set_errors).
        ///
        /// <p>A list of field errors. </p>
        pub fn errors(mut self, input: crate::model::FieldError) -> Self {
            let mut v = self.errors.unwrap_or_default();
            v.push(input);
            self.errors = Some(v);
            self
        }
        /// <p>A list of field errors. </p>
        pub fn set_errors(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::FieldError>>,
        ) -> Self {
            self.errors = input;
            self
        }
        /// Consumes the builder and constructs a [`BatchGetFieldOutput`](crate::output::BatchGetFieldOutput).
        pub fn build(self) -> crate::output::BatchGetFieldOutput {
            crate::output::BatchGetFieldOutput {
                fields: self.fields,
                errors: self.errors,
            }
        }
    }
}
impl BatchGetFieldOutput {
    /// Creates a new builder-style object to manufacture [`BatchGetFieldOutput`](crate::output::BatchGetFieldOutput).
    pub fn builder() -> crate::output::batch_get_field_output::Builder {
        crate::output::batch_get_field_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListFieldsOutput {
    /// <p>List of detailed field information.</p>
    #[doc(hidden)]
    pub fields: std::option::Option<std::vec::Vec<crate::model::FieldSummary>>,
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListFieldsOutput {
    /// <p>List of detailed field information.</p>
    pub fn fields(&self) -> std::option::Option<&[crate::model::FieldSummary]> {
        self.fields.as_deref()
    }
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListFieldsOutput`](crate::output::ListFieldsOutput).
pub mod list_fields_output {

    /// A builder for [`ListFieldsOutput`](crate::output::ListFieldsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) fields: std::option::Option<std::vec::Vec<crate::model::FieldSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `fields`.
        ///
        /// To override the contents of this collection use [`set_fields`](Self::set_fields).
        ///
        /// <p>List of detailed field information.</p>
        pub fn fields(mut self, input: crate::model::FieldSummary) -> Self {
            let mut v = self.fields.unwrap_or_default();
            v.push(input);
            self.fields = Some(v);
            self
        }
        /// <p>List of detailed field information.</p>
        pub fn set_fields(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::FieldSummary>>,
        ) -> Self {
            self.fields = input;
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</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 [`ListFieldsOutput`](crate::output::ListFieldsOutput).
        pub fn build(self) -> crate::output::ListFieldsOutput {
            crate::output::ListFieldsOutput {
                fields: self.fields,
                next_token: self.next_token,
            }
        }
    }
}
impl ListFieldsOutput {
    /// Creates a new builder-style object to manufacture [`ListFieldsOutput`](crate::output::ListFieldsOutput).
    pub fn builder() -> crate::output::list_fields_output::Builder {
        crate::output::list_fields_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateFieldOutput {
    /// <p>The unique identifier of a field.</p>
    #[doc(hidden)]
    pub field_id: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the field.</p>
    #[doc(hidden)]
    pub field_arn: std::option::Option<std::string::String>,
}
impl CreateFieldOutput {
    /// <p>The unique identifier of a field.</p>
    pub fn field_id(&self) -> std::option::Option<&str> {
        self.field_id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the field.</p>
    pub fn field_arn(&self) -> std::option::Option<&str> {
        self.field_arn.as_deref()
    }
}
/// See [`CreateFieldOutput`](crate::output::CreateFieldOutput).
pub mod create_field_output {

    /// A builder for [`CreateFieldOutput`](crate::output::CreateFieldOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) field_id: std::option::Option<std::string::String>,
        pub(crate) field_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The unique identifier of a field.</p>
        pub fn field_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.field_id = Some(input.into());
            self
        }
        /// <p>The unique identifier of a field.</p>
        pub fn set_field_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.field_id = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the field.</p>
        pub fn field_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.field_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the field.</p>
        pub fn set_field_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.field_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateFieldOutput`](crate::output::CreateFieldOutput).
        pub fn build(self) -> crate::output::CreateFieldOutput {
            crate::output::CreateFieldOutput {
                field_id: self.field_id,
                field_arn: self.field_arn,
            }
        }
    }
}
impl CreateFieldOutput {
    /// Creates a new builder-style object to manufacture [`CreateFieldOutput`](crate::output::CreateFieldOutput).
    pub fn builder() -> crate::output::create_field_output::Builder {
        crate::output::create_field_output::Builder::default()
    }
}

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetCaseEventConfigurationOutput {
    /// <p>Configuration to enable EventBridge case event delivery and determine what data is delivered.</p>
    #[doc(hidden)]
    pub event_bridge: std::option::Option<crate::model::EventBridgeConfiguration>,
}
impl GetCaseEventConfigurationOutput {
    /// <p>Configuration to enable EventBridge case event delivery and determine what data is delivered.</p>
    pub fn event_bridge(&self) -> std::option::Option<&crate::model::EventBridgeConfiguration> {
        self.event_bridge.as_ref()
    }
}
/// See [`GetCaseEventConfigurationOutput`](crate::output::GetCaseEventConfigurationOutput).
pub mod get_case_event_configuration_output {

    /// A builder for [`GetCaseEventConfigurationOutput`](crate::output::GetCaseEventConfigurationOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) event_bridge: std::option::Option<crate::model::EventBridgeConfiguration>,
    }
    impl Builder {
        /// <p>Configuration to enable EventBridge case event delivery and determine what data is delivered.</p>
        pub fn event_bridge(mut self, input: crate::model::EventBridgeConfiguration) -> Self {
            self.event_bridge = Some(input);
            self
        }
        /// <p>Configuration to enable EventBridge case event delivery and determine what data is delivered.</p>
        pub fn set_event_bridge(
            mut self,
            input: std::option::Option<crate::model::EventBridgeConfiguration>,
        ) -> Self {
            self.event_bridge = input;
            self
        }
        /// Consumes the builder and constructs a [`GetCaseEventConfigurationOutput`](crate::output::GetCaseEventConfigurationOutput).
        pub fn build(self) -> crate::output::GetCaseEventConfigurationOutput {
            crate::output::GetCaseEventConfigurationOutput {
                event_bridge: self.event_bridge,
            }
        }
    }
}
impl GetCaseEventConfigurationOutput {
    /// Creates a new builder-style object to manufacture [`GetCaseEventConfigurationOutput`](crate::output::GetCaseEventConfigurationOutput).
    pub fn builder() -> crate::output::get_case_event_configuration_output::Builder {
        crate::output::get_case_event_configuration_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListDomainsOutput {
    /// <p>The Cases domain.</p>
    #[doc(hidden)]
    pub domains: std::option::Option<std::vec::Vec<crate::model::DomainSummary>>,
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListDomainsOutput {
    /// <p>The Cases domain.</p>
    pub fn domains(&self) -> std::option::Option<&[crate::model::DomainSummary]> {
        self.domains.as_deref()
    }
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListDomainsOutput`](crate::output::ListDomainsOutput).
pub mod list_domains_output {

    /// A builder for [`ListDomainsOutput`](crate::output::ListDomainsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) domains: std::option::Option<std::vec::Vec<crate::model::DomainSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `domains`.
        ///
        /// To override the contents of this collection use [`set_domains`](Self::set_domains).
        ///
        /// <p>The Cases domain.</p>
        pub fn domains(mut self, input: crate::model::DomainSummary) -> Self {
            let mut v = self.domains.unwrap_or_default();
            v.push(input);
            self.domains = Some(v);
            self
        }
        /// <p>The Cases domain.</p>
        pub fn set_domains(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::DomainSummary>>,
        ) -> Self {
            self.domains = input;
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</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 [`ListDomainsOutput`](crate::output::ListDomainsOutput).
        pub fn build(self) -> crate::output::ListDomainsOutput {
            crate::output::ListDomainsOutput {
                domains: self.domains,
                next_token: self.next_token,
            }
        }
    }
}
impl ListDomainsOutput {
    /// Creates a new builder-style object to manufacture [`ListDomainsOutput`](crate::output::ListDomainsOutput).
    pub fn builder() -> crate::output::list_domains_output::Builder {
        crate::output::list_domains_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateDomainOutput {
    /// <p>The unique identifier of the Cases domain. </p>
    #[doc(hidden)]
    pub domain_id: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) for the Cases domain.</p>
    #[doc(hidden)]
    pub domain_arn: std::option::Option<std::string::String>,
    /// <p>The status of the domain.</p>
    #[doc(hidden)]
    pub domain_status: std::option::Option<crate::model::DomainStatus>,
}
impl CreateDomainOutput {
    /// <p>The unique identifier of the Cases domain. </p>
    pub fn domain_id(&self) -> std::option::Option<&str> {
        self.domain_id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) for the Cases domain.</p>
    pub fn domain_arn(&self) -> std::option::Option<&str> {
        self.domain_arn.as_deref()
    }
    /// <p>The status of the domain.</p>
    pub fn domain_status(&self) -> std::option::Option<&crate::model::DomainStatus> {
        self.domain_status.as_ref()
    }
}
/// See [`CreateDomainOutput`](crate::output::CreateDomainOutput).
pub mod create_domain_output {

    /// A builder for [`CreateDomainOutput`](crate::output::CreateDomainOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) domain_id: std::option::Option<std::string::String>,
        pub(crate) domain_arn: std::option::Option<std::string::String>,
        pub(crate) domain_status: std::option::Option<crate::model::DomainStatus>,
    }
    impl Builder {
        /// <p>The unique identifier of the Cases domain. </p>
        pub fn domain_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_id = Some(input.into());
            self
        }
        /// <p>The unique identifier of the Cases domain. </p>
        pub fn set_domain_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_id = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) for the Cases domain.</p>
        pub fn domain_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) for the Cases domain.</p>
        pub fn set_domain_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_arn = input;
            self
        }
        /// <p>The status of the domain.</p>
        pub fn domain_status(mut self, input: crate::model::DomainStatus) -> Self {
            self.domain_status = Some(input);
            self
        }
        /// <p>The status of the domain.</p>
        pub fn set_domain_status(
            mut self,
            input: std::option::Option<crate::model::DomainStatus>,
        ) -> Self {
            self.domain_status = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateDomainOutput`](crate::output::CreateDomainOutput).
        pub fn build(self) -> crate::output::CreateDomainOutput {
            crate::output::CreateDomainOutput {
                domain_id: self.domain_id,
                domain_arn: self.domain_arn,
                domain_status: self.domain_status,
            }
        }
    }
}
impl CreateDomainOutput {
    /// Creates a new builder-style object to manufacture [`CreateDomainOutput`](crate::output::CreateDomainOutput).
    pub fn builder() -> crate::output::create_domain_output::Builder {
        crate::output::create_domain_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetDomainOutput {
    /// <p>The unique identifier of the Cases domain. </p>
    #[doc(hidden)]
    pub domain_id: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) for the Cases domain.</p>
    #[doc(hidden)]
    pub domain_arn: std::option::Option<std::string::String>,
    /// <p>The name of the Cases domain.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p>The timestamp when the Cases domain was created.</p>
    #[doc(hidden)]
    pub created_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The status of the Cases domain.</p>
    #[doc(hidden)]
    pub domain_status: std::option::Option<crate::model::DomainStatus>,
    /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
    #[doc(hidden)]
    pub tags: std::option::Option<
        std::collections::HashMap<std::string::String, std::option::Option<std::string::String>>,
    >,
}
impl GetDomainOutput {
    /// <p>The unique identifier of the Cases domain. </p>
    pub fn domain_id(&self) -> std::option::Option<&str> {
        self.domain_id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) for the Cases domain.</p>
    pub fn domain_arn(&self) -> std::option::Option<&str> {
        self.domain_arn.as_deref()
    }
    /// <p>The name of the Cases domain.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p>The timestamp when the Cases domain was created.</p>
    pub fn created_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.created_time.as_ref()
    }
    /// <p>The status of the Cases domain.</p>
    pub fn domain_status(&self) -> std::option::Option<&crate::model::DomainStatus> {
        self.domain_status.as_ref()
    }
    /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
    pub fn tags(
        &self,
    ) -> std::option::Option<
        &std::collections::HashMap<std::string::String, std::option::Option<std::string::String>>,
    > {
        self.tags.as_ref()
    }
}
/// See [`GetDomainOutput`](crate::output::GetDomainOutput).
pub mod get_domain_output {

    /// A builder for [`GetDomainOutput`](crate::output::GetDomainOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) domain_id: std::option::Option<std::string::String>,
        pub(crate) domain_arn: std::option::Option<std::string::String>,
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) created_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) domain_status: std::option::Option<crate::model::DomainStatus>,
        pub(crate) tags: std::option::Option<
            std::collections::HashMap<
                std::string::String,
                std::option::Option<std::string::String>,
            >,
        >,
    }
    impl Builder {
        /// <p>The unique identifier of the Cases domain. </p>
        pub fn domain_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_id = Some(input.into());
            self
        }
        /// <p>The unique identifier of the Cases domain. </p>
        pub fn set_domain_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_id = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) for the Cases domain.</p>
        pub fn domain_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) for the Cases domain.</p>
        pub fn set_domain_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_arn = input;
            self
        }
        /// <p>The name of the Cases domain.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p>The name of the Cases domain.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p>The timestamp when the Cases domain was created.</p>
        pub fn created_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.created_time = Some(input);
            self
        }
        /// <p>The timestamp when the Cases domain was created.</p>
        pub fn set_created_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.created_time = input;
            self
        }
        /// <p>The status of the Cases domain.</p>
        pub fn domain_status(mut self, input: crate::model::DomainStatus) -> Self {
            self.domain_status = Some(input);
            self
        }
        /// <p>The status of the Cases domain.</p>
        pub fn set_domain_status(
            mut self,
            input: std::option::Option<crate::model::DomainStatus>,
        ) -> Self {
            self.domain_status = input;
            self
        }
        /// Adds a key-value pair to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: std::option::Option<std::string::String>,
        ) -> Self {
            let mut hash_map = self.tags.unwrap_or_default();
            hash_map.insert(k.into(), v);
            self.tags = Some(hash_map);
            self
        }
        /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<
                    std::string::String,
                    std::option::Option<std::string::String>,
                >,
            >,
        ) -> Self {
            self.tags = input;
            self
        }
        /// Consumes the builder and constructs a [`GetDomainOutput`](crate::output::GetDomainOutput).
        pub fn build(self) -> crate::output::GetDomainOutput {
            crate::output::GetDomainOutput {
                domain_id: self.domain_id,
                domain_arn: self.domain_arn,
                name: self.name,
                created_time: self.created_time,
                domain_status: self.domain_status,
                tags: self.tags,
            }
        }
    }
}
impl GetDomainOutput {
    /// Creates a new builder-style object to manufacture [`GetDomainOutput`](crate::output::GetDomainOutput).
    pub fn builder() -> crate::output::get_domain_output::Builder {
        crate::output::get_domain_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct SearchCasesOutput {
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>A list of case documents where each case contains the properties <code>CaseId</code> and <code>Fields</code> where each field is a complex union structure. </p>
    #[doc(hidden)]
    pub cases: std::option::Option<
        std::vec::Vec<std::option::Option<crate::model::SearchCasesResponseItem>>,
    >,
}
impl SearchCasesOutput {
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>A list of case documents where each case contains the properties <code>CaseId</code> and <code>Fields</code> where each field is a complex union structure. </p>
    pub fn cases(
        &self,
    ) -> std::option::Option<&[std::option::Option<crate::model::SearchCasesResponseItem>]> {
        self.cases.as_deref()
    }
}
/// See [`SearchCasesOutput`](crate::output::SearchCasesOutput).
pub mod search_cases_output {

    /// A builder for [`SearchCasesOutput`](crate::output::SearchCasesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) next_token: std::option::Option<std::string::String>,
        pub(crate) cases: std::option::Option<
            std::vec::Vec<std::option::Option<crate::model::SearchCasesResponseItem>>,
        >,
    }
    impl Builder {
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Appends an item to `cases`.
        ///
        /// To override the contents of this collection use [`set_cases`](Self::set_cases).
        ///
        /// <p>A list of case documents where each case contains the properties <code>CaseId</code> and <code>Fields</code> where each field is a complex union structure. </p>
        pub fn cases(
            mut self,
            input: std::option::Option<crate::model::SearchCasesResponseItem>,
        ) -> Self {
            let mut v = self.cases.unwrap_or_default();
            v.push(input);
            self.cases = Some(v);
            self
        }
        /// <p>A list of case documents where each case contains the properties <code>CaseId</code> and <code>Fields</code> where each field is a complex union structure. </p>
        pub fn set_cases(
            mut self,
            input: std::option::Option<
                std::vec::Vec<std::option::Option<crate::model::SearchCasesResponseItem>>,
            >,
        ) -> Self {
            self.cases = input;
            self
        }
        /// Consumes the builder and constructs a [`SearchCasesOutput`](crate::output::SearchCasesOutput).
        pub fn build(self) -> crate::output::SearchCasesOutput {
            crate::output::SearchCasesOutput {
                next_token: self.next_token,
                cases: self.cases,
            }
        }
    }
}
impl SearchCasesOutput {
    /// Creates a new builder-style object to manufacture [`SearchCasesOutput`](crate::output::SearchCasesOutput).
    pub fn builder() -> crate::output::search_cases_output::Builder {
        crate::output::search_cases_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListCasesForContactOutput {
    /// <p>A list of Case summary information.</p>
    #[doc(hidden)]
    pub cases: std::option::Option<std::vec::Vec<crate::model::CaseSummary>>,
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListCasesForContactOutput {
    /// <p>A list of Case summary information.</p>
    pub fn cases(&self) -> std::option::Option<&[crate::model::CaseSummary]> {
        self.cases.as_deref()
    }
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListCasesForContactOutput`](crate::output::ListCasesForContactOutput).
pub mod list_cases_for_contact_output {

    /// A builder for [`ListCasesForContactOutput`](crate::output::ListCasesForContactOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) cases: std::option::Option<std::vec::Vec<crate::model::CaseSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `cases`.
        ///
        /// To override the contents of this collection use [`set_cases`](Self::set_cases).
        ///
        /// <p>A list of Case summary information.</p>
        pub fn cases(mut self, input: crate::model::CaseSummary) -> Self {
            let mut v = self.cases.unwrap_or_default();
            v.push(input);
            self.cases = Some(v);
            self
        }
        /// <p>A list of Case summary information.</p>
        pub fn set_cases(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CaseSummary>>,
        ) -> Self {
            self.cases = input;
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</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 [`ListCasesForContactOutput`](crate::output::ListCasesForContactOutput).
        pub fn build(self) -> crate::output::ListCasesForContactOutput {
            crate::output::ListCasesForContactOutput {
                cases: self.cases,
                next_token: self.next_token,
            }
        }
    }
}
impl ListCasesForContactOutput {
    /// Creates a new builder-style object to manufacture [`ListCasesForContactOutput`](crate::output::ListCasesForContactOutput).
    pub fn builder() -> crate::output::list_cases_for_contact_output::Builder {
        crate::output::list_cases_for_contact_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateCaseOutput {
    /// <p>A unique identifier of the case.</p>
    #[doc(hidden)]
    pub case_id: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the case.</p>
    #[doc(hidden)]
    pub case_arn: std::option::Option<std::string::String>,
}
impl CreateCaseOutput {
    /// <p>A unique identifier of the case.</p>
    pub fn case_id(&self) -> std::option::Option<&str> {
        self.case_id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the case.</p>
    pub fn case_arn(&self) -> std::option::Option<&str> {
        self.case_arn.as_deref()
    }
}
/// See [`CreateCaseOutput`](crate::output::CreateCaseOutput).
pub mod create_case_output {

    /// A builder for [`CreateCaseOutput`](crate::output::CreateCaseOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) case_id: std::option::Option<std::string::String>,
        pub(crate) case_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>A unique identifier of the case.</p>
        pub fn case_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.case_id = Some(input.into());
            self
        }
        /// <p>A unique identifier of the case.</p>
        pub fn set_case_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.case_id = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the case.</p>
        pub fn case_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.case_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the case.</p>
        pub fn set_case_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.case_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateCaseOutput`](crate::output::CreateCaseOutput).
        pub fn build(self) -> crate::output::CreateCaseOutput {
            crate::output::CreateCaseOutput {
                case_id: self.case_id,
                case_arn: self.case_arn,
            }
        }
    }
}
impl CreateCaseOutput {
    /// Creates a new builder-style object to manufacture [`CreateCaseOutput`](crate::output::CreateCaseOutput).
    pub fn builder() -> crate::output::create_case_output::Builder {
        crate::output::create_case_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetCaseOutput {
    /// <p>A list of detailed field information. </p>
    #[doc(hidden)]
    pub fields: std::option::Option<std::vec::Vec<crate::model::FieldValue>>,
    /// <p>A unique identifier of a template.</p>
    #[doc(hidden)]
    pub template_id: std::option::Option<std::string::String>,
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
    #[doc(hidden)]
    pub tags: std::option::Option<
        std::collections::HashMap<std::string::String, std::option::Option<std::string::String>>,
    >,
}
impl GetCaseOutput {
    /// <p>A list of detailed field information. </p>
    pub fn fields(&self) -> std::option::Option<&[crate::model::FieldValue]> {
        self.fields.as_deref()
    }
    /// <p>A unique identifier of a template.</p>
    pub fn template_id(&self) -> std::option::Option<&str> {
        self.template_id.as_deref()
    }
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
    pub fn tags(
        &self,
    ) -> std::option::Option<
        &std::collections::HashMap<std::string::String, std::option::Option<std::string::String>>,
    > {
        self.tags.as_ref()
    }
}
/// See [`GetCaseOutput`](crate::output::GetCaseOutput).
pub mod get_case_output {

    /// A builder for [`GetCaseOutput`](crate::output::GetCaseOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) fields: std::option::Option<std::vec::Vec<crate::model::FieldValue>>,
        pub(crate) template_id: std::option::Option<std::string::String>,
        pub(crate) next_token: std::option::Option<std::string::String>,
        pub(crate) tags: std::option::Option<
            std::collections::HashMap<
                std::string::String,
                std::option::Option<std::string::String>,
            >,
        >,
    }
    impl Builder {
        /// Appends an item to `fields`.
        ///
        /// To override the contents of this collection use [`set_fields`](Self::set_fields).
        ///
        /// <p>A list of detailed field information. </p>
        pub fn fields(mut self, input: crate::model::FieldValue) -> Self {
            let mut v = self.fields.unwrap_or_default();
            v.push(input);
            self.fields = Some(v);
            self
        }
        /// <p>A list of detailed field information. </p>
        pub fn set_fields(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::FieldValue>>,
        ) -> Self {
            self.fields = input;
            self
        }
        /// <p>A unique identifier of a template.</p>
        pub fn template_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.template_id = Some(input.into());
            self
        }
        /// <p>A unique identifier of a template.</p>
        pub fn set_template_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.template_id = input;
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Adds a key-value pair to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: std::option::Option<std::string::String>,
        ) -> Self {
            let mut hash_map = self.tags.unwrap_or_default();
            hash_map.insert(k.into(), v);
            self.tags = Some(hash_map);
            self
        }
        /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<
                    std::string::String,
                    std::option::Option<std::string::String>,
                >,
            >,
        ) -> Self {
            self.tags = input;
            self
        }
        /// Consumes the builder and constructs a [`GetCaseOutput`](crate::output::GetCaseOutput).
        pub fn build(self) -> crate::output::GetCaseOutput {
            crate::output::GetCaseOutput {
                fields: self.fields,
                template_id: self.template_id,
                next_token: self.next_token,
                tags: self.tags,
            }
        }
    }
}
impl GetCaseOutput {
    /// Creates a new builder-style object to manufacture [`GetCaseOutput`](crate::output::GetCaseOutput).
    pub fn builder() -> crate::output::get_case_output::Builder {
        crate::output::get_case_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct SearchRelatedItemsOutput {
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>A list of items related to a case. </p>
    #[doc(hidden)]
    pub related_items: std::option::Option<
        std::vec::Vec<std::option::Option<crate::model::SearchRelatedItemsResponseItem>>,
    >,
}
impl SearchRelatedItemsOutput {
    /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>A list of items related to a case. </p>
    pub fn related_items(
        &self,
    ) -> std::option::Option<&[std::option::Option<crate::model::SearchRelatedItemsResponseItem>]>
    {
        self.related_items.as_deref()
    }
}
/// See [`SearchRelatedItemsOutput`](crate::output::SearchRelatedItemsOutput).
pub mod search_related_items_output {

    /// A builder for [`SearchRelatedItemsOutput`](crate::output::SearchRelatedItemsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) next_token: std::option::Option<std::string::String>,
        pub(crate) related_items: std::option::Option<
            std::vec::Vec<std::option::Option<crate::model::SearchRelatedItemsResponseItem>>,
        >,
    }
    impl Builder {
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token for the next set of results. This is null if there are no more results to return.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Appends an item to `related_items`.
        ///
        /// To override the contents of this collection use [`set_related_items`](Self::set_related_items).
        ///
        /// <p>A list of items related to a case. </p>
        pub fn related_items(
            mut self,
            input: std::option::Option<crate::model::SearchRelatedItemsResponseItem>,
        ) -> Self {
            let mut v = self.related_items.unwrap_or_default();
            v.push(input);
            self.related_items = Some(v);
            self
        }
        /// <p>A list of items related to a case. </p>
        pub fn set_related_items(
            mut self,
            input: std::option::Option<
                std::vec::Vec<std::option::Option<crate::model::SearchRelatedItemsResponseItem>>,
            >,
        ) -> Self {
            self.related_items = input;
            self
        }
        /// Consumes the builder and constructs a [`SearchRelatedItemsOutput`](crate::output::SearchRelatedItemsOutput).
        pub fn build(self) -> crate::output::SearchRelatedItemsOutput {
            crate::output::SearchRelatedItemsOutput {
                next_token: self.next_token,
                related_items: self.related_items,
            }
        }
    }
}
impl SearchRelatedItemsOutput {
    /// Creates a new builder-style object to manufacture [`SearchRelatedItemsOutput`](crate::output::SearchRelatedItemsOutput).
    pub fn builder() -> crate::output::search_related_items_output::Builder {
        crate::output::search_related_items_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateRelatedItemOutput {
    /// <p>The unique identifier of the related item.</p>
    #[doc(hidden)]
    pub related_item_id: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the related item.</p>
    #[doc(hidden)]
    pub related_item_arn: std::option::Option<std::string::String>,
}
impl CreateRelatedItemOutput {
    /// <p>The unique identifier of the related item.</p>
    pub fn related_item_id(&self) -> std::option::Option<&str> {
        self.related_item_id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the related item.</p>
    pub fn related_item_arn(&self) -> std::option::Option<&str> {
        self.related_item_arn.as_deref()
    }
}
/// See [`CreateRelatedItemOutput`](crate::output::CreateRelatedItemOutput).
pub mod create_related_item_output {

    /// A builder for [`CreateRelatedItemOutput`](crate::output::CreateRelatedItemOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) related_item_id: std::option::Option<std::string::String>,
        pub(crate) related_item_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The unique identifier of the related item.</p>
        pub fn related_item_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.related_item_id = Some(input.into());
            self
        }
        /// <p>The unique identifier of the related item.</p>
        pub fn set_related_item_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.related_item_id = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the related item.</p>
        pub fn related_item_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.related_item_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the related item.</p>
        pub fn set_related_item_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.related_item_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateRelatedItemOutput`](crate::output::CreateRelatedItemOutput).
        pub fn build(self) -> crate::output::CreateRelatedItemOutput {
            crate::output::CreateRelatedItemOutput {
                related_item_id: self.related_item_id,
                related_item_arn: self.related_item_arn,
            }
        }
    }
}
impl CreateRelatedItemOutput {
    /// Creates a new builder-style object to manufacture [`CreateRelatedItemOutput`](crate::output::CreateRelatedItemOutput).
    pub fn builder() -> crate::output::create_related_item_output::Builder {
        crate::output::create_related_item_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()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListTagsForResourceOutput {
    /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
    #[doc(hidden)]
    pub tags: std::option::Option<
        std::collections::HashMap<std::string::String, std::option::Option<std::string::String>>,
    >,
}
impl ListTagsForResourceOutput {
    /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
    pub fn tags(
        &self,
    ) -> std::option::Option<
        &std::collections::HashMap<std::string::String, std::option::Option<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::option::Option<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>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: std::option::Option<std::string::String>,
        ) -> Self {
            let mut hash_map = self.tags.unwrap_or_default();
            hash_map.insert(k.into(), v);
            self.tags = Some(hash_map);
            self
        }
        /// <p>A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<
                    std::string::String,
                    std::option::Option<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()
    }
}