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