/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.detective; import javax.annotation.Generated; import com.amazonaws.*; import com.amazonaws.regions.*; import com.amazonaws.services.detective.model.*; /** * Interface for accessing Amazon Detective. *

* Note: Do not directly implement this interface, new methods are added to it regularly. Extend from * {@link com.amazonaws.services.detective.AbstractAmazonDetective} instead. *

*

*

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

* *

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

* *

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

* *

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

*
*/ @Generated("com.amazonaws:aws-java-sdk-code-generator") public interface AmazonDetective { /** * The region metadata service name for computing region endpoints. You can use this value to retrieve metadata * (such as supported regions) of the service. * * @see RegionUtils#getRegionsForService(String) */ String ENDPOINT_PREFIX = "api.detective"; /** *

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

* * @param acceptInvitationRequest * @return Result of the AcceptInvitation operation returned by the service. * @throws AccessDeniedException * The request issuer does not have permission to access this resource or perform this operation. * @throws ConflictException * The request attempted an invalid action. * @throws InternalServerException * The request was valid but failed because of a problem with the service. * @throws ResourceNotFoundException * The request refers to a nonexistent resource. * @throws ValidationException * The request parameters are invalid. * @sample AmazonDetective.AcceptInvitation * @see AWS API * Documentation */ AcceptInvitationResult acceptInvitation(AcceptInvitationRequest acceptInvitationRequest); /** *

* Gets data source package information for the behavior graph. *

* * @param batchGetGraphMemberDatasourcesRequest * @return Result of the BatchGetGraphMemberDatasources operation returned by the service. * @throws AccessDeniedException * The request issuer does not have permission to access this resource or perform this operation. * @throws InternalServerException * The request was valid but failed because of a problem with the service. * @throws ResourceNotFoundException * The request refers to a nonexistent resource. * @throws ValidationException * The request parameters are invalid. * @sample AmazonDetective.BatchGetGraphMemberDatasources * @see AWS API Documentation */ BatchGetGraphMemberDatasourcesResult batchGetGraphMemberDatasources(BatchGetGraphMemberDatasourcesRequest batchGetGraphMemberDatasourcesRequest); /** *

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

* * @param batchGetMembershipDatasourcesRequest * @return Result of the BatchGetMembershipDatasources operation returned by the service. * @throws AccessDeniedException * The request issuer does not have permission to access this resource or perform this operation. * @throws InternalServerException * The request was valid but failed because of a problem with the service. * @throws ResourceNotFoundException * The request refers to a nonexistent resource. * @throws ValidationException * The request parameters are invalid. * @sample AmazonDetective.BatchGetMembershipDatasources * @see AWS API Documentation */ BatchGetMembershipDatasourcesResult batchGetMembershipDatasources(BatchGetMembershipDatasourcesRequest batchGetMembershipDatasourcesRequest); /** *

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

* * @param createGraphRequest * @return Result of the CreateGraph operation returned by the service. * @throws AccessDeniedException * The request issuer does not have permission to access this resource or perform this operation. * @throws ConflictException * The request attempted an invalid action. * @throws InternalServerException * The request was valid but failed because of a problem with the service. * @throws ServiceQuotaExceededException * This request cannot be completed for one of the following reasons.

*