/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace kendra { namespace Model { /** *

A list of users or sub groups that belong to a group. This is useful for user * context filtering, where search results are filtered based on the user or their * group access to documents.

See Also:

AWS * API Reference

*/ class GroupMembers { public: AWS_KENDRA_API GroupMembers(); AWS_KENDRA_API GroupMembers(Aws::Utils::Json::JsonView jsonValue); AWS_KENDRA_API GroupMembers& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_KENDRA_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

A list of sub groups that belong to a group. For example, the sub groups * "Research", "Engineering", and "Sales and Marketing" all belong to the group * "Company".

*/ inline const Aws::Vector& GetMemberGroups() const{ return m_memberGroups; } /** *

A list of sub groups that belong to a group. For example, the sub groups * "Research", "Engineering", and "Sales and Marketing" all belong to the group * "Company".

*/ inline bool MemberGroupsHasBeenSet() const { return m_memberGroupsHasBeenSet; } /** *

A list of sub groups that belong to a group. For example, the sub groups * "Research", "Engineering", and "Sales and Marketing" all belong to the group * "Company".

*/ inline void SetMemberGroups(const Aws::Vector& value) { m_memberGroupsHasBeenSet = true; m_memberGroups = value; } /** *

A list of sub groups that belong to a group. For example, the sub groups * "Research", "Engineering", and "Sales and Marketing" all belong to the group * "Company".

*/ inline void SetMemberGroups(Aws::Vector&& value) { m_memberGroupsHasBeenSet = true; m_memberGroups = std::move(value); } /** *

A list of sub groups that belong to a group. For example, the sub groups * "Research", "Engineering", and "Sales and Marketing" all belong to the group * "Company".

*/ inline GroupMembers& WithMemberGroups(const Aws::Vector& value) { SetMemberGroups(value); return *this;} /** *

A list of sub groups that belong to a group. For example, the sub groups * "Research", "Engineering", and "Sales and Marketing" all belong to the group * "Company".

*/ inline GroupMembers& WithMemberGroups(Aws::Vector&& value) { SetMemberGroups(std::move(value)); return *this;} /** *

A list of sub groups that belong to a group. For example, the sub groups * "Research", "Engineering", and "Sales and Marketing" all belong to the group * "Company".

*/ inline GroupMembers& AddMemberGroups(const MemberGroup& value) { m_memberGroupsHasBeenSet = true; m_memberGroups.push_back(value); return *this; } /** *

A list of sub groups that belong to a group. For example, the sub groups * "Research", "Engineering", and "Sales and Marketing" all belong to the group * "Company".

*/ inline GroupMembers& AddMemberGroups(MemberGroup&& value) { m_memberGroupsHasBeenSet = true; m_memberGroups.push_back(std::move(value)); return *this; } /** *

A list of users that belong to a group. For example, a list of interns all * belong to the "Interns" group.

*/ inline const Aws::Vector& GetMemberUsers() const{ return m_memberUsers; } /** *

A list of users that belong to a group. For example, a list of interns all * belong to the "Interns" group.

*/ inline bool MemberUsersHasBeenSet() const { return m_memberUsersHasBeenSet; } /** *

A list of users that belong to a group. For example, a list of interns all * belong to the "Interns" group.

*/ inline void SetMemberUsers(const Aws::Vector& value) { m_memberUsersHasBeenSet = true; m_memberUsers = value; } /** *

A list of users that belong to a group. For example, a list of interns all * belong to the "Interns" group.

*/ inline void SetMemberUsers(Aws::Vector&& value) { m_memberUsersHasBeenSet = true; m_memberUsers = std::move(value); } /** *

A list of users that belong to a group. For example, a list of interns all * belong to the "Interns" group.

*/ inline GroupMembers& WithMemberUsers(const Aws::Vector& value) { SetMemberUsers(value); return *this;} /** *

A list of users that belong to a group. For example, a list of interns all * belong to the "Interns" group.

*/ inline GroupMembers& WithMemberUsers(Aws::Vector&& value) { SetMemberUsers(std::move(value)); return *this;} /** *

A list of users that belong to a group. For example, a list of interns all * belong to the "Interns" group.

*/ inline GroupMembers& AddMemberUsers(const MemberUser& value) { m_memberUsersHasBeenSet = true; m_memberUsers.push_back(value); return *this; } /** *

A list of users that belong to a group. For example, a list of interns all * belong to the "Interns" group.

*/ inline GroupMembers& AddMemberUsers(MemberUser&& value) { m_memberUsersHasBeenSet = true; m_memberUsers.push_back(std::move(value)); return *this; } /** *

If you have more than 1000 users and/or sub groups for a single group, you * need to provide the path to the S3 file that lists your users and sub groups for * a group. Your sub groups can contain more than 1000 users, but the list of sub * groups that belong to a group (and/or users) must be no more than 1000.

*

You can download this example * S3 file that uses the correct format for listing group members. Note, * dataSourceId is optional. The value of type for a * group is always GROUP and for a user it is always * USER.

*/ inline const S3Path& GetS3PathforGroupMembers() const{ return m_s3PathforGroupMembers; } /** *

If you have more than 1000 users and/or sub groups for a single group, you * need to provide the path to the S3 file that lists your users and sub groups for * a group. Your sub groups can contain more than 1000 users, but the list of sub * groups that belong to a group (and/or users) must be no more than 1000.

*

You can download this example * S3 file that uses the correct format for listing group members. Note, * dataSourceId is optional. The value of type for a * group is always GROUP and for a user it is always * USER.

*/ inline bool S3PathforGroupMembersHasBeenSet() const { return m_s3PathforGroupMembersHasBeenSet; } /** *

If you have more than 1000 users and/or sub groups for a single group, you * need to provide the path to the S3 file that lists your users and sub groups for * a group. Your sub groups can contain more than 1000 users, but the list of sub * groups that belong to a group (and/or users) must be no more than 1000.

*

You can download this example * S3 file that uses the correct format for listing group members. Note, * dataSourceId is optional. The value of type for a * group is always GROUP and for a user it is always * USER.

*/ inline void SetS3PathforGroupMembers(const S3Path& value) { m_s3PathforGroupMembersHasBeenSet = true; m_s3PathforGroupMembers = value; } /** *

If you have more than 1000 users and/or sub groups for a single group, you * need to provide the path to the S3 file that lists your users and sub groups for * a group. Your sub groups can contain more than 1000 users, but the list of sub * groups that belong to a group (and/or users) must be no more than 1000.

*

You can download this example * S3 file that uses the correct format for listing group members. Note, * dataSourceId is optional. The value of type for a * group is always GROUP and for a user it is always * USER.

*/ inline void SetS3PathforGroupMembers(S3Path&& value) { m_s3PathforGroupMembersHasBeenSet = true; m_s3PathforGroupMembers = std::move(value); } /** *

If you have more than 1000 users and/or sub groups for a single group, you * need to provide the path to the S3 file that lists your users and sub groups for * a group. Your sub groups can contain more than 1000 users, but the list of sub * groups that belong to a group (and/or users) must be no more than 1000.

*

You can download this example * S3 file that uses the correct format for listing group members. Note, * dataSourceId is optional. The value of type for a * group is always GROUP and for a user it is always * USER.

*/ inline GroupMembers& WithS3PathforGroupMembers(const S3Path& value) { SetS3PathforGroupMembers(value); return *this;} /** *

If you have more than 1000 users and/or sub groups for a single group, you * need to provide the path to the S3 file that lists your users and sub groups for * a group. Your sub groups can contain more than 1000 users, but the list of sub * groups that belong to a group (and/or users) must be no more than 1000.

*

You can download this example * S3 file that uses the correct format for listing group members. Note, * dataSourceId is optional. The value of type for a * group is always GROUP and for a user it is always * USER.

*/ inline GroupMembers& WithS3PathforGroupMembers(S3Path&& value) { SetS3PathforGroupMembers(std::move(value)); return *this;} private: Aws::Vector m_memberGroups; bool m_memberGroupsHasBeenSet = false; Aws::Vector m_memberUsers; bool m_memberUsersHasBeenSet = false; S3Path m_s3PathforGroupMembers; bool m_s3PathforGroupMembersHasBeenSet = false; }; } // namespace Model } // namespace kendra } // namespace Aws