aws-sdk-identitystore 0.24.0

AWS SDK for AWS SSO Identity Store
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 ListUsersOutput {
    /// <p>A list of <code>User</code> objects in the identity store.</p>
    #[doc(hidden)]
    pub users: std::option::Option<std::vec::Vec<crate::model::User>>,
    /// <p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListUsersOutput {
    /// <p>A list of <code>User</code> objects in the identity store.</p>
    pub fn users(&self) -> std::option::Option<&[crate::model::User]> {
        self.users.as_deref()
    }
    /// <p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListUsersOutput`](crate::output::ListUsersOutput).
pub mod list_users_output {

    /// A builder for [`ListUsersOutput`](crate::output::ListUsersOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) users: std::option::Option<std::vec::Vec<crate::model::User>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `users`.
        ///
        /// To override the contents of this collection use [`set_users`](Self::set_users).
        ///
        /// <p>A list of <code>User</code> objects in the identity store.</p>
        pub fn users(mut self, input: crate::model::User) -> Self {
            let mut v = self.users.unwrap_or_default();
            v.push(input);
            self.users = Some(v);
            self
        }
        /// <p>A list of <code>User</code> objects in the identity store.</p>
        pub fn set_users(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::User>>,
        ) -> Self {
            self.users = input;
            self
        }
        /// <p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.</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 [`ListUsersOutput`](crate::output::ListUsersOutput).
        pub fn build(self) -> crate::output::ListUsersOutput {
            crate::output::ListUsersOutput {
                users: self.users,
                next_token: self.next_token,
            }
        }
    }
}
impl ListUsersOutput {
    /// Creates a new builder-style object to manufacture [`ListUsersOutput`](crate::output::ListUsersOutput).
    pub fn builder() -> crate::output::list_users_output::Builder {
        crate::output::list_users_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateUserOutput {
    /// <p>The identifier of the newly created user in the identity store.</p>
    #[doc(hidden)]
    pub user_id: std::option::Option<std::string::String>,
    /// <p>The globally unique identifier for the identity store.</p>
    #[doc(hidden)]
    pub identity_store_id: std::option::Option<std::string::String>,
}
impl CreateUserOutput {
    /// <p>The identifier of the newly created user in the identity store.</p>
    pub fn user_id(&self) -> std::option::Option<&str> {
        self.user_id.as_deref()
    }
    /// <p>The globally unique identifier for the identity store.</p>
    pub fn identity_store_id(&self) -> std::option::Option<&str> {
        self.identity_store_id.as_deref()
    }
}
/// See [`CreateUserOutput`](crate::output::CreateUserOutput).
pub mod create_user_output {

    /// A builder for [`CreateUserOutput`](crate::output::CreateUserOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) user_id: std::option::Option<std::string::String>,
        pub(crate) identity_store_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The identifier of the newly created user in the identity store.</p>
        pub fn user_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.user_id = Some(input.into());
            self
        }
        /// <p>The identifier of the newly created user in the identity store.</p>
        pub fn set_user_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.user_id = input;
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn identity_store_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.identity_store_id = Some(input.into());
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn set_identity_store_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.identity_store_id = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateUserOutput`](crate::output::CreateUserOutput).
        pub fn build(self) -> crate::output::CreateUserOutput {
            crate::output::CreateUserOutput {
                user_id: self.user_id,
                identity_store_id: self.identity_store_id,
            }
        }
    }
}
impl CreateUserOutput {
    /// Creates a new builder-style object to manufacture [`CreateUserOutput`](crate::output::CreateUserOutput).
    pub fn builder() -> crate::output::create_user_output::Builder {
        crate::output::create_user_output::Builder::default()
    }
}

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct DescribeUserOutput {
    /// <p>A unique string used to identify the user. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.</p>
    #[doc(hidden)]
    pub user_name: std::option::Option<std::string::String>,
    /// <p>The identifier for a user in the identity store.</p>
    #[doc(hidden)]
    pub user_id: std::option::Option<std::string::String>,
    /// <p>A list of <code>ExternalId</code> objects that contains the identifiers issued to this resource by an external identity provider.</p>
    #[doc(hidden)]
    pub external_ids: std::option::Option<std::vec::Vec<crate::model::ExternalId>>,
    /// <p>The name of the user.</p>
    #[doc(hidden)]
    pub name: std::option::Option<crate::model::Name>,
    /// <p>The user's name value for display.</p>
    #[doc(hidden)]
    pub display_name: std::option::Option<std::string::String>,
    /// <p>An alternative descriptive name for the user.</p>
    #[doc(hidden)]
    pub nick_name: std::option::Option<std::string::String>,
    /// <p>A URL link for the user's profile.</p>
    #[doc(hidden)]
    pub profile_url: std::option::Option<std::string::String>,
    /// <p>The user's email value.</p>
    #[doc(hidden)]
    pub emails: std::option::Option<std::vec::Vec<crate::model::Email>>,
    /// <p>The user's physical address.</p>
    #[doc(hidden)]
    pub addresses: std::option::Option<std::vec::Vec<crate::model::Address>>,
    /// <p>A list of <code>PhoneNumber</code> objects associated with a user.</p>
    #[doc(hidden)]
    pub phone_numbers: std::option::Option<std::vec::Vec<crate::model::PhoneNumber>>,
    /// <p>A string indicating the user's type.</p>
    #[doc(hidden)]
    pub user_type: std::option::Option<std::string::String>,
    /// <p>A string containing the user's title.</p>
    #[doc(hidden)]
    pub title: std::option::Option<std::string::String>,
    /// <p>The preferred language of the user.</p>
    #[doc(hidden)]
    pub preferred_language: std::option::Option<std::string::String>,
    /// <p>A string containing the user's geographical region or location.</p>
    #[doc(hidden)]
    pub locale: std::option::Option<std::string::String>,
    /// <p>The time zone for a user.</p>
    #[doc(hidden)]
    pub timezone: std::option::Option<std::string::String>,
    /// <p>The globally unique identifier for the identity store.</p>
    #[doc(hidden)]
    pub identity_store_id: std::option::Option<std::string::String>,
}
impl DescribeUserOutput {
    /// <p>A unique string used to identify the user. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.</p>
    pub fn user_name(&self) -> std::option::Option<&str> {
        self.user_name.as_deref()
    }
    /// <p>The identifier for a user in the identity store.</p>
    pub fn user_id(&self) -> std::option::Option<&str> {
        self.user_id.as_deref()
    }
    /// <p>A list of <code>ExternalId</code> objects that contains the identifiers issued to this resource by an external identity provider.</p>
    pub fn external_ids(&self) -> std::option::Option<&[crate::model::ExternalId]> {
        self.external_ids.as_deref()
    }
    /// <p>The name of the user.</p>
    pub fn name(&self) -> std::option::Option<&crate::model::Name> {
        self.name.as_ref()
    }
    /// <p>The user's name value for display.</p>
    pub fn display_name(&self) -> std::option::Option<&str> {
        self.display_name.as_deref()
    }
    /// <p>An alternative descriptive name for the user.</p>
    pub fn nick_name(&self) -> std::option::Option<&str> {
        self.nick_name.as_deref()
    }
    /// <p>A URL link for the user's profile.</p>
    pub fn profile_url(&self) -> std::option::Option<&str> {
        self.profile_url.as_deref()
    }
    /// <p>The user's email value.</p>
    pub fn emails(&self) -> std::option::Option<&[crate::model::Email]> {
        self.emails.as_deref()
    }
    /// <p>The user's physical address.</p>
    pub fn addresses(&self) -> std::option::Option<&[crate::model::Address]> {
        self.addresses.as_deref()
    }
    /// <p>A list of <code>PhoneNumber</code> objects associated with a user.</p>
    pub fn phone_numbers(&self) -> std::option::Option<&[crate::model::PhoneNumber]> {
        self.phone_numbers.as_deref()
    }
    /// <p>A string indicating the user's type.</p>
    pub fn user_type(&self) -> std::option::Option<&str> {
        self.user_type.as_deref()
    }
    /// <p>A string containing the user's title.</p>
    pub fn title(&self) -> std::option::Option<&str> {
        self.title.as_deref()
    }
    /// <p>The preferred language of the user.</p>
    pub fn preferred_language(&self) -> std::option::Option<&str> {
        self.preferred_language.as_deref()
    }
    /// <p>A string containing the user's geographical region or location.</p>
    pub fn locale(&self) -> std::option::Option<&str> {
        self.locale.as_deref()
    }
    /// <p>The time zone for a user.</p>
    pub fn timezone(&self) -> std::option::Option<&str> {
        self.timezone.as_deref()
    }
    /// <p>The globally unique identifier for the identity store.</p>
    pub fn identity_store_id(&self) -> std::option::Option<&str> {
        self.identity_store_id.as_deref()
    }
}
impl std::fmt::Debug for DescribeUserOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("DescribeUserOutput");
        formatter.field("user_name", &"*** Sensitive Data Redacted ***");
        formatter.field("user_id", &self.user_id);
        formatter.field("external_ids", &self.external_ids);
        formatter.field("name", &self.name);
        formatter.field("display_name", &"*** Sensitive Data Redacted ***");
        formatter.field("nick_name", &"*** Sensitive Data Redacted ***");
        formatter.field("profile_url", &"*** Sensitive Data Redacted ***");
        formatter.field("emails", &self.emails);
        formatter.field("addresses", &self.addresses);
        formatter.field("phone_numbers", &self.phone_numbers);
        formatter.field("user_type", &"*** Sensitive Data Redacted ***");
        formatter.field("title", &"*** Sensitive Data Redacted ***");
        formatter.field("preferred_language", &"*** Sensitive Data Redacted ***");
        formatter.field("locale", &"*** Sensitive Data Redacted ***");
        formatter.field("timezone", &"*** Sensitive Data Redacted ***");
        formatter.field("identity_store_id", &self.identity_store_id);
        formatter.finish()
    }
}
/// See [`DescribeUserOutput`](crate::output::DescribeUserOutput).
pub mod describe_user_output {

    /// A builder for [`DescribeUserOutput`](crate::output::DescribeUserOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default)]
    pub struct Builder {
        pub(crate) user_name: std::option::Option<std::string::String>,
        pub(crate) user_id: std::option::Option<std::string::String>,
        pub(crate) external_ids: std::option::Option<std::vec::Vec<crate::model::ExternalId>>,
        pub(crate) name: std::option::Option<crate::model::Name>,
        pub(crate) display_name: std::option::Option<std::string::String>,
        pub(crate) nick_name: std::option::Option<std::string::String>,
        pub(crate) profile_url: std::option::Option<std::string::String>,
        pub(crate) emails: std::option::Option<std::vec::Vec<crate::model::Email>>,
        pub(crate) addresses: std::option::Option<std::vec::Vec<crate::model::Address>>,
        pub(crate) phone_numbers: std::option::Option<std::vec::Vec<crate::model::PhoneNumber>>,
        pub(crate) user_type: std::option::Option<std::string::String>,
        pub(crate) title: std::option::Option<std::string::String>,
        pub(crate) preferred_language: std::option::Option<std::string::String>,
        pub(crate) locale: std::option::Option<std::string::String>,
        pub(crate) timezone: std::option::Option<std::string::String>,
        pub(crate) identity_store_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>A unique string used to identify the user. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.</p>
        pub fn user_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.user_name = Some(input.into());
            self
        }
        /// <p>A unique string used to identify the user. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.</p>
        pub fn set_user_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.user_name = input;
            self
        }
        /// <p>The identifier for a user in the identity store.</p>
        pub fn user_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.user_id = Some(input.into());
            self
        }
        /// <p>The identifier for a user in the identity store.</p>
        pub fn set_user_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.user_id = input;
            self
        }
        /// Appends an item to `external_ids`.
        ///
        /// To override the contents of this collection use [`set_external_ids`](Self::set_external_ids).
        ///
        /// <p>A list of <code>ExternalId</code> objects that contains the identifiers issued to this resource by an external identity provider.</p>
        pub fn external_ids(mut self, input: crate::model::ExternalId) -> Self {
            let mut v = self.external_ids.unwrap_or_default();
            v.push(input);
            self.external_ids = Some(v);
            self
        }
        /// <p>A list of <code>ExternalId</code> objects that contains the identifiers issued to this resource by an external identity provider.</p>
        pub fn set_external_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ExternalId>>,
        ) -> Self {
            self.external_ids = input;
            self
        }
        /// <p>The name of the user.</p>
        pub fn name(mut self, input: crate::model::Name) -> Self {
            self.name = Some(input);
            self
        }
        /// <p>The name of the user.</p>
        pub fn set_name(mut self, input: std::option::Option<crate::model::Name>) -> Self {
            self.name = input;
            self
        }
        /// <p>The user's name value for display.</p>
        pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.display_name = Some(input.into());
            self
        }
        /// <p>The user's name value for display.</p>
        pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.display_name = input;
            self
        }
        /// <p>An alternative descriptive name for the user.</p>
        pub fn nick_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.nick_name = Some(input.into());
            self
        }
        /// <p>An alternative descriptive name for the user.</p>
        pub fn set_nick_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.nick_name = input;
            self
        }
        /// <p>A URL link for the user's profile.</p>
        pub fn profile_url(mut self, input: impl Into<std::string::String>) -> Self {
            self.profile_url = Some(input.into());
            self
        }
        /// <p>A URL link for the user's profile.</p>
        pub fn set_profile_url(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.profile_url = input;
            self
        }
        /// Appends an item to `emails`.
        ///
        /// To override the contents of this collection use [`set_emails`](Self::set_emails).
        ///
        /// <p>The user's email value.</p>
        pub fn emails(mut self, input: crate::model::Email) -> Self {
            let mut v = self.emails.unwrap_or_default();
            v.push(input);
            self.emails = Some(v);
            self
        }
        /// <p>The user's email value.</p>
        pub fn set_emails(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Email>>,
        ) -> Self {
            self.emails = input;
            self
        }
        /// Appends an item to `addresses`.
        ///
        /// To override the contents of this collection use [`set_addresses`](Self::set_addresses).
        ///
        /// <p>The user's physical address.</p>
        pub fn addresses(mut self, input: crate::model::Address) -> Self {
            let mut v = self.addresses.unwrap_or_default();
            v.push(input);
            self.addresses = Some(v);
            self
        }
        /// <p>The user's physical address.</p>
        pub fn set_addresses(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Address>>,
        ) -> Self {
            self.addresses = input;
            self
        }
        /// Appends an item to `phone_numbers`.
        ///
        /// To override the contents of this collection use [`set_phone_numbers`](Self::set_phone_numbers).
        ///
        /// <p>A list of <code>PhoneNumber</code> objects associated with a user.</p>
        pub fn phone_numbers(mut self, input: crate::model::PhoneNumber) -> Self {
            let mut v = self.phone_numbers.unwrap_or_default();
            v.push(input);
            self.phone_numbers = Some(v);
            self
        }
        /// <p>A list of <code>PhoneNumber</code> objects associated with a user.</p>
        pub fn set_phone_numbers(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PhoneNumber>>,
        ) -> Self {
            self.phone_numbers = input;
            self
        }
        /// <p>A string indicating the user's type.</p>
        pub fn user_type(mut self, input: impl Into<std::string::String>) -> Self {
            self.user_type = Some(input.into());
            self
        }
        /// <p>A string indicating the user's type.</p>
        pub fn set_user_type(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.user_type = input;
            self
        }
        /// <p>A string containing the user's title.</p>
        pub fn title(mut self, input: impl Into<std::string::String>) -> Self {
            self.title = Some(input.into());
            self
        }
        /// <p>A string containing the user's title.</p>
        pub fn set_title(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.title = input;
            self
        }
        /// <p>The preferred language of the user.</p>
        pub fn preferred_language(mut self, input: impl Into<std::string::String>) -> Self {
            self.preferred_language = Some(input.into());
            self
        }
        /// <p>The preferred language of the user.</p>
        pub fn set_preferred_language(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.preferred_language = input;
            self
        }
        /// <p>A string containing the user's geographical region or location.</p>
        pub fn locale(mut self, input: impl Into<std::string::String>) -> Self {
            self.locale = Some(input.into());
            self
        }
        /// <p>A string containing the user's geographical region or location.</p>
        pub fn set_locale(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.locale = input;
            self
        }
        /// <p>The time zone for a user.</p>
        pub fn timezone(mut self, input: impl Into<std::string::String>) -> Self {
            self.timezone = Some(input.into());
            self
        }
        /// <p>The time zone for a user.</p>
        pub fn set_timezone(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.timezone = input;
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn identity_store_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.identity_store_id = Some(input.into());
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn set_identity_store_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.identity_store_id = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeUserOutput`](crate::output::DescribeUserOutput).
        pub fn build(self) -> crate::output::DescribeUserOutput {
            crate::output::DescribeUserOutput {
                user_name: self.user_name,
                user_id: self.user_id,
                external_ids: self.external_ids,
                name: self.name,
                display_name: self.display_name,
                nick_name: self.nick_name,
                profile_url: self.profile_url,
                emails: self.emails,
                addresses: self.addresses,
                phone_numbers: self.phone_numbers,
                user_type: self.user_type,
                title: self.title,
                preferred_language: self.preferred_language,
                locale: self.locale,
                timezone: self.timezone,
                identity_store_id: self.identity_store_id,
            }
        }
    }
    impl std::fmt::Debug for Builder {
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
            let mut formatter = f.debug_struct("Builder");
            formatter.field("user_name", &"*** Sensitive Data Redacted ***");
            formatter.field("user_id", &self.user_id);
            formatter.field("external_ids", &self.external_ids);
            formatter.field("name", &self.name);
            formatter.field("display_name", &"*** Sensitive Data Redacted ***");
            formatter.field("nick_name", &"*** Sensitive Data Redacted ***");
            formatter.field("profile_url", &"*** Sensitive Data Redacted ***");
            formatter.field("emails", &self.emails);
            formatter.field("addresses", &self.addresses);
            formatter.field("phone_numbers", &self.phone_numbers);
            formatter.field("user_type", &"*** Sensitive Data Redacted ***");
            formatter.field("title", &"*** Sensitive Data Redacted ***");
            formatter.field("preferred_language", &"*** Sensitive Data Redacted ***");
            formatter.field("locale", &"*** Sensitive Data Redacted ***");
            formatter.field("timezone", &"*** Sensitive Data Redacted ***");
            formatter.field("identity_store_id", &self.identity_store_id);
            formatter.finish()
        }
    }
}
impl DescribeUserOutput {
    /// Creates a new builder-style object to manufacture [`DescribeUserOutput`](crate::output::DescribeUserOutput).
    pub fn builder() -> crate::output::describe_user_output::Builder {
        crate::output::describe_user_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListGroupsOutput {
    /// <p>A list of <code>Group</code> objects in the identity store.</p>
    #[doc(hidden)]
    pub groups: std::option::Option<std::vec::Vec<crate::model::Group>>,
    /// <p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it1 is used in the API request to search for the next page.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListGroupsOutput {
    /// <p>A list of <code>Group</code> objects in the identity store.</p>
    pub fn groups(&self) -> std::option::Option<&[crate::model::Group]> {
        self.groups.as_deref()
    }
    /// <p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it1 is used in the API request to search for the next page.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListGroupsOutput`](crate::output::ListGroupsOutput).
pub mod list_groups_output {

    /// A builder for [`ListGroupsOutput`](crate::output::ListGroupsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) groups: std::option::Option<std::vec::Vec<crate::model::Group>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `groups`.
        ///
        /// To override the contents of this collection use [`set_groups`](Self::set_groups).
        ///
        /// <p>A list of <code>Group</code> objects in the identity store.</p>
        pub fn groups(mut self, input: crate::model::Group) -> Self {
            let mut v = self.groups.unwrap_or_default();
            v.push(input);
            self.groups = Some(v);
            self
        }
        /// <p>A list of <code>Group</code> objects in the identity store.</p>
        pub fn set_groups(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Group>>,
        ) -> Self {
            self.groups = input;
            self
        }
        /// <p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it1 is used in the API request to search for the next page.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it1 is used in the API request to search for the next page.</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 [`ListGroupsOutput`](crate::output::ListGroupsOutput).
        pub fn build(self) -> crate::output::ListGroupsOutput {
            crate::output::ListGroupsOutput {
                groups: self.groups,
                next_token: self.next_token,
            }
        }
    }
}
impl ListGroupsOutput {
    /// Creates a new builder-style object to manufacture [`ListGroupsOutput`](crate::output::ListGroupsOutput).
    pub fn builder() -> crate::output::list_groups_output::Builder {
        crate::output::list_groups_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateGroupOutput {
    /// <p>The identifier of the newly created group in the identity store.</p>
    #[doc(hidden)]
    pub group_id: std::option::Option<std::string::String>,
    /// <p>The globally unique identifier for the identity store.</p>
    #[doc(hidden)]
    pub identity_store_id: std::option::Option<std::string::String>,
}
impl CreateGroupOutput {
    /// <p>The identifier of the newly created group in the identity store.</p>
    pub fn group_id(&self) -> std::option::Option<&str> {
        self.group_id.as_deref()
    }
    /// <p>The globally unique identifier for the identity store.</p>
    pub fn identity_store_id(&self) -> std::option::Option<&str> {
        self.identity_store_id.as_deref()
    }
}
/// See [`CreateGroupOutput`](crate::output::CreateGroupOutput).
pub mod create_group_output {

    /// A builder for [`CreateGroupOutput`](crate::output::CreateGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) group_id: std::option::Option<std::string::String>,
        pub(crate) identity_store_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The identifier of the newly created group in the identity store.</p>
        pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.group_id = Some(input.into());
            self
        }
        /// <p>The identifier of the newly created group in the identity store.</p>
        pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.group_id = input;
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn identity_store_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.identity_store_id = Some(input.into());
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn set_identity_store_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.identity_store_id = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateGroupOutput`](crate::output::CreateGroupOutput).
        pub fn build(self) -> crate::output::CreateGroupOutput {
            crate::output::CreateGroupOutput {
                group_id: self.group_id,
                identity_store_id: self.identity_store_id,
            }
        }
    }
}
impl CreateGroupOutput {
    /// Creates a new builder-style object to manufacture [`CreateGroupOutput`](crate::output::CreateGroupOutput).
    pub fn builder() -> crate::output::create_group_output::Builder {
        crate::output::create_group_output::Builder::default()
    }
}

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct DescribeGroupOutput {
    /// <p>The identifier for a group in the identity store.</p>
    #[doc(hidden)]
    pub group_id: std::option::Option<std::string::String>,
    /// <p>The group’s display name value. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. This value is specified at the time that the group is created and stored as an attribute of the group object in the identity store.</p>
    #[doc(hidden)]
    pub display_name: std::option::Option<std::string::String>,
    /// <p>A list of <code>ExternalId</code> objects that contains the identifiers issued to this resource by an external identity provider.</p>
    #[doc(hidden)]
    pub external_ids: std::option::Option<std::vec::Vec<crate::model::ExternalId>>,
    /// <p>A string containing a description of the group.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>The globally unique identifier for the identity store.</p>
    #[doc(hidden)]
    pub identity_store_id: std::option::Option<std::string::String>,
}
impl DescribeGroupOutput {
    /// <p>The identifier for a group in the identity store.</p>
    pub fn group_id(&self) -> std::option::Option<&str> {
        self.group_id.as_deref()
    }
    /// <p>The group’s display name value. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. This value is specified at the time that the group is created and stored as an attribute of the group object in the identity store.</p>
    pub fn display_name(&self) -> std::option::Option<&str> {
        self.display_name.as_deref()
    }
    /// <p>A list of <code>ExternalId</code> objects that contains the identifiers issued to this resource by an external identity provider.</p>
    pub fn external_ids(&self) -> std::option::Option<&[crate::model::ExternalId]> {
        self.external_ids.as_deref()
    }
    /// <p>A string containing a description of the group.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The globally unique identifier for the identity store.</p>
    pub fn identity_store_id(&self) -> std::option::Option<&str> {
        self.identity_store_id.as_deref()
    }
}
impl std::fmt::Debug for DescribeGroupOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("DescribeGroupOutput");
        formatter.field("group_id", &self.group_id);
        formatter.field("display_name", &"*** Sensitive Data Redacted ***");
        formatter.field("external_ids", &self.external_ids);
        formatter.field("description", &"*** Sensitive Data Redacted ***");
        formatter.field("identity_store_id", &self.identity_store_id);
        formatter.finish()
    }
}
/// See [`DescribeGroupOutput`](crate::output::DescribeGroupOutput).
pub mod describe_group_output {

    /// A builder for [`DescribeGroupOutput`](crate::output::DescribeGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default)]
    pub struct Builder {
        pub(crate) group_id: std::option::Option<std::string::String>,
        pub(crate) display_name: std::option::Option<std::string::String>,
        pub(crate) external_ids: std::option::Option<std::vec::Vec<crate::model::ExternalId>>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) identity_store_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The identifier for a group in the identity store.</p>
        pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.group_id = Some(input.into());
            self
        }
        /// <p>The identifier for a group in the identity store.</p>
        pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.group_id = input;
            self
        }
        /// <p>The group’s display name value. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. This value is specified at the time that the group is created and stored as an attribute of the group object in the identity store.</p>
        pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.display_name = Some(input.into());
            self
        }
        /// <p>The group’s display name value. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. This value is specified at the time that the group is created and stored as an attribute of the group object in the identity store.</p>
        pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.display_name = input;
            self
        }
        /// Appends an item to `external_ids`.
        ///
        /// To override the contents of this collection use [`set_external_ids`](Self::set_external_ids).
        ///
        /// <p>A list of <code>ExternalId</code> objects that contains the identifiers issued to this resource by an external identity provider.</p>
        pub fn external_ids(mut self, input: crate::model::ExternalId) -> Self {
            let mut v = self.external_ids.unwrap_or_default();
            v.push(input);
            self.external_ids = Some(v);
            self
        }
        /// <p>A list of <code>ExternalId</code> objects that contains the identifiers issued to this resource by an external identity provider.</p>
        pub fn set_external_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ExternalId>>,
        ) -> Self {
            self.external_ids = input;
            self
        }
        /// <p>A string containing a description of the group.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>A string containing a description of the group.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn identity_store_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.identity_store_id = Some(input.into());
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn set_identity_store_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.identity_store_id = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeGroupOutput`](crate::output::DescribeGroupOutput).
        pub fn build(self) -> crate::output::DescribeGroupOutput {
            crate::output::DescribeGroupOutput {
                group_id: self.group_id,
                display_name: self.display_name,
                external_ids: self.external_ids,
                description: self.description,
                identity_store_id: self.identity_store_id,
            }
        }
    }
    impl std::fmt::Debug for Builder {
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
            let mut formatter = f.debug_struct("Builder");
            formatter.field("group_id", &self.group_id);
            formatter.field("display_name", &"*** Sensitive Data Redacted ***");
            formatter.field("external_ids", &self.external_ids);
            formatter.field("description", &"*** Sensitive Data Redacted ***");
            formatter.field("identity_store_id", &self.identity_store_id);
            formatter.finish()
        }
    }
}
impl DescribeGroupOutput {
    /// Creates a new builder-style object to manufacture [`DescribeGroupOutput`](crate::output::DescribeGroupOutput).
    pub fn builder() -> crate::output::describe_group_output::Builder {
        crate::output::describe_group_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListGroupMembershipsOutput {
    /// <p>A list of <code>GroupMembership</code> objects in the group.</p>
    #[doc(hidden)]
    pub group_memberships: std::option::Option<std::vec::Vec<crate::model::GroupMembership>>,
    /// <p>The pagination token used for the <code>ListUsers</code>, <code>ListGroups</code>, and <code>ListGroupMemberships</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListGroupMembershipsOutput {
    /// <p>A list of <code>GroupMembership</code> objects in the group.</p>
    pub fn group_memberships(&self) -> std::option::Option<&[crate::model::GroupMembership]> {
        self.group_memberships.as_deref()
    }
    /// <p>The pagination token used for the <code>ListUsers</code>, <code>ListGroups</code>, and <code>ListGroupMemberships</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListGroupMembershipsOutput`](crate::output::ListGroupMembershipsOutput).
pub mod list_group_memberships_output {

    /// A builder for [`ListGroupMembershipsOutput`](crate::output::ListGroupMembershipsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) group_memberships:
            std::option::Option<std::vec::Vec<crate::model::GroupMembership>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `group_memberships`.
        ///
        /// To override the contents of this collection use [`set_group_memberships`](Self::set_group_memberships).
        ///
        /// <p>A list of <code>GroupMembership</code> objects in the group.</p>
        pub fn group_memberships(mut self, input: crate::model::GroupMembership) -> Self {
            let mut v = self.group_memberships.unwrap_or_default();
            v.push(input);
            self.group_memberships = Some(v);
            self
        }
        /// <p>A list of <code>GroupMembership</code> objects in the group.</p>
        pub fn set_group_memberships(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::GroupMembership>>,
        ) -> Self {
            self.group_memberships = input;
            self
        }
        /// <p>The pagination token used for the <code>ListUsers</code>, <code>ListGroups</code>, and <code>ListGroupMemberships</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The pagination token used for the <code>ListUsers</code>, <code>ListGroups</code>, and <code>ListGroupMemberships</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.</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 [`ListGroupMembershipsOutput`](crate::output::ListGroupMembershipsOutput).
        pub fn build(self) -> crate::output::ListGroupMembershipsOutput {
            crate::output::ListGroupMembershipsOutput {
                group_memberships: self.group_memberships,
                next_token: self.next_token,
            }
        }
    }
}
impl ListGroupMembershipsOutput {
    /// Creates a new builder-style object to manufacture [`ListGroupMembershipsOutput`](crate::output::ListGroupMembershipsOutput).
    pub fn builder() -> crate::output::list_group_memberships_output::Builder {
        crate::output::list_group_memberships_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateGroupMembershipOutput {
    /// <p>The identifier for a newly created <code>GroupMembership</code> in an identity store.</p>
    #[doc(hidden)]
    pub membership_id: std::option::Option<std::string::String>,
    /// <p>The globally unique identifier for the identity store.</p>
    #[doc(hidden)]
    pub identity_store_id: std::option::Option<std::string::String>,
}
impl CreateGroupMembershipOutput {
    /// <p>The identifier for a newly created <code>GroupMembership</code> in an identity store.</p>
    pub fn membership_id(&self) -> std::option::Option<&str> {
        self.membership_id.as_deref()
    }
    /// <p>The globally unique identifier for the identity store.</p>
    pub fn identity_store_id(&self) -> std::option::Option<&str> {
        self.identity_store_id.as_deref()
    }
}
/// See [`CreateGroupMembershipOutput`](crate::output::CreateGroupMembershipOutput).
pub mod create_group_membership_output {

    /// A builder for [`CreateGroupMembershipOutput`](crate::output::CreateGroupMembershipOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) membership_id: std::option::Option<std::string::String>,
        pub(crate) identity_store_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The identifier for a newly created <code>GroupMembership</code> in an identity store.</p>
        pub fn membership_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.membership_id = Some(input.into());
            self
        }
        /// <p>The identifier for a newly created <code>GroupMembership</code> in an identity store.</p>
        pub fn set_membership_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.membership_id = input;
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn identity_store_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.identity_store_id = Some(input.into());
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn set_identity_store_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.identity_store_id = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateGroupMembershipOutput`](crate::output::CreateGroupMembershipOutput).
        pub fn build(self) -> crate::output::CreateGroupMembershipOutput {
            crate::output::CreateGroupMembershipOutput {
                membership_id: self.membership_id,
                identity_store_id: self.identity_store_id,
            }
        }
    }
}
impl CreateGroupMembershipOutput {
    /// Creates a new builder-style object to manufacture [`CreateGroupMembershipOutput`](crate::output::CreateGroupMembershipOutput).
    pub fn builder() -> crate::output::create_group_membership_output::Builder {
        crate::output::create_group_membership_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeGroupMembershipOutput {
    /// <p>The globally unique identifier for the identity store.</p>
    #[doc(hidden)]
    pub identity_store_id: std::option::Option<std::string::String>,
    /// <p>The identifier for a <code>GroupMembership</code> in an identity store.</p>
    #[doc(hidden)]
    pub membership_id: std::option::Option<std::string::String>,
    /// <p>The identifier for a group in the identity store.</p>
    #[doc(hidden)]
    pub group_id: std::option::Option<std::string::String>,
    /// <p>An object containing the identifier of a group member.</p>
    #[doc(hidden)]
    pub member_id: std::option::Option<crate::model::MemberId>,
}
impl DescribeGroupMembershipOutput {
    /// <p>The globally unique identifier for the identity store.</p>
    pub fn identity_store_id(&self) -> std::option::Option<&str> {
        self.identity_store_id.as_deref()
    }
    /// <p>The identifier for a <code>GroupMembership</code> in an identity store.</p>
    pub fn membership_id(&self) -> std::option::Option<&str> {
        self.membership_id.as_deref()
    }
    /// <p>The identifier for a group in the identity store.</p>
    pub fn group_id(&self) -> std::option::Option<&str> {
        self.group_id.as_deref()
    }
    /// <p>An object containing the identifier of a group member.</p>
    pub fn member_id(&self) -> std::option::Option<&crate::model::MemberId> {
        self.member_id.as_ref()
    }
}
/// See [`DescribeGroupMembershipOutput`](crate::output::DescribeGroupMembershipOutput).
pub mod describe_group_membership_output {

    /// A builder for [`DescribeGroupMembershipOutput`](crate::output::DescribeGroupMembershipOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) identity_store_id: std::option::Option<std::string::String>,
        pub(crate) membership_id: std::option::Option<std::string::String>,
        pub(crate) group_id: std::option::Option<std::string::String>,
        pub(crate) member_id: std::option::Option<crate::model::MemberId>,
    }
    impl Builder {
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn identity_store_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.identity_store_id = Some(input.into());
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn set_identity_store_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.identity_store_id = input;
            self
        }
        /// <p>The identifier for a <code>GroupMembership</code> in an identity store.</p>
        pub fn membership_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.membership_id = Some(input.into());
            self
        }
        /// <p>The identifier for a <code>GroupMembership</code> in an identity store.</p>
        pub fn set_membership_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.membership_id = input;
            self
        }
        /// <p>The identifier for a group in the identity store.</p>
        pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.group_id = Some(input.into());
            self
        }
        /// <p>The identifier for a group in the identity store.</p>
        pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.group_id = input;
            self
        }
        /// <p>An object containing the identifier of a group member.</p>
        pub fn member_id(mut self, input: crate::model::MemberId) -> Self {
            self.member_id = Some(input);
            self
        }
        /// <p>An object containing the identifier of a group member.</p>
        pub fn set_member_id(mut self, input: std::option::Option<crate::model::MemberId>) -> Self {
            self.member_id = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeGroupMembershipOutput`](crate::output::DescribeGroupMembershipOutput).
        pub fn build(self) -> crate::output::DescribeGroupMembershipOutput {
            crate::output::DescribeGroupMembershipOutput {
                identity_store_id: self.identity_store_id,
                membership_id: self.membership_id,
                group_id: self.group_id,
                member_id: self.member_id,
            }
        }
    }
}
impl DescribeGroupMembershipOutput {
    /// Creates a new builder-style object to manufacture [`DescribeGroupMembershipOutput`](crate::output::DescribeGroupMembershipOutput).
    pub fn builder() -> crate::output::describe_group_membership_output::Builder {
        crate::output::describe_group_membership_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListGroupMembershipsForMemberOutput {
    /// <p>A list of <code>GroupMembership</code> objects in the group for a specified member.</p>
    #[doc(hidden)]
    pub group_memberships: std::option::Option<std::vec::Vec<crate::model::GroupMembership>>,
    /// <p>The pagination token used for the <code>ListUsers</code>, <code>ListGroups</code>, and <code>ListGroupMemberships</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListGroupMembershipsForMemberOutput {
    /// <p>A list of <code>GroupMembership</code> objects in the group for a specified member.</p>
    pub fn group_memberships(&self) -> std::option::Option<&[crate::model::GroupMembership]> {
        self.group_memberships.as_deref()
    }
    /// <p>The pagination token used for the <code>ListUsers</code>, <code>ListGroups</code>, and <code>ListGroupMemberships</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListGroupMembershipsForMemberOutput`](crate::output::ListGroupMembershipsForMemberOutput).
pub mod list_group_memberships_for_member_output {

    /// A builder for [`ListGroupMembershipsForMemberOutput`](crate::output::ListGroupMembershipsForMemberOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) group_memberships:
            std::option::Option<std::vec::Vec<crate::model::GroupMembership>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `group_memberships`.
        ///
        /// To override the contents of this collection use [`set_group_memberships`](Self::set_group_memberships).
        ///
        /// <p>A list of <code>GroupMembership</code> objects in the group for a specified member.</p>
        pub fn group_memberships(mut self, input: crate::model::GroupMembership) -> Self {
            let mut v = self.group_memberships.unwrap_or_default();
            v.push(input);
            self.group_memberships = Some(v);
            self
        }
        /// <p>A list of <code>GroupMembership</code> objects in the group for a specified member.</p>
        pub fn set_group_memberships(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::GroupMembership>>,
        ) -> Self {
            self.group_memberships = input;
            self
        }
        /// <p>The pagination token used for the <code>ListUsers</code>, <code>ListGroups</code>, and <code>ListGroupMemberships</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The pagination token used for the <code>ListUsers</code>, <code>ListGroups</code>, and <code>ListGroupMemberships</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page. </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 [`ListGroupMembershipsForMemberOutput`](crate::output::ListGroupMembershipsForMemberOutput).
        pub fn build(self) -> crate::output::ListGroupMembershipsForMemberOutput {
            crate::output::ListGroupMembershipsForMemberOutput {
                group_memberships: self.group_memberships,
                next_token: self.next_token,
            }
        }
    }
}
impl ListGroupMembershipsForMemberOutput {
    /// Creates a new builder-style object to manufacture [`ListGroupMembershipsForMemberOutput`](crate::output::ListGroupMembershipsForMemberOutput).
    pub fn builder() -> crate::output::list_group_memberships_for_member_output::Builder {
        crate::output::list_group_memberships_for_member_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct IsMemberInGroupsOutput {
    /// <p>A list containing the results of membership existence checks.</p>
    #[doc(hidden)]
    pub results: std::option::Option<std::vec::Vec<crate::model::GroupMembershipExistenceResult>>,
}
impl IsMemberInGroupsOutput {
    /// <p>A list containing the results of membership existence checks.</p>
    pub fn results(&self) -> std::option::Option<&[crate::model::GroupMembershipExistenceResult]> {
        self.results.as_deref()
    }
}
/// See [`IsMemberInGroupsOutput`](crate::output::IsMemberInGroupsOutput).
pub mod is_member_in_groups_output {

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetUserIdOutput {
    /// <p>The identifier for a user in the identity store.</p>
    #[doc(hidden)]
    pub user_id: std::option::Option<std::string::String>,
    /// <p>The globally unique identifier for the identity store.</p>
    #[doc(hidden)]
    pub identity_store_id: std::option::Option<std::string::String>,
}
impl GetUserIdOutput {
    /// <p>The identifier for a user in the identity store.</p>
    pub fn user_id(&self) -> std::option::Option<&str> {
        self.user_id.as_deref()
    }
    /// <p>The globally unique identifier for the identity store.</p>
    pub fn identity_store_id(&self) -> std::option::Option<&str> {
        self.identity_store_id.as_deref()
    }
}
/// See [`GetUserIdOutput`](crate::output::GetUserIdOutput).
pub mod get_user_id_output {

    /// A builder for [`GetUserIdOutput`](crate::output::GetUserIdOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) user_id: std::option::Option<std::string::String>,
        pub(crate) identity_store_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The identifier for a user in the identity store.</p>
        pub fn user_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.user_id = Some(input.into());
            self
        }
        /// <p>The identifier for a user in the identity store.</p>
        pub fn set_user_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.user_id = input;
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn identity_store_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.identity_store_id = Some(input.into());
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn set_identity_store_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.identity_store_id = input;
            self
        }
        /// Consumes the builder and constructs a [`GetUserIdOutput`](crate::output::GetUserIdOutput).
        pub fn build(self) -> crate::output::GetUserIdOutput {
            crate::output::GetUserIdOutput {
                user_id: self.user_id,
                identity_store_id: self.identity_store_id,
            }
        }
    }
}
impl GetUserIdOutput {
    /// Creates a new builder-style object to manufacture [`GetUserIdOutput`](crate::output::GetUserIdOutput).
    pub fn builder() -> crate::output::get_user_id_output::Builder {
        crate::output::get_user_id_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetGroupMembershipIdOutput {
    /// <p>The identifier for a <code>GroupMembership</code> in an identity store.</p>
    #[doc(hidden)]
    pub membership_id: std::option::Option<std::string::String>,
    /// <p>The globally unique identifier for the identity store.</p>
    #[doc(hidden)]
    pub identity_store_id: std::option::Option<std::string::String>,
}
impl GetGroupMembershipIdOutput {
    /// <p>The identifier for a <code>GroupMembership</code> in an identity store.</p>
    pub fn membership_id(&self) -> std::option::Option<&str> {
        self.membership_id.as_deref()
    }
    /// <p>The globally unique identifier for the identity store.</p>
    pub fn identity_store_id(&self) -> std::option::Option<&str> {
        self.identity_store_id.as_deref()
    }
}
/// See [`GetGroupMembershipIdOutput`](crate::output::GetGroupMembershipIdOutput).
pub mod get_group_membership_id_output {

    /// A builder for [`GetGroupMembershipIdOutput`](crate::output::GetGroupMembershipIdOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) membership_id: std::option::Option<std::string::String>,
        pub(crate) identity_store_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The identifier for a <code>GroupMembership</code> in an identity store.</p>
        pub fn membership_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.membership_id = Some(input.into());
            self
        }
        /// <p>The identifier for a <code>GroupMembership</code> in an identity store.</p>
        pub fn set_membership_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.membership_id = input;
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn identity_store_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.identity_store_id = Some(input.into());
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn set_identity_store_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.identity_store_id = input;
            self
        }
        /// Consumes the builder and constructs a [`GetGroupMembershipIdOutput`](crate::output::GetGroupMembershipIdOutput).
        pub fn build(self) -> crate::output::GetGroupMembershipIdOutput {
            crate::output::GetGroupMembershipIdOutput {
                membership_id: self.membership_id,
                identity_store_id: self.identity_store_id,
            }
        }
    }
}
impl GetGroupMembershipIdOutput {
    /// Creates a new builder-style object to manufacture [`GetGroupMembershipIdOutput`](crate::output::GetGroupMembershipIdOutput).
    pub fn builder() -> crate::output::get_group_membership_id_output::Builder {
        crate::output::get_group_membership_id_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetGroupIdOutput {
    /// <p>The identifier for a group in the identity store.</p>
    #[doc(hidden)]
    pub group_id: std::option::Option<std::string::String>,
    /// <p>The globally unique identifier for the identity store.</p>
    #[doc(hidden)]
    pub identity_store_id: std::option::Option<std::string::String>,
}
impl GetGroupIdOutput {
    /// <p>The identifier for a group in the identity store.</p>
    pub fn group_id(&self) -> std::option::Option<&str> {
        self.group_id.as_deref()
    }
    /// <p>The globally unique identifier for the identity store.</p>
    pub fn identity_store_id(&self) -> std::option::Option<&str> {
        self.identity_store_id.as_deref()
    }
}
/// See [`GetGroupIdOutput`](crate::output::GetGroupIdOutput).
pub mod get_group_id_output {

    /// A builder for [`GetGroupIdOutput`](crate::output::GetGroupIdOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) group_id: std::option::Option<std::string::String>,
        pub(crate) identity_store_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The identifier for a group in the identity store.</p>
        pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.group_id = Some(input.into());
            self
        }
        /// <p>The identifier for a group in the identity store.</p>
        pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.group_id = input;
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn identity_store_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.identity_store_id = Some(input.into());
            self
        }
        /// <p>The globally unique identifier for the identity store.</p>
        pub fn set_identity_store_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.identity_store_id = input;
            self
        }
        /// Consumes the builder and constructs a [`GetGroupIdOutput`](crate::output::GetGroupIdOutput).
        pub fn build(self) -> crate::output::GetGroupIdOutput {
            crate::output::GetGroupIdOutput {
                group_id: self.group_id,
                identity_store_id: self.identity_store_id,
            }
        }
    }
}
impl GetGroupIdOutput {
    /// Creates a new builder-style object to manufacture [`GetGroupIdOutput`](crate::output::GetGroupIdOutput).
    pub fn builder() -> crate::output::get_group_id_output::Builder {
        crate::output::get_group_id_output::Builder::default()
    }
}