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

Detective uses machine learning and purpose-built visualizations to help you * to analyze and investigate security issues across your Amazon Web Services * (Amazon Web Services) workloads. Detective automatically extracts time-based * events such as login attempts, API calls, and network traffic from CloudTrail * and Amazon Virtual Private Cloud (Amazon VPC) flow logs. It also extracts * findings detected by Amazon GuardDuty.

The Detective API primarily * supports the creation and management of behavior graphs. A behavior graph * contains the extracted data from a set of member accounts, and is created and * managed by an administrator account.

To add a member account to the * behavior graph, the administrator account sends an invitation to the account. * When the account accepts the invitation, it becomes a member account in the * behavior graph.

Detective is also integrated with Organizations. The * organization management account designates the Detective administrator account * for the organization. That account becomes the administrator account for the * organization behavior graph. The Detective administrator account is also the * delegated administrator account for Detective in Organizations.

The * Detective administrator account can enable any organization account as a member * account in the organization behavior graph. The organization accounts do not * receive invitations. The Detective administrator account can also invite other * accounts to the organization behavior graph.

Every behavior graph is * specific to a Region. You can only use the API to manage behavior graphs that * belong to the Region that is associated with the currently selected * endpoint.

The administrator account for a behavior graph can use the * Detective API to do the following:

  • Enable and disable * Detective. Enabling Detective creates a new behavior graph.

  • *

    View the list of member accounts in a behavior graph.

  • Add * member accounts to a behavior graph.

  • Remove member accounts * from a behavior graph.

  • Apply tags to a behavior graph.

    *

The organization management account can use the Detective API to * select the delegated administrator for Detective.

The Detective * administrator account for an organization can use the Detective API to do the * following:

  • Perform all of the functions of an administrator * account.

  • Determine whether to automatically enable new * organization accounts as member accounts in the organization behavior graph.

    *

An invited member account can use the Detective API to do the * following:

  • View the list of behavior graphs that they are * invited to.

  • Accept an invitation to contribute to a behavior * graph.

  • Decline an invitation to contribute to a behavior * graph.

  • Remove their account from a behavior graph.

  • *

All API actions are logged as CloudTrail events. See Logging * Detective API Calls with CloudTrail.

We replaced the term * "master account" with the term "administrator account." An administrator account * is used to centrally manage multiple accounts. In the case of Detective, the * administrator account manages the accounts in their behavior graph.

