aws-sdk-detective 0.0.24-alpha

AWS SDK for Amazon Detective
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)]
pub struct UntagResourceOutput {}
impl std::fmt::Debug for UntagResourceOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("UntagResourceOutput");
        formatter.finish()
    }
}
/// See [`UntagResourceOutput`](crate::output::UntagResourceOutput)
pub mod untag_resource_output {
    /// A builder for [`UntagResourceOutput`](crate::output::UntagResourceOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, 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)]
pub struct TagResourceOutput {}
impl std::fmt::Debug for TagResourceOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("TagResourceOutput");
        formatter.finish()
    }
}
/// See [`TagResourceOutput`](crate::output::TagResourceOutput)
pub mod tag_resource_output {
    /// A builder for [`TagResourceOutput`](crate::output::TagResourceOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, 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)]
pub struct StartMonitoringMemberOutput {}
impl std::fmt::Debug for StartMonitoringMemberOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("StartMonitoringMemberOutput");
        formatter.finish()
    }
}
/// See [`StartMonitoringMemberOutput`](crate::output::StartMonitoringMemberOutput)
pub mod start_monitoring_member_output {
    /// A builder for [`StartMonitoringMemberOutput`](crate::output::StartMonitoringMemberOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`StartMonitoringMemberOutput`](crate::output::StartMonitoringMemberOutput)
        pub fn build(self) -> crate::output::StartMonitoringMemberOutput {
            crate::output::StartMonitoringMemberOutput {}
        }
    }
}
impl StartMonitoringMemberOutput {
    /// Creates a new builder-style object to manufacture [`StartMonitoringMemberOutput`](crate::output::StartMonitoringMemberOutput)
    pub fn builder() -> crate::output::start_monitoring_member_output::Builder {
        crate::output::start_monitoring_member_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct RejectInvitationOutput {}
impl std::fmt::Debug for RejectInvitationOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("RejectInvitationOutput");
        formatter.finish()
    }
}
/// See [`RejectInvitationOutput`](crate::output::RejectInvitationOutput)
pub mod reject_invitation_output {
    /// A builder for [`RejectInvitationOutput`](crate::output::RejectInvitationOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`RejectInvitationOutput`](crate::output::RejectInvitationOutput)
        pub fn build(self) -> crate::output::RejectInvitationOutput {
            crate::output::RejectInvitationOutput {}
        }
    }
}
impl RejectInvitationOutput {
    /// Creates a new builder-style object to manufacture [`RejectInvitationOutput`](crate::output::RejectInvitationOutput)
    pub fn builder() -> crate::output::reject_invitation_output::Builder {
        crate::output::reject_invitation_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct ListTagsForResourceOutput {
    /// <p>The tag values that are assigned to the behavior graph. The request returns up to 50 tag
    /// values.</p>
    pub tags:
        std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
}
impl ListTagsForResourceOutput {
    /// <p>The tag values that are assigned to the behavior graph. The request returns up to 50 tag
    /// values.</p>
    pub fn tags(
        &self,
    ) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
    {
        self.tags.as_ref()
    }
}
impl std::fmt::Debug for ListTagsForResourceOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("ListTagsForResourceOutput");
        formatter.field("tags", &self.tags);
        formatter.finish()
    }
}
/// See [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput)
pub mod list_tags_for_resource_output {
    /// A builder for [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) tags: std::option::Option<
            std::collections::HashMap<std::string::String, std::string::String>,
        >,
    }
    impl Builder {
        /// Adds a key-value pair to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The tag values that are assigned to the behavior graph. The request returns up to 50 tag
        /// values.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            let mut hash_map = self.tags.unwrap_or_default();
            hash_map.insert(k.into(), v.into());
            self.tags = Some(hash_map);
            self
        }
        /// <p>The tag values that are assigned to the behavior graph. The request returns up to 50 tag
        /// values.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.tags = input;
            self
        }
        /// Consumes the builder and constructs a [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput)
        pub fn build(self) -> crate::output::ListTagsForResourceOutput {
            crate::output::ListTagsForResourceOutput { tags: self.tags }
        }
    }
}
impl ListTagsForResourceOutput {
    /// Creates a new builder-style object to manufacture [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput)
    pub fn builder() -> crate::output::list_tags_for_resource_output::Builder {
        crate::output::list_tags_for_resource_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct ListMembersOutput {
    /// <p>The list of member accounts in the behavior graph.</p>
    /// <p>The results include member accounts that did not pass verification and member accounts
    /// that have not yet accepted the invitation to the behavior graph. The results do not include
    /// member accounts that were removed from the behavior graph.</p>
    pub member_details: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
    /// <p>If there are more member accounts remaining in the results, then this is the pagination
    /// token to use to request the next page of member accounts.</p>
    pub next_token: std::option::Option<std::string::String>,
}
impl ListMembersOutput {
    /// <p>The list of member accounts in the behavior graph.</p>
    /// <p>The results include member accounts that did not pass verification and member accounts
    /// that have not yet accepted the invitation to the behavior graph. The results do not include
    /// member accounts that were removed from the behavior graph.</p>
    pub fn member_details(&self) -> std::option::Option<&[crate::model::MemberDetail]> {
        self.member_details.as_deref()
    }
    /// <p>If there are more member accounts remaining in the results, then this is the pagination
    /// token to use to request the next page of member accounts.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
impl std::fmt::Debug for ListMembersOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("ListMembersOutput");
        formatter.field("member_details", &self.member_details);
        formatter.field("next_token", &self.next_token);
        formatter.finish()
    }
}
/// See [`ListMembersOutput`](crate::output::ListMembersOutput)
pub mod list_members_output {
    /// A builder for [`ListMembersOutput`](crate::output::ListMembersOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) member_details: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `member_details`.
        ///
        /// To override the contents of this collection use [`set_member_details`](Self::set_member_details).
        ///
        /// <p>The list of member accounts in the behavior graph.</p>
        /// <p>The results include member accounts that did not pass verification and member accounts
        /// that have not yet accepted the invitation to the behavior graph. The results do not include
        /// member accounts that were removed from the behavior graph.</p>
        pub fn member_details(mut self, input: impl Into<crate::model::MemberDetail>) -> Self {
            let mut v = self.member_details.unwrap_or_default();
            v.push(input.into());
            self.member_details = Some(v);
            self
        }
        /// <p>The list of member accounts in the behavior graph.</p>
        /// <p>The results include member accounts that did not pass verification and member accounts
        /// that have not yet accepted the invitation to the behavior graph. The results do not include
        /// member accounts that were removed from the behavior graph.</p>
        pub fn set_member_details(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
        ) -> Self {
            self.member_details = input;
            self
        }
        /// <p>If there are more member accounts remaining in the results, then this is the pagination
        /// token to use to request the next page of member accounts.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If there are more member accounts remaining in the results, then this is the pagination
        /// token to use to request the next page of member accounts.</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 [`ListMembersOutput`](crate::output::ListMembersOutput)
        pub fn build(self) -> crate::output::ListMembersOutput {
            crate::output::ListMembersOutput {
                member_details: self.member_details,
                next_token: self.next_token,
            }
        }
    }
}
impl ListMembersOutput {
    /// Creates a new builder-style object to manufacture [`ListMembersOutput`](crate::output::ListMembersOutput)
    pub fn builder() -> crate::output::list_members_output::Builder {
        crate::output::list_members_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct ListInvitationsOutput {
    /// <p>The list of behavior graphs for which the member account has open or accepted
    /// invitations.</p>
    pub invitations: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
    /// <p>If there are more behavior graphs remaining in the results, then this is the pagination
    /// token to use to request the next page of behavior graphs.</p>
    pub next_token: std::option::Option<std::string::String>,
}
impl ListInvitationsOutput {
    /// <p>The list of behavior graphs for which the member account has open or accepted
    /// invitations.</p>
    pub fn invitations(&self) -> std::option::Option<&[crate::model::MemberDetail]> {
        self.invitations.as_deref()
    }
    /// <p>If there are more behavior graphs remaining in the results, then this is the pagination
    /// token to use to request the next page of behavior graphs.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
impl std::fmt::Debug for ListInvitationsOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("ListInvitationsOutput");
        formatter.field("invitations", &self.invitations);
        formatter.field("next_token", &self.next_token);
        formatter.finish()
    }
}
/// See [`ListInvitationsOutput`](crate::output::ListInvitationsOutput)
pub mod list_invitations_output {
    /// A builder for [`ListInvitationsOutput`](crate::output::ListInvitationsOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) invitations: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `invitations`.
        ///
        /// To override the contents of this collection use [`set_invitations`](Self::set_invitations).
        ///
        /// <p>The list of behavior graphs for which the member account has open or accepted
        /// invitations.</p>
        pub fn invitations(mut self, input: impl Into<crate::model::MemberDetail>) -> Self {
            let mut v = self.invitations.unwrap_or_default();
            v.push(input.into());
            self.invitations = Some(v);
            self
        }
        /// <p>The list of behavior graphs for which the member account has open or accepted
        /// invitations.</p>
        pub fn set_invitations(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
        ) -> Self {
            self.invitations = input;
            self
        }
        /// <p>If there are more behavior graphs remaining in the results, then this is the pagination
        /// token to use to request the next page of behavior graphs.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If there are more behavior graphs remaining in the results, then this is the pagination
        /// token to use to request the next page of behavior graphs.</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 [`ListInvitationsOutput`](crate::output::ListInvitationsOutput)
        pub fn build(self) -> crate::output::ListInvitationsOutput {
            crate::output::ListInvitationsOutput {
                invitations: self.invitations,
                next_token: self.next_token,
            }
        }
    }
}
impl ListInvitationsOutput {
    /// Creates a new builder-style object to manufacture [`ListInvitationsOutput`](crate::output::ListInvitationsOutput)
    pub fn builder() -> crate::output::list_invitations_output::Builder {
        crate::output::list_invitations_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct ListGraphsOutput {
    /// <p>A list of behavior graphs that the account is an administrator account for.</p>
    pub graph_list: std::option::Option<std::vec::Vec<crate::model::Graph>>,
    /// <p>If there are more behavior graphs remaining in the results, then this is the pagination
    /// token to use to request the next page of behavior graphs.</p>
    pub next_token: std::option::Option<std::string::String>,
}
impl ListGraphsOutput {
    /// <p>A list of behavior graphs that the account is an administrator account for.</p>
    pub fn graph_list(&self) -> std::option::Option<&[crate::model::Graph]> {
        self.graph_list.as_deref()
    }
    /// <p>If there are more behavior graphs remaining in the results, then this is the pagination
    /// token to use to request the next page of behavior graphs.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
impl std::fmt::Debug for ListGraphsOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("ListGraphsOutput");
        formatter.field("graph_list", &self.graph_list);
        formatter.field("next_token", &self.next_token);
        formatter.finish()
    }
}
/// See [`ListGraphsOutput`](crate::output::ListGraphsOutput)
pub mod list_graphs_output {
    /// A builder for [`ListGraphsOutput`](crate::output::ListGraphsOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) graph_list: std::option::Option<std::vec::Vec<crate::model::Graph>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `graph_list`.
        ///
        /// To override the contents of this collection use [`set_graph_list`](Self::set_graph_list).
        ///
        /// <p>A list of behavior graphs that the account is an administrator account for.</p>
        pub fn graph_list(mut self, input: impl Into<crate::model::Graph>) -> Self {
            let mut v = self.graph_list.unwrap_or_default();
            v.push(input.into());
            self.graph_list = Some(v);
            self
        }
        /// <p>A list of behavior graphs that the account is an administrator account for.</p>
        pub fn set_graph_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Graph>>,
        ) -> Self {
            self.graph_list = input;
            self
        }
        /// <p>If there are more behavior graphs remaining in the results, then this is the pagination
        /// token to use to request the next page of behavior graphs.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If there are more behavior graphs remaining in the results, then this is the pagination
        /// token to use to request the next page of behavior graphs.</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 [`ListGraphsOutput`](crate::output::ListGraphsOutput)
        pub fn build(self) -> crate::output::ListGraphsOutput {
            crate::output::ListGraphsOutput {
                graph_list: self.graph_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListGraphsOutput {
    /// Creates a new builder-style object to manufacture [`ListGraphsOutput`](crate::output::ListGraphsOutput)
    pub fn builder() -> crate::output::list_graphs_output::Builder {
        crate::output::list_graphs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct GetMembersOutput {
    /// <p>The member account details that Detective is returning in response to the request.</p>
    pub member_details: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
    /// <p>The requested member accounts for which Detective was unable to return member
    /// details.</p>
    /// <p>For each account, provides the reason why the request could not be processed.</p>
    pub unprocessed_accounts: std::option::Option<std::vec::Vec<crate::model::UnprocessedAccount>>,
}
impl GetMembersOutput {
    /// <p>The member account details that Detective is returning in response to the request.</p>
    pub fn member_details(&self) -> std::option::Option<&[crate::model::MemberDetail]> {
        self.member_details.as_deref()
    }
    /// <p>The requested member accounts for which Detective was unable to return member
    /// details.</p>
    /// <p>For each account, provides the reason why the request could not be processed.</p>
    pub fn unprocessed_accounts(&self) -> std::option::Option<&[crate::model::UnprocessedAccount]> {
        self.unprocessed_accounts.as_deref()
    }
}
impl std::fmt::Debug for GetMembersOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("GetMembersOutput");
        formatter.field("member_details", &self.member_details);
        formatter.field("unprocessed_accounts", &self.unprocessed_accounts);
        formatter.finish()
    }
}
/// See [`GetMembersOutput`](crate::output::GetMembersOutput)
pub mod get_members_output {
    /// A builder for [`GetMembersOutput`](crate::output::GetMembersOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) member_details: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
        pub(crate) unprocessed_accounts:
            std::option::Option<std::vec::Vec<crate::model::UnprocessedAccount>>,
    }
    impl Builder {
        /// Appends an item to `member_details`.
        ///
        /// To override the contents of this collection use [`set_member_details`](Self::set_member_details).
        ///
        /// <p>The member account details that Detective is returning in response to the request.</p>
        pub fn member_details(mut self, input: impl Into<crate::model::MemberDetail>) -> Self {
            let mut v = self.member_details.unwrap_or_default();
            v.push(input.into());
            self.member_details = Some(v);
            self
        }
        /// <p>The member account details that Detective is returning in response to the request.</p>
        pub fn set_member_details(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
        ) -> Self {
            self.member_details = input;
            self
        }
        /// Appends an item to `unprocessed_accounts`.
        ///
        /// To override the contents of this collection use [`set_unprocessed_accounts`](Self::set_unprocessed_accounts).
        ///
        /// <p>The requested member accounts for which Detective was unable to return member
        /// details.</p>
        /// <p>For each account, provides the reason why the request could not be processed.</p>
        pub fn unprocessed_accounts(
            mut self,
            input: impl Into<crate::model::UnprocessedAccount>,
        ) -> Self {
            let mut v = self.unprocessed_accounts.unwrap_or_default();
            v.push(input.into());
            self.unprocessed_accounts = Some(v);
            self
        }
        /// <p>The requested member accounts for which Detective was unable to return member
        /// details.</p>
        /// <p>For each account, provides the reason why the request could not be processed.</p>
        pub fn set_unprocessed_accounts(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::UnprocessedAccount>>,
        ) -> Self {
            self.unprocessed_accounts = input;
            self
        }
        /// Consumes the builder and constructs a [`GetMembersOutput`](crate::output::GetMembersOutput)
        pub fn build(self) -> crate::output::GetMembersOutput {
            crate::output::GetMembersOutput {
                member_details: self.member_details,
                unprocessed_accounts: self.unprocessed_accounts,
            }
        }
    }
}
impl GetMembersOutput {
    /// Creates a new builder-style object to manufacture [`GetMembersOutput`](crate::output::GetMembersOutput)
    pub fn builder() -> crate::output::get_members_output::Builder {
        crate::output::get_members_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct DisassociateMembershipOutput {}
impl std::fmt::Debug for DisassociateMembershipOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("DisassociateMembershipOutput");
        formatter.finish()
    }
}
/// See [`DisassociateMembershipOutput`](crate::output::DisassociateMembershipOutput)
pub mod disassociate_membership_output {
    /// A builder for [`DisassociateMembershipOutput`](crate::output::DisassociateMembershipOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DisassociateMembershipOutput`](crate::output::DisassociateMembershipOutput)
        pub fn build(self) -> crate::output::DisassociateMembershipOutput {
            crate::output::DisassociateMembershipOutput {}
        }
    }
}
impl DisassociateMembershipOutput {
    /// Creates a new builder-style object to manufacture [`DisassociateMembershipOutput`](crate::output::DisassociateMembershipOutput)
    pub fn builder() -> crate::output::disassociate_membership_output::Builder {
        crate::output::disassociate_membership_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct DeleteMembersOutput {
    /// <p>The list of AWS account identifiers for the member accounts that Detective successfully
    /// deleted from the behavior graph.</p>
    pub account_ids: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p>The list of member accounts that Detective was not able to delete from the behavior graph.
    /// For each member account, provides the reason that the deletion could not be
    /// processed.</p>
    pub unprocessed_accounts: std::option::Option<std::vec::Vec<crate::model::UnprocessedAccount>>,
}
impl DeleteMembersOutput {
    /// <p>The list of AWS account identifiers for the member accounts that Detective successfully
    /// deleted from the behavior graph.</p>
    pub fn account_ids(&self) -> std::option::Option<&[std::string::String]> {
        self.account_ids.as_deref()
    }
    /// <p>The list of member accounts that Detective was not able to delete from the behavior graph.
    /// For each member account, provides the reason that the deletion could not be
    /// processed.</p>
    pub fn unprocessed_accounts(&self) -> std::option::Option<&[crate::model::UnprocessedAccount]> {
        self.unprocessed_accounts.as_deref()
    }
}
impl std::fmt::Debug for DeleteMembersOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("DeleteMembersOutput");
        formatter.field("account_ids", &self.account_ids);
        formatter.field("unprocessed_accounts", &self.unprocessed_accounts);
        formatter.finish()
    }
}
/// See [`DeleteMembersOutput`](crate::output::DeleteMembersOutput)
pub mod delete_members_output {
    /// A builder for [`DeleteMembersOutput`](crate::output::DeleteMembersOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) account_ids: std::option::Option<std::vec::Vec<std::string::String>>,
        pub(crate) unprocessed_accounts:
            std::option::Option<std::vec::Vec<crate::model::UnprocessedAccount>>,
    }
    impl Builder {
        /// Appends an item to `account_ids`.
        ///
        /// To override the contents of this collection use [`set_account_ids`](Self::set_account_ids).
        ///
        /// <p>The list of AWS account identifiers for the member accounts that Detective successfully
        /// deleted from the behavior graph.</p>
        pub fn account_ids(mut self, input: impl Into<std::string::String>) -> Self {
            let mut v = self.account_ids.unwrap_or_default();
            v.push(input.into());
            self.account_ids = Some(v);
            self
        }
        /// <p>The list of AWS account identifiers for the member accounts that Detective successfully
        /// deleted from the behavior graph.</p>
        pub fn set_account_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.account_ids = input;
            self
        }
        /// Appends an item to `unprocessed_accounts`.
        ///
        /// To override the contents of this collection use [`set_unprocessed_accounts`](Self::set_unprocessed_accounts).
        ///
        /// <p>The list of member accounts that Detective was not able to delete from the behavior graph.
        /// For each member account, provides the reason that the deletion could not be
        /// processed.</p>
        pub fn unprocessed_accounts(
            mut self,
            input: impl Into<crate::model::UnprocessedAccount>,
        ) -> Self {
            let mut v = self.unprocessed_accounts.unwrap_or_default();
            v.push(input.into());
            self.unprocessed_accounts = Some(v);
            self
        }
        /// <p>The list of member accounts that Detective was not able to delete from the behavior graph.
        /// For each member account, provides the reason that the deletion could not be
        /// processed.</p>
        pub fn set_unprocessed_accounts(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::UnprocessedAccount>>,
        ) -> Self {
            self.unprocessed_accounts = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteMembersOutput`](crate::output::DeleteMembersOutput)
        pub fn build(self) -> crate::output::DeleteMembersOutput {
            crate::output::DeleteMembersOutput {
                account_ids: self.account_ids,
                unprocessed_accounts: self.unprocessed_accounts,
            }
        }
    }
}
impl DeleteMembersOutput {
    /// Creates a new builder-style object to manufacture [`DeleteMembersOutput`](crate::output::DeleteMembersOutput)
    pub fn builder() -> crate::output::delete_members_output::Builder {
        crate::output::delete_members_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct DeleteGraphOutput {}
impl std::fmt::Debug for DeleteGraphOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("DeleteGraphOutput");
        formatter.finish()
    }
}
/// See [`DeleteGraphOutput`](crate::output::DeleteGraphOutput)
pub mod delete_graph_output {
    /// A builder for [`DeleteGraphOutput`](crate::output::DeleteGraphOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeleteGraphOutput`](crate::output::DeleteGraphOutput)
        pub fn build(self) -> crate::output::DeleteGraphOutput {
            crate::output::DeleteGraphOutput {}
        }
    }
}
impl DeleteGraphOutput {
    /// Creates a new builder-style object to manufacture [`DeleteGraphOutput`](crate::output::DeleteGraphOutput)
    pub fn builder() -> crate::output::delete_graph_output::Builder {
        crate::output::delete_graph_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct CreateMembersOutput {
    /// <p>The set of member account invitation requests that Detective was able to process. This
    /// includes accounts that are being verified, that failed verification, and that passed
    /// verification and are being sent an invitation.</p>
    pub members: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
    /// <p>The list of accounts for which Detective was unable to process the invitation request. For
    /// each account, the list provides the reason why the request could not be processed. The list
    /// includes accounts that are already member accounts in the behavior graph.</p>
    pub unprocessed_accounts: std::option::Option<std::vec::Vec<crate::model::UnprocessedAccount>>,
}
impl CreateMembersOutput {
    /// <p>The set of member account invitation requests that Detective was able to process. This
    /// includes accounts that are being verified, that failed verification, and that passed
    /// verification and are being sent an invitation.</p>
    pub fn members(&self) -> std::option::Option<&[crate::model::MemberDetail]> {
        self.members.as_deref()
    }
    /// <p>The list of accounts for which Detective was unable to process the invitation request. For
    /// each account, the list provides the reason why the request could not be processed. The list
    /// includes accounts that are already member accounts in the behavior graph.</p>
    pub fn unprocessed_accounts(&self) -> std::option::Option<&[crate::model::UnprocessedAccount]> {
        self.unprocessed_accounts.as_deref()
    }
}
impl std::fmt::Debug for CreateMembersOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("CreateMembersOutput");
        formatter.field("members", &self.members);
        formatter.field("unprocessed_accounts", &self.unprocessed_accounts);
        formatter.finish()
    }
}
/// See [`CreateMembersOutput`](crate::output::CreateMembersOutput)
pub mod create_members_output {
    /// A builder for [`CreateMembersOutput`](crate::output::CreateMembersOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) members: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
        pub(crate) unprocessed_accounts:
            std::option::Option<std::vec::Vec<crate::model::UnprocessedAccount>>,
    }
    impl Builder {
        /// Appends an item to `members`.
        ///
        /// To override the contents of this collection use [`set_members`](Self::set_members).
        ///
        /// <p>The set of member account invitation requests that Detective was able to process. This
        /// includes accounts that are being verified, that failed verification, and that passed
        /// verification and are being sent an invitation.</p>
        pub fn members(mut self, input: impl Into<crate::model::MemberDetail>) -> Self {
            let mut v = self.members.unwrap_or_default();
            v.push(input.into());
            self.members = Some(v);
            self
        }
        /// <p>The set of member account invitation requests that Detective was able to process. This
        /// includes accounts that are being verified, that failed verification, and that passed
        /// verification and are being sent an invitation.</p>
        pub fn set_members(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MemberDetail>>,
        ) -> Self {
            self.members = input;
            self
        }
        /// Appends an item to `unprocessed_accounts`.
        ///
        /// To override the contents of this collection use [`set_unprocessed_accounts`](Self::set_unprocessed_accounts).
        ///
        /// <p>The list of accounts for which Detective was unable to process the invitation request. For
        /// each account, the list provides the reason why the request could not be processed. The list
        /// includes accounts that are already member accounts in the behavior graph.</p>
        pub fn unprocessed_accounts(
            mut self,
            input: impl Into<crate::model::UnprocessedAccount>,
        ) -> Self {
            let mut v = self.unprocessed_accounts.unwrap_or_default();
            v.push(input.into());
            self.unprocessed_accounts = Some(v);
            self
        }
        /// <p>The list of accounts for which Detective was unable to process the invitation request. For
        /// each account, the list provides the reason why the request could not be processed. The list
        /// includes accounts that are already member accounts in the behavior graph.</p>
        pub fn set_unprocessed_accounts(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::UnprocessedAccount>>,
        ) -> Self {
            self.unprocessed_accounts = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateMembersOutput`](crate::output::CreateMembersOutput)
        pub fn build(self) -> crate::output::CreateMembersOutput {
            crate::output::CreateMembersOutput {
                members: self.members,
                unprocessed_accounts: self.unprocessed_accounts,
            }
        }
    }
}
impl CreateMembersOutput {
    /// Creates a new builder-style object to manufacture [`CreateMembersOutput`](crate::output::CreateMembersOutput)
    pub fn builder() -> crate::output::create_members_output::Builder {
        crate::output::create_members_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct CreateGraphOutput {
    /// <p>The ARN of the new behavior graph.</p>
    pub graph_arn: std::option::Option<std::string::String>,
}
impl CreateGraphOutput {
    /// <p>The ARN of the new behavior graph.</p>
    pub fn graph_arn(&self) -> std::option::Option<&str> {
        self.graph_arn.as_deref()
    }
}
impl std::fmt::Debug for CreateGraphOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("CreateGraphOutput");
        formatter.field("graph_arn", &self.graph_arn);
        formatter.finish()
    }
}
/// See [`CreateGraphOutput`](crate::output::CreateGraphOutput)
pub mod create_graph_output {
    /// A builder for [`CreateGraphOutput`](crate::output::CreateGraphOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) graph_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ARN of the new behavior graph.</p>
        pub fn graph_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.graph_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the new behavior graph.</p>
        pub fn set_graph_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.graph_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateGraphOutput`](crate::output::CreateGraphOutput)
        pub fn build(self) -> crate::output::CreateGraphOutput {
            crate::output::CreateGraphOutput {
                graph_arn: self.graph_arn,
            }
        }
    }
}
impl CreateGraphOutput {
    /// Creates a new builder-style object to manufacture [`CreateGraphOutput`](crate::output::CreateGraphOutput)
    pub fn builder() -> crate::output::create_graph_output::Builder {
        crate::output::create_graph_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct AcceptInvitationOutput {}
impl std::fmt::Debug for AcceptInvitationOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("AcceptInvitationOutput");
        formatter.finish()
    }
}
/// See [`AcceptInvitationOutput`](crate::output::AcceptInvitationOutput)
pub mod accept_invitation_output {
    /// A builder for [`AcceptInvitationOutput`](crate::output::AcceptInvitationOutput)
    #[non_exhaustive]
    #[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`AcceptInvitationOutput`](crate::output::AcceptInvitationOutput)
        pub fn build(self) -> crate::output::AcceptInvitationOutput {
            crate::output::AcceptInvitationOutput {}
        }
    }
}
impl AcceptInvitationOutput {
    /// Creates a new builder-style object to manufacture [`AcceptInvitationOutput`](crate::output::AcceptInvitationOutput)
    pub fn builder() -> crate::output::accept_invitation_output::Builder {
        crate::output::accept_invitation_output::Builder::default()
    }
}