/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace Detective { namespace Model { class AcceptInvitationRequest; class CreateMembersRequest; class DeleteGraphRequest; class DeleteMembersRequest; class DisassociateMembershipRequest; class GetMembersRequest; class ListGraphsRequest; class ListInvitationsRequest; class ListMembersRequest; class RejectInvitationRequest; class StartMonitoringMemberRequest; typedef Aws::Utils::Outcome AcceptInvitationOutcome; typedef Aws::Utils::Outcome CreateGraphOutcome; typedef Aws::Utils::Outcome CreateMembersOutcome; typedef Aws::Utils::Outcome DeleteGraphOutcome; typedef Aws::Utils::Outcome DeleteMembersOutcome; typedef Aws::Utils::Outcome DisassociateMembershipOutcome; typedef Aws::Utils::Outcome GetMembersOutcome; typedef Aws::Utils::Outcome ListGraphsOutcome; typedef Aws::Utils::Outcome ListInvitationsOutcome; typedef Aws::Utils::Outcome ListMembersOutcome; typedef Aws::Utils::Outcome RejectInvitationOutcome; typedef Aws::Utils::Outcome StartMonitoringMemberOutcome; typedef std::future AcceptInvitationOutcomeCallable; typedef std::future CreateGraphOutcomeCallable; typedef std::future CreateMembersOutcomeCallable; typedef std::future DeleteGraphOutcomeCallable; typedef std::future DeleteMembersOutcomeCallable; typedef std::future DisassociateMembershipOutcomeCallable; typedef std::future GetMembersOutcomeCallable; typedef std::future ListGraphsOutcomeCallable; typedef std::future ListInvitationsOutcomeCallable; typedef std::future ListMembersOutcomeCallable; typedef std::future RejectInvitationOutcomeCallable; typedef std::future StartMonitoringMemberOutcomeCallable; } // namespace Model class DetectiveClient; typedef std::function&) > AcceptInvitationResponseReceivedHandler; typedef std::function&) > CreateGraphResponseReceivedHandler; typedef std::function&) > CreateMembersResponseReceivedHandler; typedef std::function&) > DeleteGraphResponseReceivedHandler; typedef std::function&) > DeleteMembersResponseReceivedHandler; typedef std::function&) > DisassociateMembershipResponseReceivedHandler; typedef std::function&) > GetMembersResponseReceivedHandler; typedef std::function&) > ListGraphsResponseReceivedHandler; typedef std::function&) > ListInvitationsResponseReceivedHandler; typedef std::function&) > ListMembersResponseReceivedHandler; typedef std::function&) > RejectInvitationResponseReceivedHandler; typedef std::function&) > StartMonitoringMemberResponseReceivedHandler; /** *

Detective uses machine learning and purpose-built visualizations to help you * analyze and investigate security issues across your Amazon Web Services (AWS) * workloads. Detective automatically extracts time-based events such as login * attempts, API calls, and network traffic from AWS 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 a master account.

*

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

A Detective master account 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.

A 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.

*/ class AWS_DETECTIVE_API DetectiveClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * 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 = Aws::Client::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 = Aws::Client::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 = Aws::Client::ClientConfiguration()); 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; /** *

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AcceptInvitationOutcomeCallable AcceptInvitationCallable(const Model::AcceptInvitationRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AcceptInvitationAsync(const Model::AcceptInvitationRequest& request, const AcceptInvitationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a new behavior graph for the calling account, and sets that account * as the master 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 master account for one behavior graph within a * Region. If the same account calls CreateGraph with the same master * 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; /** *

Creates a new behavior graph for the calling account, and sets that account * as the master 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 master account for one behavior graph within a * Region. If the same account calls CreateGraph with the same master * account, it always returns the same behavior graph ARN. It does not create a new * behavior graph.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateGraphOutcomeCallable CreateGraphCallable() const; /** *

Creates a new behavior graph for the calling account, and sets that account * as the master 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 master account for one behavior graph within a * Region. If the same account calls CreateGraph with the same master * account, it always returns the same behavior graph ARN. It does not create a new * behavior graph.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateGraphAsync(const CreateGraphResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sends a request to invite the specified AWS accounts to be member accounts in * the behavior graph. This operation can only be called by the master account for * a behavior graph.

CreateMembers verifies the accounts and * then sends invitations to the verified accounts.

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

The response * separates the requested accounts into two lists:

  • The accounts * that CreateMembers was able to start the verification for. This * list includes member accounts that are being verified, that have passed * verification and are being sent an invitation, and that have failed * verification.

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

Sends a request to invite the specified AWS accounts to be member accounts in * the behavior graph. This operation can only be called by the master account for * a behavior graph.

CreateMembers verifies the accounts and * then sends invitations to the verified accounts.

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

The response * separates the requested accounts into two lists:

  • The accounts * that CreateMembers was able to start the verification for. This * list includes member accounts that are being verified, that have passed * verification and are being sent an invitation, and that have failed * verification.

  • 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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateMembersOutcomeCallable CreateMembersCallable(const Model::CreateMembersRequest& request) const; /** *

Sends a request to invite the specified AWS accounts to be member accounts in * the behavior graph. This operation can only be called by the master account for * a behavior graph.

CreateMembers verifies the accounts and * then sends invitations to the verified accounts.

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

The response * separates the requested accounts into two lists:

  • The accounts * that CreateMembers was able to start the verification for. This * list includes member accounts that are being verified, that have passed * verification and are being sent an invitation, and that have failed * verification.

  • 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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateMembersAsync(const Model::CreateMembersRequest& request, const CreateMembersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

See Also:

AWS * API Reference

*/ virtual Model::DeleteGraphOutcome DeleteGraph(const Model::DeleteGraphRequest& request) const; /** *

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

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteGraphOutcomeCallable DeleteGraphCallable(const Model::DeleteGraphRequest& request) const; /** *

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

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteGraphAsync(const Model::DeleteGraphRequest& request, const DeleteGraphResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes one or more member accounts from the master account behavior graph. * This operation can only be called by a Detective master account. That account * cannot use DeleteMembers to delete their own account from the * behavior graph. To disable a behavior graph, the master account uses the * DeleteGraph API method.

See Also:

AWS * API Reference

*/ virtual Model::DeleteMembersOutcome DeleteMembers(const Model::DeleteMembersRequest& request) const; /** *

Deletes one or more member accounts from the master account behavior graph. * This operation can only be called by a Detective master account. That account * cannot use DeleteMembers to delete their own account from the * behavior graph. To disable a behavior graph, the master account uses the * DeleteGraph API method.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteMembersOutcomeCallable DeleteMembersCallable(const Model::DeleteMembersRequest& request) const; /** *

Deletes one or more member accounts from the master account behavior graph. * This operation can only be called by a Detective master account. That account * cannot use DeleteMembers to delete their own account from the * behavior graph. To disable a behavior graph, the master account uses the * DeleteGraph API method.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteMembersAsync(const Model::DeleteMembersRequest& request, const DeleteMembersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

See Also:

AWS * API Reference

*/ virtual Model::DisassociateMembershipOutcome DisassociateMembership(const Model::DisassociateMembershipRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DisassociateMembershipOutcomeCallable DisassociateMembershipCallable(const Model::DisassociateMembershipRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DisassociateMembershipAsync(const Model::DisassociateMembershipRequest& request, const DisassociateMembershipResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetMembersOutcomeCallable GetMembersCallable(const Model::GetMembersRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetMembersAsync(const Model::GetMembersRequest& request, const GetMembersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

See Also:

AWS * API Reference

*/ virtual Model::ListGraphsOutcome ListGraphs(const Model::ListGraphsRequest& request) const; /** *

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

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListGraphsOutcomeCallable ListGraphsCallable(const Model::ListGraphsRequest& request) const; /** *

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

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListGraphsAsync(const Model::ListGraphsRequest& request, const ListGraphsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the list of open and accepted behavior graph invitations for the * member account. This operation can only be called by a 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; /** *

Retrieves the list of open and accepted behavior graph invitations for the * member account. This operation can only be called by a 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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListInvitationsOutcomeCallable ListInvitationsCallable(const Model::ListInvitationsRequest& request) const; /** *

Retrieves the list of open and accepted behavior graph invitations for the * member account. This operation can only be called by a 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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListInvitationsAsync(const Model::ListInvitationsRequest& request, const ListInvitationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the list of member accounts for a behavior graph. Does not return * member accounts that were removed from the behavior graph.

See * Also:

AWS * API Reference

*/ virtual Model::ListMembersOutcome ListMembers(const Model::ListMembersRequest& request) const; /** *

Retrieves the list of member accounts for a behavior graph. Does not return * member accounts that were removed from the behavior graph.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListMembersOutcomeCallable ListMembersCallable(const Model::ListMembersRequest& request) const; /** *

Retrieves the list of member accounts for a behavior graph. Does not return * member accounts that were removed from the behavior graph.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListMembersAsync(const Model::ListMembersRequest& request, const ListMembersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

See Also:

AWS * API Reference

*/ virtual Model::RejectInvitationOutcome RejectInvitation(const Model::RejectInvitationRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RejectInvitationOutcomeCallable RejectInvitationCallable(const Model::RejectInvitationRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RejectInvitationAsync(const Model::RejectInvitationRequest& request, const RejectInvitationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::StartMonitoringMemberOutcomeCallable StartMonitoringMemberCallable(const Model::StartMonitoringMemberRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void StartMonitoringMemberAsync(const Model::StartMonitoringMemberRequest& request, const StartMonitoringMemberResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AcceptInvitationAsyncHelper(const Model::AcceptInvitationRequest& request, const AcceptInvitationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateGraphAsyncHelper(const CreateGraphResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateMembersAsyncHelper(const Model::CreateMembersRequest& request, const CreateMembersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteGraphAsyncHelper(const Model::DeleteGraphRequest& request, const DeleteGraphResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteMembersAsyncHelper(const Model::DeleteMembersRequest& request, const DeleteMembersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DisassociateMembershipAsyncHelper(const Model::DisassociateMembershipRequest& request, const DisassociateMembershipResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetMembersAsyncHelper(const Model::GetMembersRequest& request, const GetMembersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListGraphsAsyncHelper(const Model::ListGraphsRequest& request, const ListGraphsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListInvitationsAsyncHelper(const Model::ListInvitationsRequest& request, const ListInvitationsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListMembersAsyncHelper(const Model::ListMembersRequest& request, const ListMembersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RejectInvitationAsyncHelper(const Model::RejectInvitationRequest& request, const RejectInvitationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void StartMonitoringMemberAsyncHelper(const Model::StartMonitoringMemberRequest& request, const StartMonitoringMemberResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace Detective } // namespace Aws