/** * 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 IdentityStore { /** *

The Identity Store service used by AWS IAM Identity Center (successor to AWS * Single Sign-On) provides a single place to retrieve all of your identities * (users and groups). For more information, see the IAM * Identity Center User Guide.

 <note> <p>Although
   * AWS Single Sign-On was renamed, the <code>sso</code> and
   * <code>identitystore</code> API namespaces will continue to retain
   * their original name for backward compatibility purposes. For more information,
   * see <a
   * href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed">IAM
   * Identity Center rename</a>.</p> </note> <p>This
   * reference guide describes the identity store operations that you can call
   * programatically and includes detailed information about data types and
   * errors.</p> 
*/ class AWS_IDENTITYSTORE_API IdentityStoreClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef IdentityStoreClientConfiguration ClientConfigurationType; typedef IdentityStoreEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ IdentityStoreClient(const Aws::IdentityStore::IdentityStoreClientConfiguration& clientConfiguration = Aws::IdentityStore::IdentityStoreClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ IdentityStoreClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::IdentityStore::IdentityStoreClientConfiguration& clientConfiguration = Aws::IdentityStore::IdentityStoreClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ IdentityStoreClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::IdentityStore::IdentityStoreClientConfiguration& clientConfiguration = Aws::IdentityStore::IdentityStoreClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ IdentityStoreClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ IdentityStoreClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ IdentityStoreClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~IdentityStoreClient(); /** *

Creates a group within the specified identity store.

See Also:

* AWS * API Reference

*/ virtual Model::CreateGroupOutcome CreateGroup(const Model::CreateGroupRequest& request) const; /** * A Callable wrapper for CreateGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateGroupOutcomeCallable CreateGroupCallable(const CreateGroupRequestT& request) const { return SubmitCallable(&IdentityStoreClient::CreateGroup, request); } /** * An Async wrapper for CreateGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateGroupAsync(const CreateGroupRequestT& request, const CreateGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::CreateGroup, request, handler, context); } /** *

Creates a relationship between a member and a group. The following * identifiers must be specified: GroupId, * IdentityStoreId, and MemberId.

See * Also:

AWS * API Reference

*/ virtual Model::CreateGroupMembershipOutcome CreateGroupMembership(const Model::CreateGroupMembershipRequest& request) const; /** * A Callable wrapper for CreateGroupMembership that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateGroupMembershipOutcomeCallable CreateGroupMembershipCallable(const CreateGroupMembershipRequestT& request) const { return SubmitCallable(&IdentityStoreClient::CreateGroupMembership, request); } /** * An Async wrapper for CreateGroupMembership that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateGroupMembershipAsync(const CreateGroupMembershipRequestT& request, const CreateGroupMembershipResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::CreateGroupMembership, request, handler, context); } /** *

Creates a user within the specified identity store.

See Also:

* AWS * API Reference

*/ virtual Model::CreateUserOutcome CreateUser(const Model::CreateUserRequest& request) const; /** * A Callable wrapper for CreateUser that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateUserOutcomeCallable CreateUserCallable(const CreateUserRequestT& request) const { return SubmitCallable(&IdentityStoreClient::CreateUser, request); } /** * An Async wrapper for CreateUser that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateUserAsync(const CreateUserRequestT& request, const CreateUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::CreateUser, request, handler, context); } /** *

Delete a group within an identity store given * GroupId.

See Also:

AWS * API Reference

*/ virtual Model::DeleteGroupOutcome DeleteGroup(const Model::DeleteGroupRequest& request) const; /** * A Callable wrapper for DeleteGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteGroupOutcomeCallable DeleteGroupCallable(const DeleteGroupRequestT& request) const { return SubmitCallable(&IdentityStoreClient::DeleteGroup, request); } /** * An Async wrapper for DeleteGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteGroupAsync(const DeleteGroupRequestT& request, const DeleteGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::DeleteGroup, request, handler, context); } /** *

Delete a membership within a group given * MembershipId.

See Also:

AWS * API Reference

*/ virtual Model::DeleteGroupMembershipOutcome DeleteGroupMembership(const Model::DeleteGroupMembershipRequest& request) const; /** * A Callable wrapper for DeleteGroupMembership that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteGroupMembershipOutcomeCallable DeleteGroupMembershipCallable(const DeleteGroupMembershipRequestT& request) const { return SubmitCallable(&IdentityStoreClient::DeleteGroupMembership, request); } /** * An Async wrapper for DeleteGroupMembership that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteGroupMembershipAsync(const DeleteGroupMembershipRequestT& request, const DeleteGroupMembershipResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::DeleteGroupMembership, request, handler, context); } /** *

Deletes a user within an identity store given * UserId.

See Also:

AWS * API Reference

*/ virtual Model::DeleteUserOutcome DeleteUser(const Model::DeleteUserRequest& request) const; /** * A Callable wrapper for DeleteUser that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteUserOutcomeCallable DeleteUserCallable(const DeleteUserRequestT& request) const { return SubmitCallable(&IdentityStoreClient::DeleteUser, request); } /** * An Async wrapper for DeleteUser that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteUserAsync(const DeleteUserRequestT& request, const DeleteUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::DeleteUser, request, handler, context); } /** *

Retrieves the group metadata and attributes from GroupId in an * identity store.

See Also:

AWS * API Reference

*/ virtual Model::DescribeGroupOutcome DescribeGroup(const Model::DescribeGroupRequest& request) const; /** * A Callable wrapper for DescribeGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeGroupOutcomeCallable DescribeGroupCallable(const DescribeGroupRequestT& request) const { return SubmitCallable(&IdentityStoreClient::DescribeGroup, request); } /** * An Async wrapper for DescribeGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeGroupAsync(const DescribeGroupRequestT& request, const DescribeGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::DescribeGroup, request, handler, context); } /** *

Retrieves membership metadata and attributes from MembershipId * in an identity store.

See Also:

AWS * API Reference

*/ virtual Model::DescribeGroupMembershipOutcome DescribeGroupMembership(const Model::DescribeGroupMembershipRequest& request) const; /** * A Callable wrapper for DescribeGroupMembership that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeGroupMembershipOutcomeCallable DescribeGroupMembershipCallable(const DescribeGroupMembershipRequestT& request) const { return SubmitCallable(&IdentityStoreClient::DescribeGroupMembership, request); } /** * An Async wrapper for DescribeGroupMembership that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeGroupMembershipAsync(const DescribeGroupMembershipRequestT& request, const DescribeGroupMembershipResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::DescribeGroupMembership, request, handler, context); } /** *

Retrieves the user metadata and attributes from the UserId in an * identity store.

See Also:

AWS * API Reference

*/ virtual Model::DescribeUserOutcome DescribeUser(const Model::DescribeUserRequest& request) const; /** * A Callable wrapper for DescribeUser that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeUserOutcomeCallable DescribeUserCallable(const DescribeUserRequestT& request) const { return SubmitCallable(&IdentityStoreClient::DescribeUser, request); } /** * An Async wrapper for DescribeUser that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeUserAsync(const DescribeUserRequestT& request, const DescribeUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::DescribeUser, request, handler, context); } /** *

Retrieves GroupId in an identity store.

See Also:

* AWS * API Reference

*/ virtual Model::GetGroupIdOutcome GetGroupId(const Model::GetGroupIdRequest& request) const; /** * A Callable wrapper for GetGroupId that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetGroupIdOutcomeCallable GetGroupIdCallable(const GetGroupIdRequestT& request) const { return SubmitCallable(&IdentityStoreClient::GetGroupId, request); } /** * An Async wrapper for GetGroupId that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetGroupIdAsync(const GetGroupIdRequestT& request, const GetGroupIdResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::GetGroupId, request, handler, context); } /** *

Retrieves the MembershipId in an identity store.

See * Also:

AWS * API Reference

*/ virtual Model::GetGroupMembershipIdOutcome GetGroupMembershipId(const Model::GetGroupMembershipIdRequest& request) const; /** * A Callable wrapper for GetGroupMembershipId that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetGroupMembershipIdOutcomeCallable GetGroupMembershipIdCallable(const GetGroupMembershipIdRequestT& request) const { return SubmitCallable(&IdentityStoreClient::GetGroupMembershipId, request); } /** * An Async wrapper for GetGroupMembershipId that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetGroupMembershipIdAsync(const GetGroupMembershipIdRequestT& request, const GetGroupMembershipIdResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::GetGroupMembershipId, request, handler, context); } /** *

Retrieves the UserId in an identity store.

See * Also:

AWS * API Reference

*/ virtual Model::GetUserIdOutcome GetUserId(const Model::GetUserIdRequest& request) const; /** * A Callable wrapper for GetUserId that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetUserIdOutcomeCallable GetUserIdCallable(const GetUserIdRequestT& request) const { return SubmitCallable(&IdentityStoreClient::GetUserId, request); } /** * An Async wrapper for GetUserId that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetUserIdAsync(const GetUserIdRequestT& request, const GetUserIdResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::GetUserId, request, handler, context); } /** *

Checks the user's membership in all requested groups and returns if the * member exists in all queried groups.

See Also:

AWS * API Reference

*/ virtual Model::IsMemberInGroupsOutcome IsMemberInGroups(const Model::IsMemberInGroupsRequest& request) const; /** * A Callable wrapper for IsMemberInGroups that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::IsMemberInGroupsOutcomeCallable IsMemberInGroupsCallable(const IsMemberInGroupsRequestT& request) const { return SubmitCallable(&IdentityStoreClient::IsMemberInGroups, request); } /** * An Async wrapper for IsMemberInGroups that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void IsMemberInGroupsAsync(const IsMemberInGroupsRequestT& request, const IsMemberInGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::IsMemberInGroups, request, handler, context); } /** *

For the specified group in the specified identity store, returns the list of * all GroupMembership objects and returns results in paginated * form.

See Also:

AWS * API Reference

*/ virtual Model::ListGroupMembershipsOutcome ListGroupMemberships(const Model::ListGroupMembershipsRequest& request) const; /** * A Callable wrapper for ListGroupMemberships that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListGroupMembershipsOutcomeCallable ListGroupMembershipsCallable(const ListGroupMembershipsRequestT& request) const { return SubmitCallable(&IdentityStoreClient::ListGroupMemberships, request); } /** * An Async wrapper for ListGroupMemberships that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListGroupMembershipsAsync(const ListGroupMembershipsRequestT& request, const ListGroupMembershipsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::ListGroupMemberships, request, handler, context); } /** *

For the specified member in the specified identity store, returns the list of * all GroupMembership objects and returns results in paginated * form.

See Also:

AWS * API Reference

*/ virtual Model::ListGroupMembershipsForMemberOutcome ListGroupMembershipsForMember(const Model::ListGroupMembershipsForMemberRequest& request) const; /** * A Callable wrapper for ListGroupMembershipsForMember that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListGroupMembershipsForMemberOutcomeCallable ListGroupMembershipsForMemberCallable(const ListGroupMembershipsForMemberRequestT& request) const { return SubmitCallable(&IdentityStoreClient::ListGroupMembershipsForMember, request); } /** * An Async wrapper for ListGroupMembershipsForMember that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListGroupMembershipsForMemberAsync(const ListGroupMembershipsForMemberRequestT& request, const ListGroupMembershipsForMemberResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::ListGroupMembershipsForMember, request, handler, context); } /** *

Lists all groups in the identity store. Returns a paginated list of complete * Group objects. Filtering for a Group by the * DisplayName attribute is deprecated. Instead, use the * GetGroupId API action.

See Also:

AWS * API Reference

*/ virtual Model::ListGroupsOutcome ListGroups(const Model::ListGroupsRequest& request) const; /** * A Callable wrapper for ListGroups that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListGroupsOutcomeCallable ListGroupsCallable(const ListGroupsRequestT& request) const { return SubmitCallable(&IdentityStoreClient::ListGroups, request); } /** * An Async wrapper for ListGroups that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListGroupsAsync(const ListGroupsRequestT& request, const ListGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::ListGroups, request, handler, context); } /** *

Lists all users in the identity store. Returns a paginated list of complete * User objects. Filtering for a User by the * UserName attribute is deprecated. Instead, use the * GetUserId API action.

See Also:

AWS * API Reference

*/ virtual Model::ListUsersOutcome ListUsers(const Model::ListUsersRequest& request) const; /** * A Callable wrapper for ListUsers that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListUsersOutcomeCallable ListUsersCallable(const ListUsersRequestT& request) const { return SubmitCallable(&IdentityStoreClient::ListUsers, request); } /** * An Async wrapper for ListUsers that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListUsersAsync(const ListUsersRequestT& request, const ListUsersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::ListUsers, request, handler, context); } /** *

For the specified group in the specified identity store, updates the group * metadata and attributes.

See Also:

AWS * API Reference

*/ virtual Model::UpdateGroupOutcome UpdateGroup(const Model::UpdateGroupRequest& request) const; /** * A Callable wrapper for UpdateGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateGroupOutcomeCallable UpdateGroupCallable(const UpdateGroupRequestT& request) const { return SubmitCallable(&IdentityStoreClient::UpdateGroup, request); } /** * An Async wrapper for UpdateGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateGroupAsync(const UpdateGroupRequestT& request, const UpdateGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::UpdateGroup, request, handler, context); } /** *

For the specified user in the specified identity store, updates the user * metadata and attributes.

See Also:

AWS * API Reference

*/ virtual Model::UpdateUserOutcome UpdateUser(const Model::UpdateUserRequest& request) const; /** * A Callable wrapper for UpdateUser that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateUserOutcomeCallable UpdateUserCallable(const UpdateUserRequestT& request) const { return SubmitCallable(&IdentityStoreClient::UpdateUser, request); } /** * An Async wrapper for UpdateUser that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateUserAsync(const UpdateUserRequestT& request, const UpdateUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IdentityStoreClient::UpdateUser, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const IdentityStoreClientConfiguration& clientConfiguration); IdentityStoreClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace IdentityStore } // namespace Aws