*/ class AWS_DETECTIVE_API DetectiveClient : 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 DetectiveClientConfiguration ClientConfigurationType; typedef DetectiveEndpointProvider 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. */ DetectiveClient(const Aws::Detective::DetectiveClientConfiguration& clientConfiguration = Aws::Detective::DetectiveClientConfiguration(), 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. */ DetectiveClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::Detective::DetectiveClientConfiguration& clientConfiguration = Aws::Detective::DetectiveClientConfiguration()); /** * 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 */ DetectiveClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::Detective::DetectiveClientConfiguration& clientConfiguration = Aws::Detective::DetectiveClientConfiguration()); /* 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. */ DetectiveClient(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. */ DetectiveClient(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 */ DetectiveClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~DetectiveClient(); /** *

Accepts an invitation for the member account to contribute data to a behavior * graph. This operation can only be called by an invited member account.

*

The request provides the ARN of behavior graph.

The member account * status in the graph must be INVITED.

See Also:

AWS * API Reference

*/ virtual Model::AcceptInvitationOutcome AcceptInvitation(const Model::AcceptInvitationRequest& request) const; /** * A Callable wrapper for AcceptInvitation that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AcceptInvitationOutcomeCallable AcceptInvitationCallable(const AcceptInvitationRequestT& request) const { return SubmitCallable(&DetectiveClient::AcceptInvitation, request); } /** * An Async wrapper for AcceptInvitation that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AcceptInvitationAsync(const AcceptInvitationRequestT& request, const AcceptInvitationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::AcceptInvitation, request, handler, context); } /** *

Gets data source package information for the behavior graph.

See * Also:

AWS * API Reference

*/ virtual Model::BatchGetGraphMemberDatasourcesOutcome BatchGetGraphMemberDatasources(const Model::BatchGetGraphMemberDatasourcesRequest& request) const; /** * A Callable wrapper for BatchGetGraphMemberDatasources that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchGetGraphMemberDatasourcesOutcomeCallable BatchGetGraphMemberDatasourcesCallable(const BatchGetGraphMemberDatasourcesRequestT& request) const { return SubmitCallable(&DetectiveClient::BatchGetGraphMemberDatasources, request); } /** * An Async wrapper for BatchGetGraphMemberDatasources that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchGetGraphMemberDatasourcesAsync(const BatchGetGraphMemberDatasourcesRequestT& request, const BatchGetGraphMemberDatasourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::BatchGetGraphMemberDatasources, request, handler, context); } /** *

Gets information on the data source package history for an * account.

See Also:

AWS * API Reference

*/ virtual Model::BatchGetMembershipDatasourcesOutcome BatchGetMembershipDatasources(const Model::BatchGetMembershipDatasourcesRequest& request) const; /** * A Callable wrapper for BatchGetMembershipDatasources that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchGetMembershipDatasourcesOutcomeCallable BatchGetMembershipDatasourcesCallable(const BatchGetMembershipDatasourcesRequestT& request) const { return SubmitCallable(&DetectiveClient::BatchGetMembershipDatasources, request); } /** * An Async wrapper for BatchGetMembershipDatasources that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchGetMembershipDatasourcesAsync(const BatchGetMembershipDatasourcesRequestT& request, const BatchGetMembershipDatasourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::BatchGetMembershipDatasources, request, handler, context); } /** *

Creates a new behavior graph for the calling account, and sets that account * as the administrator account. This operation is called by the account that is * enabling Detective.

Before you try to enable Detective, make sure that * your account has been enrolled in Amazon GuardDuty for at least 48 hours. If you * do not meet this requirement, you cannot enable Detective. If you do meet the * GuardDuty prerequisite, then when you make the request to enable Detective, it * checks whether your data volume is within the Detective quota. If it exceeds the * quota, then you cannot enable Detective.

The operation also enables * Detective for the calling account in the currently selected Region. It returns * the ARN of the new behavior graph.

CreateGraph triggers a * process to create the corresponding data tables for the new behavior graph.

*

An account can only be the administrator account for one behavior graph * within a Region. If the same account calls CreateGraph with the * same administrator account, it always returns the same behavior graph ARN. It * does not create a new behavior graph.

See Also:

AWS * API Reference

*/ virtual Model::CreateGraphOutcome CreateGraph(const Model::CreateGraphRequest& request) const; /** * A Callable wrapper for CreateGraph that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateGraphOutcomeCallable CreateGraphCallable(const CreateGraphRequestT& request) const { return SubmitCallable(&DetectiveClient::CreateGraph, request); } /** * An Async wrapper for CreateGraph that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateGraphAsync(const CreateGraphRequestT& request, const CreateGraphResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::CreateGraph, request, handler, context); } /** *

CreateMembers is used to send invitations to accounts. For the * organization behavior graph, the Detective administrator account uses * CreateMembers to enable organization accounts as member * accounts.

For invited accounts, CreateMembers sends a * request to invite the specified Amazon Web Services accounts to be member * accounts in the behavior graph. This operation can only be called by the * administrator account for a behavior graph.

CreateMembers * verifies the accounts and then invites the verified accounts. The administrator * can optionally specify to not send invitation emails to the member accounts. * This would be used when the administrator manages their member accounts * centrally.

For organization accounts in the organization behavior graph, * CreateMembers attempts to enable the accounts. The organization * accounts do not receive invitations.

The request provides the behavior * graph ARN and the list of accounts to invite or to enable.

The response * separates the requested accounts into two lists:

  • The accounts * that CreateMembers was able to process. For invited accounts, * includes member accounts that are being verified, that have passed verification * and are to be invited, and that have failed verification. For organization * accounts in the organization behavior graph, includes accounts that can be * enabled and that cannot be enabled.

  • The accounts that * CreateMembers was unable to process. This list includes accounts * that were already invited to be member accounts in the behavior graph.

  • *

See Also:

AWS * API Reference

*/ virtual Model::CreateMembersOutcome CreateMembers(const Model::CreateMembersRequest& request) const; /** * A Callable wrapper for CreateMembers that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateMembersOutcomeCallable CreateMembersCallable(const CreateMembersRequestT& request) const { return SubmitCallable(&DetectiveClient::CreateMembers, request); } /** * An Async wrapper for CreateMembers that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateMembersAsync(const CreateMembersRequestT& request, const CreateMembersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::CreateMembers, request, handler, context); } /** *

Disables the specified behavior graph and queues it to be deleted. This * operation removes the behavior graph from each member account's list of behavior * graphs.

DeleteGraph can only be called by the administrator * account for a behavior graph.

See Also:

AWS * API Reference

*/ virtual Model::DeleteGraphOutcome DeleteGraph(const Model::DeleteGraphRequest& request) const; /** * A Callable wrapper for DeleteGraph that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteGraphOutcomeCallable DeleteGraphCallable(const DeleteGraphRequestT& request) const { return SubmitCallable(&DetectiveClient::DeleteGraph, request); } /** * An Async wrapper for DeleteGraph that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteGraphAsync(const DeleteGraphRequestT& request, const DeleteGraphResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::DeleteGraph, request, handler, context); } /** *

Removes the specified member accounts from the behavior graph. The removed * accounts no longer contribute data to the behavior graph. This operation can * only be called by the administrator account for the behavior graph.

For * invited accounts, the removed accounts are deleted from the list of accounts in * the behavior graph. To restore the account, the administrator account must send * another invitation.

For organization accounts in the organization * behavior graph, the Detective administrator account can always enable the * organization account again. Organization accounts that are not enabled as member * accounts are not included in the ListMembers results for the * organization behavior graph.

An administrator account cannot use * DeleteMembers to remove their own account from the behavior graph. * To disable a behavior graph, the administrator account uses the * DeleteGraph API method.

See Also:

AWS * API Reference

*/ virtual Model::DeleteMembersOutcome DeleteMembers(const Model::DeleteMembersRequest& request) const; /** * A Callable wrapper for DeleteMembers that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteMembersOutcomeCallable DeleteMembersCallable(const DeleteMembersRequestT& request) const { return SubmitCallable(&DetectiveClient::DeleteMembers, request); } /** * An Async wrapper for DeleteMembers that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteMembersAsync(const DeleteMembersRequestT& request, const DeleteMembersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::DeleteMembers, request, handler, context); } /** *

Returns information about the configuration for the organization behavior * graph. Currently indicates whether to automatically enable new organization * accounts as member accounts.

Can only be called by the Detective * administrator account for the organization.

See Also:

AWS * API Reference

*/ virtual Model::DescribeOrganizationConfigurationOutcome DescribeOrganizationConfiguration(const Model::DescribeOrganizationConfigurationRequest& request) const; /** * A Callable wrapper for DescribeOrganizationConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeOrganizationConfigurationOutcomeCallable DescribeOrganizationConfigurationCallable(const DescribeOrganizationConfigurationRequestT& request) const { return SubmitCallable(&DetectiveClient::DescribeOrganizationConfiguration, request); } /** * An Async wrapper for DescribeOrganizationConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeOrganizationConfigurationAsync(const DescribeOrganizationConfigurationRequestT& request, const DescribeOrganizationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::DescribeOrganizationConfiguration, request, handler, context); } /** *

Removes the Detective administrator account in the current Region. Deletes * the organization behavior graph.

Can only be called by the organization * management account.

Removing the Detective administrator account does not * affect the delegated administrator account for Detective in Organizations.

*

To remove the delegated administrator account in Organizations, use the * Organizations API. Removing the delegated administrator account also removes the * Detective administrator account in all Regions, except for Regions where the * Detective administrator account is the organization management * account.

See Also:

AWS * API Reference

*/ virtual Model::DisableOrganizationAdminAccountOutcome DisableOrganizationAdminAccount() const; /** * A Callable wrapper for DisableOrganizationAdminAccount that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisableOrganizationAdminAccountOutcomeCallable DisableOrganizationAdminAccountCallable() const { return SubmitCallable(&DetectiveClient::DisableOrganizationAdminAccount); } /** * An Async wrapper for DisableOrganizationAdminAccount that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisableOrganizationAdminAccountAsync(const DisableOrganizationAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::DisableOrganizationAdminAccount, handler, context); } /** *

Removes the member account from the specified behavior graph. This operation * can only be called by an invited member account that has the * ENABLED status.

DisassociateMembership cannot * be called by an organization account in the organization behavior graph. For the * organization behavior graph, the Detective administrator account determines * which organization accounts to enable or disable as member * accounts.

See Also:

AWS * API Reference

*/ virtual Model::DisassociateMembershipOutcome DisassociateMembership(const Model::DisassociateMembershipRequest& request) const; /** * A Callable wrapper for DisassociateMembership that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisassociateMembershipOutcomeCallable DisassociateMembershipCallable(const DisassociateMembershipRequestT& request) const { return SubmitCallable(&DetectiveClient::DisassociateMembership, request); } /** * An Async wrapper for DisassociateMembership that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisassociateMembershipAsync(const DisassociateMembershipRequestT& request, const DisassociateMembershipResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::DisassociateMembership, request, handler, context); } /** *

Designates the Detective administrator account for the organization in the * current Region.

If the account does not have Detective enabled, then * enables Detective for that account and creates a new behavior graph.

Can * only be called by the organization management account.

If the * organization has a delegated administrator account in Organizations, then the * Detective administrator account must be either the delegated administrator * account or the organization management account.

If the organization does * not have a delegated administrator account in Organizations, then you can choose * any account in the organization. If you choose an account other than the * organization management account, Detective calls Organizations to make that * account the delegated administrator account for Detective. The organization * management account cannot be the delegated administrator account.

See * Also:

AWS * API Reference

*/ virtual Model::EnableOrganizationAdminAccountOutcome EnableOrganizationAdminAccount(const Model::EnableOrganizationAdminAccountRequest& request) const; /** * A Callable wrapper for EnableOrganizationAdminAccount that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::EnableOrganizationAdminAccountOutcomeCallable EnableOrganizationAdminAccountCallable(const EnableOrganizationAdminAccountRequestT& request) const { return SubmitCallable(&DetectiveClient::EnableOrganizationAdminAccount, request); } /** * An Async wrapper for EnableOrganizationAdminAccount that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void EnableOrganizationAdminAccountAsync(const EnableOrganizationAdminAccountRequestT& request, const EnableOrganizationAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::EnableOrganizationAdminAccount, request, handler, context); } /** *

Returns the membership details for specified member accounts for a behavior * graph.

See Also:

AWS * API Reference

*/ virtual Model::GetMembersOutcome GetMembers(const Model::GetMembersRequest& request) const; /** * A Callable wrapper for GetMembers that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetMembersOutcomeCallable GetMembersCallable(const GetMembersRequestT& request) const { return SubmitCallable(&DetectiveClient::GetMembers, request); } /** * An Async wrapper for GetMembers that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetMembersAsync(const GetMembersRequestT& request, const GetMembersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::GetMembers, request, handler, context); } /** *

Lists data source packages in the behavior graph.

See Also:

* AWS * API Reference

*/ virtual Model::ListDatasourcePackagesOutcome ListDatasourcePackages(const Model::ListDatasourcePackagesRequest& request) const; /** * A Callable wrapper for ListDatasourcePackages that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListDatasourcePackagesOutcomeCallable ListDatasourcePackagesCallable(const ListDatasourcePackagesRequestT& request) const { return SubmitCallable(&DetectiveClient::ListDatasourcePackages, request); } /** * An Async wrapper for ListDatasourcePackages that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListDatasourcePackagesAsync(const ListDatasourcePackagesRequestT& request, const ListDatasourcePackagesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::ListDatasourcePackages, request, handler, context); } /** *

Returns the list of behavior graphs that the calling account is an * administrator account of. This operation can only be called by an administrator * account.

Because an account can currently only be the administrator of * one behavior graph within a Region, the results always contain a single behavior * graph.

See Also:

AWS * API Reference

*/ virtual Model::ListGraphsOutcome ListGraphs(const Model::ListGraphsRequest& request) const; /** * A Callable wrapper for ListGraphs that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListGraphsOutcomeCallable ListGraphsCallable(const ListGraphsRequestT& request) const { return SubmitCallable(&DetectiveClient::ListGraphs, request); } /** * An Async wrapper for ListGraphs that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListGraphsAsync(const ListGraphsRequestT& request, const ListGraphsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::ListGraphs, request, handler, context); } /** *

Retrieves the list of open and accepted behavior graph invitations for the * member account. This operation can only be called by an invited member * account.

Open invitations are invitations that the member account has not * responded to.

The results do not include behavior graphs for which the * member account declined the invitation. The results also do not include behavior * graphs that the member account resigned from or was removed from.

See * Also:

AWS * API Reference

*/ virtual Model::ListInvitationsOutcome ListInvitations(const Model::ListInvitationsRequest& request) const; /** * A Callable wrapper for ListInvitations that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListInvitationsOutcomeCallable ListInvitationsCallable(const ListInvitationsRequestT& request) const { return SubmitCallable(&DetectiveClient::ListInvitations, request); } /** * An Async wrapper for ListInvitations that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListInvitationsAsync(const ListInvitationsRequestT& request, const ListInvitationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::ListInvitations, request, handler, context); } /** *

Retrieves the list of member accounts for a behavior graph.

For * invited accounts, the results do not include member accounts that were removed * from the behavior graph.

For the organization behavior graph, the results * do not include organization accounts that the Detective administrator account * has not enabled as member accounts.

See Also:

AWS * API Reference

*/ virtual Model::ListMembersOutcome ListMembers(const Model::ListMembersRequest& request) const; /** * A Callable wrapper for ListMembers that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListMembersOutcomeCallable ListMembersCallable(const ListMembersRequestT& request) const { return SubmitCallable(&DetectiveClient::ListMembers, request); } /** * An Async wrapper for ListMembers that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListMembersAsync(const ListMembersRequestT& request, const ListMembersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::ListMembers, request, handler, context); } /** *

Returns information about the Detective administrator account for an * organization. Can only be called by the organization management * account.

See Also:

AWS * API Reference

*/ virtual Model::ListOrganizationAdminAccountsOutcome ListOrganizationAdminAccounts(const Model::ListOrganizationAdminAccountsRequest& request) const; /** * A Callable wrapper for ListOrganizationAdminAccounts that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListOrganizationAdminAccountsOutcomeCallable ListOrganizationAdminAccountsCallable(const ListOrganizationAdminAccountsRequestT& request) const { return SubmitCallable(&DetectiveClient::ListOrganizationAdminAccounts, request); } /** * An Async wrapper for ListOrganizationAdminAccounts that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListOrganizationAdminAccountsAsync(const ListOrganizationAdminAccountsRequestT& request, const ListOrganizationAdminAccountsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::ListOrganizationAdminAccounts, request, handler, context); } /** *

Returns the tag values that are assigned to a behavior graph.

See * Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&DetectiveClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::ListTagsForResource, request, handler, context); } /** *

Rejects an invitation to contribute the account data to a behavior graph. * This operation must be called by an invited member account that has the * INVITED status.

RejectInvitation cannot be * called by an organization account in the organization behavior graph. In the * organization behavior graph, organization accounts do not receive an * invitation.

See Also:

AWS * API Reference

*/ virtual Model::RejectInvitationOutcome RejectInvitation(const Model::RejectInvitationRequest& request) const; /** * A Callable wrapper for RejectInvitation that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RejectInvitationOutcomeCallable RejectInvitationCallable(const RejectInvitationRequestT& request) const { return SubmitCallable(&DetectiveClient::RejectInvitation, request); } /** * An Async wrapper for RejectInvitation that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RejectInvitationAsync(const RejectInvitationRequestT& request, const RejectInvitationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::RejectInvitation, request, handler, context); } /** *

Sends a request to enable data ingest for a member account that has a status * of ACCEPTED_BUT_DISABLED.

For valid member accounts, the * status is updated as follows.

  • If Detective enabled the member * account, then the new status is ENABLED.

  • If * Detective cannot enable the member account, the status remains * ACCEPTED_BUT_DISABLED.

See Also:

AWS * API Reference

*/ virtual Model::StartMonitoringMemberOutcome StartMonitoringMember(const Model::StartMonitoringMemberRequest& request) const; /** * A Callable wrapper for StartMonitoringMember that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartMonitoringMemberOutcomeCallable StartMonitoringMemberCallable(const StartMonitoringMemberRequestT& request) const { return SubmitCallable(&DetectiveClient::StartMonitoringMember, request); } /** * An Async wrapper for StartMonitoringMember that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartMonitoringMemberAsync(const StartMonitoringMemberRequestT& request, const StartMonitoringMemberResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::StartMonitoringMember, request, handler, context); } /** *

Applies tag values to a behavior graph.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&DetectiveClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::TagResource, request, handler, context); } /** *

Removes tags from a behavior graph.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&DetectiveClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::UntagResource, request, handler, context); } /** *

Starts a data source packages for the behavior graph.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateDatasourcePackagesOutcome UpdateDatasourcePackages(const Model::UpdateDatasourcePackagesRequest& request) const; /** * A Callable wrapper for UpdateDatasourcePackages that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateDatasourcePackagesOutcomeCallable UpdateDatasourcePackagesCallable(const UpdateDatasourcePackagesRequestT& request) const { return SubmitCallable(&DetectiveClient::UpdateDatasourcePackages, request); } /** * An Async wrapper for UpdateDatasourcePackages that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateDatasourcePackagesAsync(const UpdateDatasourcePackagesRequestT& request, const UpdateDatasourcePackagesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::UpdateDatasourcePackages, request, handler, context); } /** *

Updates the configuration for the Organizations integration in the current * Region. Can only be called by the Detective administrator account for the * organization.

See Also:

AWS * API Reference

*/ virtual Model::UpdateOrganizationConfigurationOutcome UpdateOrganizationConfiguration(const Model::UpdateOrganizationConfigurationRequest& request) const; /** * A Callable wrapper for UpdateOrganizationConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateOrganizationConfigurationOutcomeCallable UpdateOrganizationConfigurationCallable(const UpdateOrganizationConfigurationRequestT& request) const { return SubmitCallable(&DetectiveClient::UpdateOrganizationConfiguration, request); } /** * An Async wrapper for UpdateOrganizationConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateOrganizationConfigurationAsync(const UpdateOrganizationConfigurationRequestT& request, const UpdateOrganizationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&DetectiveClient::UpdateOrganizationConfiguration, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const DetectiveClientConfiguration& clientConfiguration); DetectiveClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace Detective } // namespace Aws