All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.securityhub.AWSSecurityHubClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS SecurityHub module holds the client classes that are used for communicating with AWS SecurityHub Service

There is a newer version: 1.12.772
Show newest version
/*
 * Copyright 2019-2024 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.securityhub;

import org.w3c.dom.*;

import java.net.*;
import java.util.*;

import javax.annotation.Generated;

import org.apache.commons.logging.*;

import com.amazonaws.*;
import com.amazonaws.annotation.SdkInternalApi;
import com.amazonaws.auth.*;

import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
import com.amazonaws.internal.auth.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.client.AwsSyncClientParams;
import com.amazonaws.client.builder.AdvancedConfig;

import com.amazonaws.services.securityhub.AWSSecurityHubClientBuilder;

import com.amazonaws.AmazonServiceException;

import com.amazonaws.services.securityhub.model.*;

import com.amazonaws.services.securityhub.model.transform.*;

/**
 * Client for accessing AWS SecurityHub. All service calls made using this client are blocking, and will not return
 * until the service call completes.
 * 

*

* Security Hub provides you with a comprehensive view of your security state in Amazon Web Services and helps you * assess your Amazon Web Services environment against security industry standards and best practices. *

*

* Security Hub collects security data across Amazon Web Services accounts, Amazon Web Services, and supported * third-party products and helps you analyze your security trends and identify the highest priority security issues. *

*

* To help you manage the security state of your organization, Security Hub supports multiple security standards. These * include the Amazon Web Services Foundational Security Best Practices (FSBP) standard developed by Amazon Web * Services, and external compliance frameworks such as the Center for Internet Security (CIS), the Payment Card * Industry Data Security Standard (PCI DSS), and the National Institute of Standards and Technology (NIST). Each * standard includes several security controls, each of which represents a security best practice. Security Hub runs * checks against security controls and generates control findings to help you assess your compliance against security * best practices. *

*

* In addition to generating control findings, Security Hub also receives findings from other Amazon Web Services, such * as Amazon GuardDuty and Amazon Inspector, and supported third-party products. This gives you a single pane of glass * into a variety of security-related issues. You can also send Security Hub findings to other Amazon Web Services and * supported third-party products. *

*

* Security Hub offers automation features that help you triage and remediate security issues. For example, you can use * automation rules to automatically update critical findings when a security check fails. You can also leverage the * integration with Amazon EventBridge to trigger automatic responses to specific findings. *

*

* This guide, the Security Hub API Reference, provides information about the Security Hub API. This includes * supported resources, HTTP methods, parameters, and schemas. If you're new to Security Hub, you might find it helpful * to also review the * Security Hub User Guide . The user guide explains key concepts and provides procedures that demonstrate * how to use Security Hub features. It also provides information about topics such as integrating Security Hub with * other Amazon Web Services. *

*

* In addition to interacting with Security Hub by making calls to the Security Hub API, you can use a current version * of an Amazon Web Services command line tool or SDK. Amazon Web Services provides tools and SDKs that consist of * libraries and sample code for various languages and platforms, such as PowerShell, Java, Go, Python, C++, and .NET. * These tools and SDKs provide convenient, programmatic access to Security Hub and other Amazon Web Services . They * also handle tasks such as signing requests, managing errors, and retrying requests automatically. For information * about installing and using the Amazon Web Services tools and SDKs, see Tools to Build on Amazon Web Services. *

*

* With the exception of operations that are related to central configuration, Security Hub API requests are executed * only in the Amazon Web Services Region that is currently active or in the specific Amazon Web Services Region that * you specify in your request. Any configuration or settings change that results from the operation is applied only to * that Region. To make the same change in other Regions, call the same API operation in each Region in which you want * to apply the change. When you use central configuration, API requests for enabling Security Hub, standards, and * controls are executed in the home Region and all linked Regions. For a list of central configuration operations, see * the Central configuration terms and concepts section of the Security Hub User Guide. *

*

* The following throttling limits apply to Security Hub API operations. *

*
    *
  • *

    * BatchEnableStandards - RateLimit of 1 request per second. BurstLimit of 1 * request per second. *

    *
  • *
  • *

    * GetFindings - RateLimit of 3 requests per second. BurstLimit of 6 requests per * second. *

    *
  • *
  • *

    * BatchImportFindings - RateLimit of 10 requests per second. BurstLimit of 30 * requests per second. *

    *
  • *
  • *

    * BatchUpdateFindings - RateLimit of 10 requests per second. BurstLimit of 30 * requests per second. *

    *
  • *
  • *

    * UpdateStandardsControl - RateLimit of 1 request per second. BurstLimit of 5 * requests per second. *

    *
  • *
  • *

    * All other operations - RateLimit of 10 requests per second. BurstLimit of 30 requests per * second. *

    *
  • *
*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AWSSecurityHubClient extends AmazonWebServiceClient implements AWSSecurityHub { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AWSSecurityHub.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "securityhub"; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final AdvancedConfig advancedConfig; private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .withSupportsIon(false) .withContentTypeOverride("application/json") .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceInUseException").withExceptionUnmarshaller( com.amazonaws.services.securityhub.model.transform.ResourceInUseExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidInputException").withExceptionUnmarshaller( com.amazonaws.services.securityhub.model.transform.InvalidInputExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller( com.amazonaws.services.securityhub.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InternalException").withExceptionUnmarshaller( com.amazonaws.services.securityhub.model.transform.InternalExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("LimitExceededException").withExceptionUnmarshaller( com.amazonaws.services.securityhub.model.transform.LimitExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidAccessException").withExceptionUnmarshaller( com.amazonaws.services.securityhub.model.transform.InvalidAccessExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceConflictException").withExceptionUnmarshaller( com.amazonaws.services.securityhub.model.transform.ResourceConflictExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("AccessDeniedException").withExceptionUnmarshaller( com.amazonaws.services.securityhub.model.transform.AccessDeniedExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.securityhub.model.AWSSecurityHubException.class)); public static AWSSecurityHubClientBuilder builder() { return AWSSecurityHubClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on AWS SecurityHub using the specified parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AWSSecurityHubClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on AWS SecurityHub using the specified parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AWSSecurityHubClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); this.advancedConfig = clientParams.getAdvancedConfig(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("securityhub.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/securityhub/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/securityhub/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *

* Accepts the invitation to be a member account and be monitored by the Security Hub administrator account that the * invitation was sent from. *

*

* This operation is only used by member accounts that are not added through Organizations. *

*

* When the member account accepts the invitation, permission is granted to the administrator account to view * findings generated in the member account. *

* * @param acceptAdministratorInvitationRequest * @return Result of the AcceptAdministratorInvitation operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @sample AWSSecurityHub.AcceptAdministratorInvitation * @see AWS API Documentation */ @Override public AcceptAdministratorInvitationResult acceptAdministratorInvitation(AcceptAdministratorInvitationRequest request) { request = beforeClientExecution(request); return executeAcceptAdministratorInvitation(request); } @SdkInternalApi final AcceptAdministratorInvitationResult executeAcceptAdministratorInvitation(AcceptAdministratorInvitationRequest acceptAdministratorInvitationRequest) { ExecutionContext executionContext = createExecutionContext(acceptAdministratorInvitationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AcceptAdministratorInvitationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(acceptAdministratorInvitationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AcceptAdministratorInvitation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AcceptAdministratorInvitationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This method is deprecated. Instead, use AcceptAdministratorInvitation. *

*

* The Security Hub console continues to use AcceptInvitation. It will eventually change to use * AcceptAdministratorInvitation. Any IAM policies that specifically control access to this function * must continue to use AcceptInvitation. You should also add * AcceptAdministratorInvitation to your policies to ensure that the correct permissions are in place * after the console begins to use AcceptAdministratorInvitation. *

*

* Accepts the invitation to be a member account and be monitored by the Security Hub administrator account that the * invitation was sent from. *

*

* This operation is only used by member accounts that are not added through Organizations. *

*

* When the member account accepts the invitation, permission is granted to the administrator account to view * findings generated in the member account. *

* * @param acceptInvitationRequest * @return Result of the AcceptInvitation operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @sample AWSSecurityHub.AcceptInvitation * @see AWS * API Documentation */ @Override @Deprecated public AcceptInvitationResult acceptInvitation(AcceptInvitationRequest request) { request = beforeClientExecution(request); return executeAcceptInvitation(request); } @SdkInternalApi final AcceptInvitationResult executeAcceptInvitation(AcceptInvitationRequest acceptInvitationRequest) { ExecutionContext executionContext = createExecutionContext(acceptInvitationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AcceptInvitationRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(acceptInvitationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AcceptInvitation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AcceptInvitationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes one or more automation rules. *

* * @param batchDeleteAutomationRulesRequest * @return Result of the BatchDeleteAutomationRules operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.BatchDeleteAutomationRules * @see AWS API Documentation */ @Override public BatchDeleteAutomationRulesResult batchDeleteAutomationRules(BatchDeleteAutomationRulesRequest request) { request = beforeClientExecution(request); return executeBatchDeleteAutomationRules(request); } @SdkInternalApi final BatchDeleteAutomationRulesResult executeBatchDeleteAutomationRules(BatchDeleteAutomationRulesRequest batchDeleteAutomationRulesRequest) { ExecutionContext executionContext = createExecutionContext(batchDeleteAutomationRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchDeleteAutomationRulesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(batchDeleteAutomationRulesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchDeleteAutomationRules"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchDeleteAutomationRulesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disables the standards specified by the provided StandardsSubscriptionArns. *

*

* For more information, see Security Standards * section of the Security Hub User Guide. *

* * @param batchDisableStandardsRequest * @return Result of the BatchDisableStandards operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.BatchDisableStandards * @see AWS API Documentation */ @Override public BatchDisableStandardsResult batchDisableStandards(BatchDisableStandardsRequest request) { request = beforeClientExecution(request); return executeBatchDisableStandards(request); } @SdkInternalApi final BatchDisableStandardsResult executeBatchDisableStandards(BatchDisableStandardsRequest batchDisableStandardsRequest) { ExecutionContext executionContext = createExecutionContext(batchDisableStandardsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchDisableStandardsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(batchDisableStandardsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchDisableStandards"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchDisableStandardsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Enables the standards specified by the provided StandardsArn. To obtain the ARN for a standard, use * the DescribeStandards operation. *

*

* For more information, see the Security Standards * section of the Security Hub User Guide. *

* * @param batchEnableStandardsRequest * @return Result of the BatchEnableStandards operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.BatchEnableStandards * @see AWS API Documentation */ @Override public BatchEnableStandardsResult batchEnableStandards(BatchEnableStandardsRequest request) { request = beforeClientExecution(request); return executeBatchEnableStandards(request); } @SdkInternalApi final BatchEnableStandardsResult executeBatchEnableStandards(BatchEnableStandardsRequest batchEnableStandardsRequest) { ExecutionContext executionContext = createExecutionContext(batchEnableStandardsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchEnableStandardsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(batchEnableStandardsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchEnableStandards"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchEnableStandardsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves a list of details for automation rules based on rule Amazon Resource Names (ARNs). *

* * @param batchGetAutomationRulesRequest * @return Result of the BatchGetAutomationRules operation returned by the service. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.BatchGetAutomationRules * @see AWS API Documentation */ @Override public BatchGetAutomationRulesResult batchGetAutomationRules(BatchGetAutomationRulesRequest request) { request = beforeClientExecution(request); return executeBatchGetAutomationRules(request); } @SdkInternalApi final BatchGetAutomationRulesResult executeBatchGetAutomationRules(BatchGetAutomationRulesRequest batchGetAutomationRulesRequest) { ExecutionContext executionContext = createExecutionContext(batchGetAutomationRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchGetAutomationRulesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(batchGetAutomationRulesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchGetAutomationRules"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchGetAutomationRulesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns associations between an Security Hub configuration and a batch of target accounts, organizational units, * or the root. Only the Security Hub delegated administrator can invoke this operation from the home Region. A * configuration can refer to a configuration policy or to a self-managed configuration. *

* * @param batchGetConfigurationPolicyAssociationsRequest * @return Result of the BatchGetConfigurationPolicyAssociations operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.BatchGetConfigurationPolicyAssociations * @see AWS API Documentation */ @Override public BatchGetConfigurationPolicyAssociationsResult batchGetConfigurationPolicyAssociations(BatchGetConfigurationPolicyAssociationsRequest request) { request = beforeClientExecution(request); return executeBatchGetConfigurationPolicyAssociations(request); } @SdkInternalApi final BatchGetConfigurationPolicyAssociationsResult executeBatchGetConfigurationPolicyAssociations( BatchGetConfigurationPolicyAssociationsRequest batchGetConfigurationPolicyAssociationsRequest) { ExecutionContext executionContext = createExecutionContext(batchGetConfigurationPolicyAssociationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchGetConfigurationPolicyAssociationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(batchGetConfigurationPolicyAssociationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchGetConfigurationPolicyAssociations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchGetConfigurationPolicyAssociationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Provides details about a batch of security controls for the current Amazon Web Services account and Amazon Web * Services Region. *

* * @param batchGetSecurityControlsRequest * @return Result of the BatchGetSecurityControls operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @sample AWSSecurityHub.BatchGetSecurityControls * @see AWS API Documentation */ @Override public BatchGetSecurityControlsResult batchGetSecurityControls(BatchGetSecurityControlsRequest request) { request = beforeClientExecution(request); return executeBatchGetSecurityControls(request); } @SdkInternalApi final BatchGetSecurityControlsResult executeBatchGetSecurityControls(BatchGetSecurityControlsRequest batchGetSecurityControlsRequest) { ExecutionContext executionContext = createExecutionContext(batchGetSecurityControlsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchGetSecurityControlsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(batchGetSecurityControlsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchGetSecurityControls"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchGetSecurityControlsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* For a batch of security controls and standards, identifies whether each control is currently enabled or disabled * in a standard. *

* * @param batchGetStandardsControlAssociationsRequest * @return Result of the BatchGetStandardsControlAssociations operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @sample AWSSecurityHub.BatchGetStandardsControlAssociations * @see AWS API Documentation */ @Override public BatchGetStandardsControlAssociationsResult batchGetStandardsControlAssociations(BatchGetStandardsControlAssociationsRequest request) { request = beforeClientExecution(request); return executeBatchGetStandardsControlAssociations(request); } @SdkInternalApi final BatchGetStandardsControlAssociationsResult executeBatchGetStandardsControlAssociations( BatchGetStandardsControlAssociationsRequest batchGetStandardsControlAssociationsRequest) { ExecutionContext executionContext = createExecutionContext(batchGetStandardsControlAssociationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchGetStandardsControlAssociationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(batchGetStandardsControlAssociationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchGetStandardsControlAssociations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchGetStandardsControlAssociationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Imports security findings generated by a finding provider into Security Hub. This action is requested by the * finding provider to import its findings into Security Hub. *

*

* BatchImportFindings must be called by one of the following: *

*
    *
  • *

    * The Amazon Web Services account that is associated with a finding if you are using the default product ARN or are a partner sending findings from within a customer's Amazon Web Services account. * In these cases, the identifier of the account that you are calling BatchImportFindings from needs to * be the same as the AwsAccountId attribute for the finding. *

    *
  • *
  • *

    * An Amazon Web Services account that Security Hub has allow-listed for an official partner integration. In this * case, you can call BatchImportFindings from the allow-listed account and send findings from * different customer accounts in the same batch. *

    *
  • *
*

* The maximum allowed size for a finding is 240 Kb. An error is returned for any finding larger than 240 Kb. *

*

* After a finding is created, BatchImportFindings cannot be used to update the following finding * fields and objects, which Security Hub customers use to manage their investigation workflow. *

*
    *
  • *

    * Note *

    *
  • *
  • *

    * UserDefinedFields *

    *
  • *
  • *

    * VerificationState *

    *
  • *
  • *

    * Workflow *

    *
  • *
*

* Finding providers also should not use BatchImportFindings to update the following attributes. *

*
    *
  • *

    * Confidence *

    *
  • *
  • *

    * Criticality *

    *
  • *
  • *

    * RelatedFindings *

    *
  • *
  • *

    * Severity *

    *
  • *
  • *

    * Types *

    *
  • *
*

* Instead, finding providers use FindingProviderFields to provide values for these attributes. *

* * @param batchImportFindingsRequest * @return Result of the BatchImportFindings operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @sample AWSSecurityHub.BatchImportFindings * @see AWS API Documentation */ @Override public BatchImportFindingsResult batchImportFindings(BatchImportFindingsRequest request) { request = beforeClientExecution(request); return executeBatchImportFindings(request); } @SdkInternalApi final BatchImportFindingsResult executeBatchImportFindings(BatchImportFindingsRequest batchImportFindingsRequest) { ExecutionContext executionContext = createExecutionContext(batchImportFindingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchImportFindingsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(batchImportFindingsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchImportFindings"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchImportFindingsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates one or more automation rules based on rule Amazon Resource Names (ARNs) and input parameters. *

* * @param batchUpdateAutomationRulesRequest * @return Result of the BatchUpdateAutomationRules operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.BatchUpdateAutomationRules * @see AWS API Documentation */ @Override public BatchUpdateAutomationRulesResult batchUpdateAutomationRules(BatchUpdateAutomationRulesRequest request) { request = beforeClientExecution(request); return executeBatchUpdateAutomationRules(request); } @SdkInternalApi final BatchUpdateAutomationRulesResult executeBatchUpdateAutomationRules(BatchUpdateAutomationRulesRequest batchUpdateAutomationRulesRequest) { ExecutionContext executionContext = createExecutionContext(batchUpdateAutomationRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchUpdateAutomationRulesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(batchUpdateAutomationRulesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchUpdateAutomationRules"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchUpdateAutomationRulesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Used by Security Hub customers to update information about their investigation into a finding. Requested by * administrator accounts or member accounts. Administrator accounts can update findings for their account and their * member accounts. Member accounts can update findings for their account. *

*

* Updates from BatchUpdateFindings do not affect the value of UpdatedAt for a finding. *

*

* Administrator and member accounts can use BatchUpdateFindings to update the following finding fields * and objects. *

*
    *
  • *

    * Confidence *

    *
  • *
  • *

    * Criticality *

    *
  • *
  • *

    * Note *

    *
  • *
  • *

    * RelatedFindings *

    *
  • *
  • *

    * Severity *

    *
  • *
  • *

    * Types *

    *
  • *
  • *

    * UserDefinedFields *

    *
  • *
  • *

    * VerificationState *

    *
  • *
  • *

    * Workflow *

    *
  • *
*

* You can configure IAM policies to restrict access to fields and field values. For example, you might not want * member accounts to be able to suppress findings or change the finding severity. See Configuring access to BatchUpdateFindings in the Security Hub User Guide. *

* * @param batchUpdateFindingsRequest * @return Result of the BatchUpdateFindings operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @sample AWSSecurityHub.BatchUpdateFindings * @see AWS API Documentation */ @Override public BatchUpdateFindingsResult batchUpdateFindings(BatchUpdateFindingsRequest request) { request = beforeClientExecution(request); return executeBatchUpdateFindings(request); } @SdkInternalApi final BatchUpdateFindingsResult executeBatchUpdateFindings(BatchUpdateFindingsRequest batchUpdateFindingsRequest) { ExecutionContext executionContext = createExecutionContext(batchUpdateFindingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchUpdateFindingsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(batchUpdateFindingsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchUpdateFindings"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchUpdateFindingsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* For a batch of security controls and standards, this operation updates the enablement status of a control in a * standard. *

* * @param batchUpdateStandardsControlAssociationsRequest * @return Result of the BatchUpdateStandardsControlAssociations operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.BatchUpdateStandardsControlAssociations * @see AWS API Documentation */ @Override public BatchUpdateStandardsControlAssociationsResult batchUpdateStandardsControlAssociations(BatchUpdateStandardsControlAssociationsRequest request) { request = beforeClientExecution(request); return executeBatchUpdateStandardsControlAssociations(request); } @SdkInternalApi final BatchUpdateStandardsControlAssociationsResult executeBatchUpdateStandardsControlAssociations( BatchUpdateStandardsControlAssociationsRequest batchUpdateStandardsControlAssociationsRequest) { ExecutionContext executionContext = createExecutionContext(batchUpdateStandardsControlAssociationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchUpdateStandardsControlAssociationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(batchUpdateStandardsControlAssociationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchUpdateStandardsControlAssociations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchUpdateStandardsControlAssociationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a custom action target in Security Hub. *

*

* You can use custom actions on findings and insights in Security Hub to trigger target actions in Amazon * CloudWatch Events. *

* * @param createActionTargetRequest * @return Result of the CreateActionTarget operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceConflictException * The resource specified in the request conflicts with an existing resource. * @sample AWSSecurityHub.CreateActionTarget * @see AWS * API Documentation */ @Override public CreateActionTargetResult createActionTarget(CreateActionTargetRequest request) { request = beforeClientExecution(request); return executeCreateActionTarget(request); } @SdkInternalApi final CreateActionTargetResult executeCreateActionTarget(CreateActionTargetRequest createActionTargetRequest) { ExecutionContext executionContext = createExecutionContext(createActionTargetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateActionTargetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createActionTargetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateActionTarget"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateActionTargetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an automation rule based on input parameters. *

* * @param createAutomationRuleRequest * @return Result of the CreateAutomationRule operation returned by the service. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.CreateAutomationRule * @see AWS API Documentation */ @Override public CreateAutomationRuleResult createAutomationRule(CreateAutomationRuleRequest request) { request = beforeClientExecution(request); return executeCreateAutomationRule(request); } @SdkInternalApi final CreateAutomationRuleResult executeCreateAutomationRule(CreateAutomationRuleRequest createAutomationRuleRequest) { ExecutionContext executionContext = createExecutionContext(createAutomationRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateAutomationRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createAutomationRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateAutomationRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateAutomationRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a configuration policy with the defined configuration. Only the Security Hub delegated administrator can * invoke this operation from the home Region. *

* * @param createConfigurationPolicyRequest * @return Result of the CreateConfigurationPolicy operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws ResourceConflictException * The resource specified in the request conflicts with an existing resource. * @sample AWSSecurityHub.CreateConfigurationPolicy * @see AWS API Documentation */ @Override public CreateConfigurationPolicyResult createConfigurationPolicy(CreateConfigurationPolicyRequest request) { request = beforeClientExecution(request); return executeCreateConfigurationPolicy(request); } @SdkInternalApi final CreateConfigurationPolicyResult executeCreateConfigurationPolicy(CreateConfigurationPolicyRequest createConfigurationPolicyRequest) { ExecutionContext executionContext = createExecutionContext(createConfigurationPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateConfigurationPolicyRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createConfigurationPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateConfigurationPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateConfigurationPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Used to enable finding aggregation. Must be called from the aggregation Region. *

*

* For more details about cross-Region replication, see Configuring finding * aggregation in the Security Hub User Guide. *

* * @param createFindingAggregatorRequest * @return Result of the CreateFindingAggregator operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @sample AWSSecurityHub.CreateFindingAggregator * @see AWS API Documentation */ @Override public CreateFindingAggregatorResult createFindingAggregator(CreateFindingAggregatorRequest request) { request = beforeClientExecution(request); return executeCreateFindingAggregator(request); } @SdkInternalApi final CreateFindingAggregatorResult executeCreateFindingAggregator(CreateFindingAggregatorRequest createFindingAggregatorRequest) { ExecutionContext executionContext = createExecutionContext(createFindingAggregatorRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateFindingAggregatorRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createFindingAggregatorRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateFindingAggregator"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateFindingAggregatorResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a custom insight in Security Hub. An insight is a consolidation of findings that relate to a security * issue that requires attention or remediation. *

*

* To group the related findings in the insight, use the GroupByAttribute. *

* * @param createInsightRequest * @return Result of the CreateInsight operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceConflictException * The resource specified in the request conflicts with an existing resource. * @sample AWSSecurityHub.CreateInsight * @see AWS API * Documentation */ @Override public CreateInsightResult createInsight(CreateInsightRequest request) { request = beforeClientExecution(request); return executeCreateInsight(request); } @SdkInternalApi final CreateInsightResult executeCreateInsight(CreateInsightRequest createInsightRequest) { ExecutionContext executionContext = createExecutionContext(createInsightRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateInsightRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createInsightRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateInsight"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateInsightResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a member association in Security Hub between the specified accounts and the account used to make the * request, which is the administrator account. If you are integrated with Organizations, then the administrator * account is designated by the organization management account. *

*

* CreateMembers is always used to add accounts that are not organization members. *

*

* For accounts that are managed using Organizations, CreateMembers is only used in the following * cases: *

*
    *
  • *

    * Security Hub is not configured to automatically add new organization accounts. *

    *
  • *
  • *

    * The account was disassociated or deleted in Security Hub. *

    *
  • *
*

* This action can only be used by an account that has Security Hub enabled. To enable Security Hub, you can use the * EnableSecurityHub operation. *

*

* For accounts that are not organization members, you create the account association and then send an invitation to * the member account. To send the invitation, you use the InviteMembers operation. If the account * owner accepts the invitation, the account becomes a member account in Security Hub. *

*

* Accounts that are managed using Organizations do not receive an invitation. They automatically become a member * account in Security Hub. *

*
    *
  • *

    * If the organization account does not have Security Hub enabled, then Security Hub and the default standards are * automatically enabled. Note that Security Hub cannot be enabled automatically for the organization management * account. The organization management account must enable Security Hub before the administrator account enables it * as a member account. *

    *
  • *
  • *

    * For organization accounts that already have Security Hub enabled, Security Hub does not make any other changes to * those accounts. It does not change their enabled standards or controls. *

    *
  • *
*

* A permissions policy is added that permits the administrator account to view the findings generated in the member * account. *

*

* To remove the association between the administrator and member accounts, use the * DisassociateFromMasterAccount or DisassociateMembers operation. *

* * @param createMembersRequest * @return Result of the CreateMembers operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceConflictException * The resource specified in the request conflicts with an existing resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.CreateMembers * @see AWS API * Documentation */ @Override public CreateMembersResult createMembers(CreateMembersRequest request) { request = beforeClientExecution(request); return executeCreateMembers(request); } @SdkInternalApi final CreateMembersResult executeCreateMembers(CreateMembersRequest createMembersRequest) { ExecutionContext executionContext = createExecutionContext(createMembersRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateMembersRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createMembersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateMembers"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateMembersResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Declines invitations to become a member account. *

*

* A prospective member account uses this operation to decline an invitation to become a member. *

*

* This operation is only called by member accounts that aren't part of an organization. Organization accounts don't * receive invitations. *

* * @param declineInvitationsRequest * @return Result of the DeclineInvitations operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.DeclineInvitations * @see AWS * API Documentation */ @Override public DeclineInvitationsResult declineInvitations(DeclineInvitationsRequest request) { request = beforeClientExecution(request); return executeDeclineInvitations(request); } @SdkInternalApi final DeclineInvitationsResult executeDeclineInvitations(DeclineInvitationsRequest declineInvitationsRequest) { ExecutionContext executionContext = createExecutionContext(declineInvitationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeclineInvitationsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(declineInvitationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeclineInvitations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeclineInvitationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a custom action target from Security Hub. *

*

* Deleting a custom action target does not affect any findings or insights that were already sent to Amazon * CloudWatch Events using the custom action. *

* * @param deleteActionTargetRequest * @return Result of the DeleteActionTarget operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.DeleteActionTarget * @see AWS * API Documentation */ @Override public DeleteActionTargetResult deleteActionTarget(DeleteActionTargetRequest request) { request = beforeClientExecution(request); return executeDeleteActionTarget(request); } @SdkInternalApi final DeleteActionTargetResult executeDeleteActionTarget(DeleteActionTargetRequest deleteActionTargetRequest) { ExecutionContext executionContext = createExecutionContext(deleteActionTargetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteActionTargetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteActionTargetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteActionTarget"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteActionTargetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a configuration policy. Only the Security Hub delegated administrator can invoke this operation from the * home Region. For the deletion to succeed, you must first disassociate a configuration policy from target * accounts, organizational units, or the root by invoking the StartConfigurationPolicyDisassociation * operation. *

* * @param deleteConfigurationPolicyRequest * @return Result of the DeleteConfigurationPolicy operation returned by the service. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws ResourceConflictException * The resource specified in the request conflicts with an existing resource. * @sample AWSSecurityHub.DeleteConfigurationPolicy * @see AWS API Documentation */ @Override public DeleteConfigurationPolicyResult deleteConfigurationPolicy(DeleteConfigurationPolicyRequest request) { request = beforeClientExecution(request); return executeDeleteConfigurationPolicy(request); } @SdkInternalApi final DeleteConfigurationPolicyResult executeDeleteConfigurationPolicy(DeleteConfigurationPolicyRequest deleteConfigurationPolicyRequest) { ExecutionContext executionContext = createExecutionContext(deleteConfigurationPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteConfigurationPolicyRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteConfigurationPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteConfigurationPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteConfigurationPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a finding aggregator. When you delete the finding aggregator, you stop finding aggregation. *

*

* When you stop finding aggregation, findings that were already aggregated to the aggregation Region are still * visible from the aggregation Region. New findings and finding updates are not aggregated. *

* * @param deleteFindingAggregatorRequest * @return Result of the DeleteFindingAggregator operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.DeleteFindingAggregator * @see AWS API Documentation */ @Override public DeleteFindingAggregatorResult deleteFindingAggregator(DeleteFindingAggregatorRequest request) { request = beforeClientExecution(request); return executeDeleteFindingAggregator(request); } @SdkInternalApi final DeleteFindingAggregatorResult executeDeleteFindingAggregator(DeleteFindingAggregatorRequest deleteFindingAggregatorRequest) { ExecutionContext executionContext = createExecutionContext(deleteFindingAggregatorRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteFindingAggregatorRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteFindingAggregatorRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteFindingAggregator"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteFindingAggregatorResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the insight specified by the InsightArn. *

* * @param deleteInsightRequest * @return Result of the DeleteInsight operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.DeleteInsight * @see AWS API * Documentation */ @Override public DeleteInsightResult deleteInsight(DeleteInsightRequest request) { request = beforeClientExecution(request); return executeDeleteInsight(request); } @SdkInternalApi final DeleteInsightResult executeDeleteInsight(DeleteInsightRequest deleteInsightRequest) { ExecutionContext executionContext = createExecutionContext(deleteInsightRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteInsightRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteInsightRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteInsight"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteInsightResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes invitations received by the Amazon Web Services account to become a member account. *

*

* A Security Hub administrator account can use this operation to delete invitations sent to one or more member * accounts. *

*

* This operation is only used to delete invitations that are sent to member accounts that aren't part of an * organization. Organization accounts don't receive invitations. *

* * @param deleteInvitationsRequest * @return Result of the DeleteInvitations operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @sample AWSSecurityHub.DeleteInvitations * @see AWS * API Documentation */ @Override public DeleteInvitationsResult deleteInvitations(DeleteInvitationsRequest request) { request = beforeClientExecution(request); return executeDeleteInvitations(request); } @SdkInternalApi final DeleteInvitationsResult executeDeleteInvitations(DeleteInvitationsRequest deleteInvitationsRequest) { ExecutionContext executionContext = createExecutionContext(deleteInvitationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteInvitationsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteInvitationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteInvitations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteInvitationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified member accounts from Security Hub. *

*

* You can invoke this API only to delete accounts that became members through invitation. You can't invoke this API * to delete accounts that belong to an Organizations organization. *

* * @param deleteMembersRequest * @return Result of the DeleteMembers operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.DeleteMembers * @see AWS API * Documentation */ @Override public DeleteMembersResult deleteMembers(DeleteMembersRequest request) { request = beforeClientExecution(request); return executeDeleteMembers(request); } @SdkInternalApi final DeleteMembersResult executeDeleteMembers(DeleteMembersRequest deleteMembersRequest) { ExecutionContext executionContext = createExecutionContext(deleteMembersRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteMembersRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteMembersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteMembers"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteMembersResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of the custom action targets in Security Hub in your account. *

* * @param describeActionTargetsRequest * @return Result of the DescribeActionTargets operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.DescribeActionTargets * @see AWS API Documentation */ @Override public DescribeActionTargetsResult describeActionTargets(DescribeActionTargetsRequest request) { request = beforeClientExecution(request); return executeDescribeActionTargets(request); } @SdkInternalApi final DescribeActionTargetsResult executeDescribeActionTargets(DescribeActionTargetsRequest describeActionTargetsRequest) { ExecutionContext executionContext = createExecutionContext(describeActionTargetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeActionTargetsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeActionTargetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeActionTargets"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeActionTargetsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns details about the Hub resource in your account, including the HubArn and the time when you * enabled Security Hub. *

* * @param describeHubRequest * @return Result of the DescribeHub operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.DescribeHub * @see AWS API * Documentation */ @Override public DescribeHubResult describeHub(DescribeHubRequest request) { request = beforeClientExecution(request); return executeDescribeHub(request); } @SdkInternalApi final DescribeHubResult executeDescribeHub(DescribeHubRequest describeHubRequest) { ExecutionContext executionContext = createExecutionContext(describeHubRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeHubRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeHubRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeHub"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeHubResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about the way your organization is configured in Security Hub. Only the Security Hub * administrator account can invoke this operation. *

* * @param describeOrganizationConfigurationRequest * @return Result of the DescribeOrganizationConfiguration operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.DescribeOrganizationConfiguration * @see AWS API Documentation */ @Override public DescribeOrganizationConfigurationResult describeOrganizationConfiguration(DescribeOrganizationConfigurationRequest request) { request = beforeClientExecution(request); return executeDescribeOrganizationConfiguration(request); } @SdkInternalApi final DescribeOrganizationConfigurationResult executeDescribeOrganizationConfiguration( DescribeOrganizationConfigurationRequest describeOrganizationConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(describeOrganizationConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeOrganizationConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeOrganizationConfigurationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeOrganizationConfiguration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeOrganizationConfigurationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about product integrations in Security Hub. *

*

* You can optionally provide an integration ARN. If you provide an integration ARN, then the results only include * that integration. *

*

* If you do not provide an integration ARN, then the results include all of the available product integrations. *

* * @param describeProductsRequest * @return Result of the DescribeProducts operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @sample AWSSecurityHub.DescribeProducts * @see AWS * API Documentation */ @Override public DescribeProductsResult describeProducts(DescribeProductsRequest request) { request = beforeClientExecution(request); return executeDescribeProducts(request); } @SdkInternalApi final DescribeProductsResult executeDescribeProducts(DescribeProductsRequest describeProductsRequest) { ExecutionContext executionContext = createExecutionContext(describeProductsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeProductsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeProductsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeProducts"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeProductsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of the available standards in Security Hub. *

*

* For each standard, the results include the standard ARN, the name, and a description. *

* * @param describeStandardsRequest * @return Result of the DescribeStandards operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @sample AWSSecurityHub.DescribeStandards * @see AWS * API Documentation */ @Override public DescribeStandardsResult describeStandards(DescribeStandardsRequest request) { request = beforeClientExecution(request); return executeDescribeStandards(request); } @SdkInternalApi final DescribeStandardsResult executeDescribeStandards(DescribeStandardsRequest describeStandardsRequest) { ExecutionContext executionContext = createExecutionContext(describeStandardsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeStandardsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeStandardsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeStandards"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeStandardsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of security standards controls. *

*

* For each control, the results include information about whether it is currently enabled, the severity, and a link * to remediation information. *

* * @param describeStandardsControlsRequest * @return Result of the DescribeStandardsControls operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.DescribeStandardsControls * @see AWS API Documentation */ @Override public DescribeStandardsControlsResult describeStandardsControls(DescribeStandardsControlsRequest request) { request = beforeClientExecution(request); return executeDescribeStandardsControls(request); } @SdkInternalApi final DescribeStandardsControlsResult executeDescribeStandardsControls(DescribeStandardsControlsRequest describeStandardsControlsRequest) { ExecutionContext executionContext = createExecutionContext(describeStandardsControlsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeStandardsControlsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeStandardsControlsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeStandardsControls"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeStandardsControlsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disables the integration of the specified product with Security Hub. After the integration is disabled, findings * from that product are no longer sent to Security Hub. *

* * @param disableImportFindingsForProductRequest * @return Result of the DisableImportFindingsForProduct operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.DisableImportFindingsForProduct * @see AWS API Documentation */ @Override public DisableImportFindingsForProductResult disableImportFindingsForProduct(DisableImportFindingsForProductRequest request) { request = beforeClientExecution(request); return executeDisableImportFindingsForProduct(request); } @SdkInternalApi final DisableImportFindingsForProductResult executeDisableImportFindingsForProduct( DisableImportFindingsForProductRequest disableImportFindingsForProductRequest) { ExecutionContext executionContext = createExecutionContext(disableImportFindingsForProductRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisableImportFindingsForProductRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(disableImportFindingsForProductRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisableImportFindingsForProduct"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisableImportFindingsForProductResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disables a Security Hub administrator account. Can only be called by the organization management account. *

* * @param disableOrganizationAdminAccountRequest * @return Result of the DisableOrganizationAdminAccount operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.DisableOrganizationAdminAccount * @see AWS API Documentation */ @Override public DisableOrganizationAdminAccountResult disableOrganizationAdminAccount(DisableOrganizationAdminAccountRequest request) { request = beforeClientExecution(request); return executeDisableOrganizationAdminAccount(request); } @SdkInternalApi final DisableOrganizationAdminAccountResult executeDisableOrganizationAdminAccount( DisableOrganizationAdminAccountRequest disableOrganizationAdminAccountRequest) { ExecutionContext executionContext = createExecutionContext(disableOrganizationAdminAccountRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisableOrganizationAdminAccountRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(disableOrganizationAdminAccountRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisableOrganizationAdminAccount"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisableOrganizationAdminAccountResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disables Security Hub in your account only in the current Amazon Web Services Region. To disable Security Hub in * all Regions, you must submit one request per Region where you have enabled Security Hub. *

*

* You can't disable Security Hub in an account that is currently the Security Hub administrator. *

*

* When you disable Security Hub, your existing findings and insights and any Security Hub configuration settings * are deleted after 90 days and cannot be recovered. Any standards that were enabled are disabled, and your * administrator and member account associations are removed. *

*

* If you want to save your existing findings, you must export them before you disable Security Hub. *

* * @param disableSecurityHubRequest * @return Result of the DisableSecurityHub operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.DisableSecurityHub * @see AWS * API Documentation */ @Override public DisableSecurityHubResult disableSecurityHub(DisableSecurityHubRequest request) { request = beforeClientExecution(request); return executeDisableSecurityHub(request); } @SdkInternalApi final DisableSecurityHubResult executeDisableSecurityHub(DisableSecurityHubRequest disableSecurityHubRequest) { ExecutionContext executionContext = createExecutionContext(disableSecurityHubRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisableSecurityHubRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(disableSecurityHubRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisableSecurityHub"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisableSecurityHubResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disassociates the current Security Hub member account from the associated administrator account. *

*

* This operation is only used by accounts that are not part of an organization. For organization accounts, only the * administrator account can disassociate a member account. *

* * @param disassociateFromAdministratorAccountRequest * @return Result of the DisassociateFromAdministratorAccount operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.DisassociateFromAdministratorAccount * @see AWS API Documentation */ @Override public DisassociateFromAdministratorAccountResult disassociateFromAdministratorAccount(DisassociateFromAdministratorAccountRequest request) { request = beforeClientExecution(request); return executeDisassociateFromAdministratorAccount(request); } @SdkInternalApi final DisassociateFromAdministratorAccountResult executeDisassociateFromAdministratorAccount( DisassociateFromAdministratorAccountRequest disassociateFromAdministratorAccountRequest) { ExecutionContext executionContext = createExecutionContext(disassociateFromAdministratorAccountRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisassociateFromAdministratorAccountRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(disassociateFromAdministratorAccountRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisassociateFromAdministratorAccount"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisassociateFromAdministratorAccountResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This method is deprecated. Instead, use DisassociateFromAdministratorAccount. *

*

* The Security Hub console continues to use DisassociateFromMasterAccount. It will eventually change * to use DisassociateFromAdministratorAccount. Any IAM policies that specifically control access to * this function must continue to use DisassociateFromMasterAccount. You should also add * DisassociateFromAdministratorAccount to your policies to ensure that the correct permissions are in * place after the console begins to use DisassociateFromAdministratorAccount. *

*

* Disassociates the current Security Hub member account from the associated administrator account. *

*

* This operation is only used by accounts that are not part of an organization. For organization accounts, only the * administrator account can disassociate a member account. *

* * @param disassociateFromMasterAccountRequest * @return Result of the DisassociateFromMasterAccount operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.DisassociateFromMasterAccount * @see AWS API Documentation */ @Override @Deprecated public DisassociateFromMasterAccountResult disassociateFromMasterAccount(DisassociateFromMasterAccountRequest request) { request = beforeClientExecution(request); return executeDisassociateFromMasterAccount(request); } @SdkInternalApi final DisassociateFromMasterAccountResult executeDisassociateFromMasterAccount(DisassociateFromMasterAccountRequest disassociateFromMasterAccountRequest) { ExecutionContext executionContext = createExecutionContext(disassociateFromMasterAccountRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisassociateFromMasterAccountRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(disassociateFromMasterAccountRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisassociateFromMasterAccount"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisassociateFromMasterAccountResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disassociates the specified member accounts from the associated administrator account. *

*

* Can be used to disassociate both accounts that are managed using Organizations and accounts that were invited * manually. *

* * @param disassociateMembersRequest * @return Result of the DisassociateMembers operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.DisassociateMembers * @see AWS API Documentation */ @Override public DisassociateMembersResult disassociateMembers(DisassociateMembersRequest request) { request = beforeClientExecution(request); return executeDisassociateMembers(request); } @SdkInternalApi final DisassociateMembersResult executeDisassociateMembers(DisassociateMembersRequest disassociateMembersRequest) { ExecutionContext executionContext = createExecutionContext(disassociateMembersRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisassociateMembersRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(disassociateMembersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisassociateMembers"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisassociateMembersResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Enables the integration of a partner product with Security Hub. Integrated products send findings to Security * Hub. *

*

* When you enable a product integration, a permissions policy that grants permission for the product to send * findings to Security Hub is applied. *

* * @param enableImportFindingsForProductRequest * @return Result of the EnableImportFindingsForProduct operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceConflictException * The resource specified in the request conflicts with an existing resource. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.EnableImportFindingsForProduct * @see AWS API Documentation */ @Override public EnableImportFindingsForProductResult enableImportFindingsForProduct(EnableImportFindingsForProductRequest request) { request = beforeClientExecution(request); return executeEnableImportFindingsForProduct(request); } @SdkInternalApi final EnableImportFindingsForProductResult executeEnableImportFindingsForProduct(EnableImportFindingsForProductRequest enableImportFindingsForProductRequest) { ExecutionContext executionContext = createExecutionContext(enableImportFindingsForProductRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new EnableImportFindingsForProductRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(enableImportFindingsForProductRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "EnableImportFindingsForProduct"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new EnableImportFindingsForProductResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Designates the Security Hub administrator account for an organization. Can only be called by the organization * management account. *

* * @param enableOrganizationAdminAccountRequest * @return Result of the EnableOrganizationAdminAccount operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.EnableOrganizationAdminAccount * @see AWS API Documentation */ @Override public EnableOrganizationAdminAccountResult enableOrganizationAdminAccount(EnableOrganizationAdminAccountRequest request) { request = beforeClientExecution(request); return executeEnableOrganizationAdminAccount(request); } @SdkInternalApi final EnableOrganizationAdminAccountResult executeEnableOrganizationAdminAccount(EnableOrganizationAdminAccountRequest enableOrganizationAdminAccountRequest) { ExecutionContext executionContext = createExecutionContext(enableOrganizationAdminAccountRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new EnableOrganizationAdminAccountRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(enableOrganizationAdminAccountRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "EnableOrganizationAdminAccount"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new EnableOrganizationAdminAccountResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Enables Security Hub for your account in the current Region or the Region you specify in the request. *

*

* When you enable Security Hub, you grant to Security Hub the permissions necessary to gather findings from other * services that are integrated with Security Hub. *

*

* When you use the EnableSecurityHub operation to enable Security Hub, you also automatically enable * the following standards: *

*
    *
  • *

    * Center for Internet Security (CIS) Amazon Web Services Foundations Benchmark v1.2.0 *

    *
  • *
  • *

    * Amazon Web Services Foundational Security Best Practices *

    *
  • *
*

* Other standards are not automatically enabled. *

*

* To opt out of automatically enabled standards, set EnableDefaultStandards to false. *

*

* After you enable Security Hub, to enable a standard, use the BatchEnableStandards operation. To * disable a standard, use the BatchDisableStandards operation. *

*

* To learn more, see the setup information * in the Security Hub User Guide. *

* * @param enableSecurityHubRequest * @return Result of the EnableSecurityHub operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceConflictException * The resource specified in the request conflicts with an existing resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.EnableSecurityHub * @see AWS * API Documentation */ @Override public EnableSecurityHubResult enableSecurityHub(EnableSecurityHubRequest request) { request = beforeClientExecution(request); return executeEnableSecurityHub(request); } @SdkInternalApi final EnableSecurityHubResult executeEnableSecurityHub(EnableSecurityHubRequest enableSecurityHubRequest) { ExecutionContext executionContext = createExecutionContext(enableSecurityHubRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new EnableSecurityHubRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(enableSecurityHubRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "EnableSecurityHub"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new EnableSecurityHubResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Provides the details for the Security Hub administrator account for the current member account. *

*

* Can be used by both member accounts that are managed using Organizations and accounts that were invited manually. *

* * @param getAdministratorAccountRequest * @return Result of the GetAdministratorAccount operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.GetAdministratorAccount * @see AWS API Documentation */ @Override public GetAdministratorAccountResult getAdministratorAccount(GetAdministratorAccountRequest request) { request = beforeClientExecution(request); return executeGetAdministratorAccount(request); } @SdkInternalApi final GetAdministratorAccountResult executeGetAdministratorAccount(GetAdministratorAccountRequest getAdministratorAccountRequest) { ExecutionContext executionContext = createExecutionContext(getAdministratorAccountRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetAdministratorAccountRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getAdministratorAccountRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetAdministratorAccount"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetAdministratorAccountResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Provides information about a configuration policy. Only the Security Hub delegated administrator can invoke this * operation from the home Region. *

* * @param getConfigurationPolicyRequest * @return Result of the GetConfigurationPolicy operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.GetConfigurationPolicy * @see AWS API Documentation */ @Override public GetConfigurationPolicyResult getConfigurationPolicy(GetConfigurationPolicyRequest request) { request = beforeClientExecution(request); return executeGetConfigurationPolicy(request); } @SdkInternalApi final GetConfigurationPolicyResult executeGetConfigurationPolicy(GetConfigurationPolicyRequest getConfigurationPolicyRequest) { ExecutionContext executionContext = createExecutionContext(getConfigurationPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetConfigurationPolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getConfigurationPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetConfigurationPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetConfigurationPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the association between a configuration and a target account, organizational unit, or the root. The * configuration can be a configuration policy or self-managed behavior. Only the Security Hub delegated * administrator can invoke this operation from the home Region. *

* * @param getConfigurationPolicyAssociationRequest * @return Result of the GetConfigurationPolicyAssociation operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.GetConfigurationPolicyAssociation * @see AWS API Documentation */ @Override public GetConfigurationPolicyAssociationResult getConfigurationPolicyAssociation(GetConfigurationPolicyAssociationRequest request) { request = beforeClientExecution(request); return executeGetConfigurationPolicyAssociation(request); } @SdkInternalApi final GetConfigurationPolicyAssociationResult executeGetConfigurationPolicyAssociation( GetConfigurationPolicyAssociationRequest getConfigurationPolicyAssociationRequest) { ExecutionContext executionContext = createExecutionContext(getConfigurationPolicyAssociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetConfigurationPolicyAssociationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getConfigurationPolicyAssociationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetConfigurationPolicyAssociation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetConfigurationPolicyAssociationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of the standards that are currently enabled. *

* * @param getEnabledStandardsRequest * @return Result of the GetEnabledStandards operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.GetEnabledStandards * @see AWS API Documentation */ @Override public GetEnabledStandardsResult getEnabledStandards(GetEnabledStandardsRequest request) { request = beforeClientExecution(request); return executeGetEnabledStandards(request); } @SdkInternalApi final GetEnabledStandardsResult executeGetEnabledStandards(GetEnabledStandardsRequest getEnabledStandardsRequest) { ExecutionContext executionContext = createExecutionContext(getEnabledStandardsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetEnabledStandardsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getEnabledStandardsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetEnabledStandards"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetEnabledStandardsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the current finding aggregation configuration. *

* * @param getFindingAggregatorRequest * @return Result of the GetFindingAggregator operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.GetFindingAggregator * @see AWS API Documentation */ @Override public GetFindingAggregatorResult getFindingAggregator(GetFindingAggregatorRequest request) { request = beforeClientExecution(request); return executeGetFindingAggregator(request); } @SdkInternalApi final GetFindingAggregatorResult executeGetFindingAggregator(GetFindingAggregatorRequest getFindingAggregatorRequest) { ExecutionContext executionContext = createExecutionContext(getFindingAggregatorRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetFindingAggregatorRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getFindingAggregatorRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetFindingAggregator"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetFindingAggregatorResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns history for a Security Hub finding in the last 90 days. The history includes changes made to any fields * in the Amazon Web Services Security Finding Format (ASFF). *

* * @param getFindingHistoryRequest * @return Result of the GetFindingHistory operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.GetFindingHistory * @see AWS * API Documentation */ @Override public GetFindingHistoryResult getFindingHistory(GetFindingHistoryRequest request) { request = beforeClientExecution(request); return executeGetFindingHistory(request); } @SdkInternalApi final GetFindingHistoryResult executeGetFindingHistory(GetFindingHistoryRequest getFindingHistoryRequest) { ExecutionContext executionContext = createExecutionContext(getFindingHistoryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetFindingHistoryRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getFindingHistoryRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetFindingHistory"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetFindingHistoryResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of findings that match the specified criteria. *

*

* If finding aggregation is enabled, then when you call GetFindings from the aggregation Region, the * results include all of the matching findings from both the aggregation Region and the linked Regions. *

* * @param getFindingsRequest * @return Result of the GetFindings operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.GetFindings * @see AWS API * Documentation */ @Override public GetFindingsResult getFindings(GetFindingsRequest request) { request = beforeClientExecution(request); return executeGetFindings(request); } @SdkInternalApi final GetFindingsResult executeGetFindings(GetFindingsRequest getFindingsRequest) { ExecutionContext executionContext = createExecutionContext(getFindingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetFindingsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getFindingsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetFindings"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetFindingsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists the results of the Security Hub insight specified by the insight ARN. *

* * @param getInsightResultsRequest * @return Result of the GetInsightResults operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.GetInsightResults * @see AWS * API Documentation */ @Override public GetInsightResultsResult getInsightResults(GetInsightResultsRequest request) { request = beforeClientExecution(request); return executeGetInsightResults(request); } @SdkInternalApi final GetInsightResultsResult executeGetInsightResults(GetInsightResultsRequest getInsightResultsRequest) { ExecutionContext executionContext = createExecutionContext(getInsightResultsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetInsightResultsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getInsightResultsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetInsightResults"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetInsightResultsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists and describes insights for the specified insight ARNs. *

* * @param getInsightsRequest * @return Result of the GetInsights operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.GetInsights * @see AWS API * Documentation */ @Override public GetInsightsResult getInsights(GetInsightsRequest request) { request = beforeClientExecution(request); return executeGetInsights(request); } @SdkInternalApi final GetInsightsResult executeGetInsights(GetInsightsRequest getInsightsRequest) { ExecutionContext executionContext = createExecutionContext(getInsightsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetInsightsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getInsightsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetInsights"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetInsightsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the count of all Security Hub membership invitations that were sent to the current member account, not * including the currently accepted invitation. *

* * @param getInvitationsCountRequest * @return Result of the GetInvitationsCount operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.GetInvitationsCount * @see AWS API Documentation */ @Override public GetInvitationsCountResult getInvitationsCount(GetInvitationsCountRequest request) { request = beforeClientExecution(request); return executeGetInvitationsCount(request); } @SdkInternalApi final GetInvitationsCountResult executeGetInvitationsCount(GetInvitationsCountRequest getInvitationsCountRequest) { ExecutionContext executionContext = createExecutionContext(getInvitationsCountRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetInvitationsCountRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getInvitationsCountRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetInvitationsCount"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetInvitationsCountResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This method is deprecated. Instead, use GetAdministratorAccount. *

*

* The Security Hub console continues to use GetMasterAccount. It will eventually change to use * GetAdministratorAccount. Any IAM policies that specifically control access to this function must * continue to use GetMasterAccount. You should also add GetAdministratorAccount to your * policies to ensure that the correct permissions are in place after the console begins to use * GetAdministratorAccount. *

*

* Provides the details for the Security Hub administrator account for the current member account. *

*

* Can be used by both member accounts that are managed using Organizations and accounts that were invited manually. *

* * @param getMasterAccountRequest * @return Result of the GetMasterAccount operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.GetMasterAccount * @see AWS * API Documentation */ @Override @Deprecated public GetMasterAccountResult getMasterAccount(GetMasterAccountRequest request) { request = beforeClientExecution(request); return executeGetMasterAccount(request); } @SdkInternalApi final GetMasterAccountResult executeGetMasterAccount(GetMasterAccountRequest getMasterAccountRequest) { ExecutionContext executionContext = createExecutionContext(getMasterAccountRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetMasterAccountRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getMasterAccountRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetMasterAccount"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetMasterAccountResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the details for the Security Hub member accounts for the specified account IDs. *

*

* An administrator account can be either the delegated Security Hub administrator account for an organization or an * administrator account that enabled Security Hub manually. *

*

* The results include both member accounts that are managed using Organizations and accounts that were invited * manually. *

* * @param getMembersRequest * @return Result of the GetMembers operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.GetMembers * @see AWS API * Documentation */ @Override public GetMembersResult getMembers(GetMembersRequest request) { request = beforeClientExecution(request); return executeGetMembers(request); } @SdkInternalApi final GetMembersResult executeGetMembers(GetMembersRequest getMembersRequest) { ExecutionContext executionContext = createExecutionContext(getMembersRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetMembersRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getMembersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetMembers"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetMembersResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the definition of a security control. The definition includes the control title, description, Region * availability, parameter definitions, and other details. *

* * @param getSecurityControlDefinitionRequest * @return Result of the GetSecurityControlDefinition operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.GetSecurityControlDefinition * @see AWS API Documentation */ @Override public GetSecurityControlDefinitionResult getSecurityControlDefinition(GetSecurityControlDefinitionRequest request) { request = beforeClientExecution(request); return executeGetSecurityControlDefinition(request); } @SdkInternalApi final GetSecurityControlDefinitionResult executeGetSecurityControlDefinition(GetSecurityControlDefinitionRequest getSecurityControlDefinitionRequest) { ExecutionContext executionContext = createExecutionContext(getSecurityControlDefinitionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSecurityControlDefinitionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getSecurityControlDefinitionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetSecurityControlDefinition"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetSecurityControlDefinitionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Invites other Amazon Web Services accounts to become member accounts for the Security Hub administrator account * that the invitation is sent from. *

*

* This operation is only used to invite accounts that do not belong to an organization. Organization accounts do * not receive invitations. *

*

* Before you can use this action to invite a member, you must first use the CreateMembers action to * create the member account in Security Hub. *

*

* When the account owner enables Security Hub and accepts the invitation to become a member account, the * administrator account can view the findings generated from the member account. *

* * @param inviteMembersRequest * @return Result of the InviteMembers operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.InviteMembers * @see AWS API * Documentation */ @Override public InviteMembersResult inviteMembers(InviteMembersRequest request) { request = beforeClientExecution(request); return executeInviteMembers(request); } @SdkInternalApi final InviteMembersResult executeInviteMembers(InviteMembersRequest inviteMembersRequest) { ExecutionContext executionContext = createExecutionContext(inviteMembersRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new InviteMembersRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(inviteMembersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "InviteMembers"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new InviteMembersResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* A list of automation rules and their metadata for the calling account. *

* * @param listAutomationRulesRequest * @return Result of the ListAutomationRules operation returned by the service. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.ListAutomationRules * @see AWS API Documentation */ @Override public ListAutomationRulesResult listAutomationRules(ListAutomationRulesRequest request) { request = beforeClientExecution(request); return executeListAutomationRules(request); } @SdkInternalApi final ListAutomationRulesResult executeListAutomationRules(ListAutomationRulesRequest listAutomationRulesRequest) { ExecutionContext executionContext = createExecutionContext(listAutomationRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListAutomationRulesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listAutomationRulesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListAutomationRules"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListAutomationRulesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists the configuration policies that the Security Hub delegated administrator has created for your organization. * Only the delegated administrator can invoke this operation from the home Region. *

* * @param listConfigurationPoliciesRequest * @return Result of the ListConfigurationPolicies operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.ListConfigurationPolicies * @see AWS API Documentation */ @Override public ListConfigurationPoliciesResult listConfigurationPolicies(ListConfigurationPoliciesRequest request) { request = beforeClientExecution(request); return executeListConfigurationPolicies(request); } @SdkInternalApi final ListConfigurationPoliciesResult executeListConfigurationPolicies(ListConfigurationPoliciesRequest listConfigurationPoliciesRequest) { ExecutionContext executionContext = createExecutionContext(listConfigurationPoliciesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListConfigurationPoliciesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listConfigurationPoliciesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListConfigurationPolicies"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListConfigurationPoliciesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Provides information about the associations for your configuration policies and self-managed behavior. Only the * Security Hub delegated administrator can invoke this operation from the home Region. *

* * @param listConfigurationPolicyAssociationsRequest * @return Result of the ListConfigurationPolicyAssociations operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.ListConfigurationPolicyAssociations * @see AWS API Documentation */ @Override public ListConfigurationPolicyAssociationsResult listConfigurationPolicyAssociations(ListConfigurationPolicyAssociationsRequest request) { request = beforeClientExecution(request); return executeListConfigurationPolicyAssociations(request); } @SdkInternalApi final ListConfigurationPolicyAssociationsResult executeListConfigurationPolicyAssociations( ListConfigurationPolicyAssociationsRequest listConfigurationPolicyAssociationsRequest) { ExecutionContext executionContext = createExecutionContext(listConfigurationPolicyAssociationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListConfigurationPolicyAssociationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listConfigurationPolicyAssociationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListConfigurationPolicyAssociations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListConfigurationPolicyAssociationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all findings-generating solutions (products) that you are subscribed to receive findings from in Security * Hub. *

* * @param listEnabledProductsForImportRequest * @return Result of the ListEnabledProductsForImport operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @sample AWSSecurityHub.ListEnabledProductsForImport * @see AWS API Documentation */ @Override public ListEnabledProductsForImportResult listEnabledProductsForImport(ListEnabledProductsForImportRequest request) { request = beforeClientExecution(request); return executeListEnabledProductsForImport(request); } @SdkInternalApi final ListEnabledProductsForImportResult executeListEnabledProductsForImport(ListEnabledProductsForImportRequest listEnabledProductsForImportRequest) { ExecutionContext executionContext = createExecutionContext(listEnabledProductsForImportRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListEnabledProductsForImportRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listEnabledProductsForImportRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListEnabledProductsForImport"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListEnabledProductsForImportResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* If finding aggregation is enabled, then ListFindingAggregators returns the ARN of the finding * aggregator. You can run this operation from any Region. *

* * @param listFindingAggregatorsRequest * @return Result of the ListFindingAggregators operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @sample AWSSecurityHub.ListFindingAggregators * @see AWS API Documentation */ @Override public ListFindingAggregatorsResult listFindingAggregators(ListFindingAggregatorsRequest request) { request = beforeClientExecution(request); return executeListFindingAggregators(request); } @SdkInternalApi final ListFindingAggregatorsResult executeListFindingAggregators(ListFindingAggregatorsRequest listFindingAggregatorsRequest) { ExecutionContext executionContext = createExecutionContext(listFindingAggregatorsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListFindingAggregatorsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listFindingAggregatorsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListFindingAggregators"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListFindingAggregatorsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all Security Hub membership invitations that were sent to the current Amazon Web Services account. *

*

* This operation is only used by accounts that are managed by invitation. Accounts that are managed using the * integration with Organizations do not receive invitations. *

* * @param listInvitationsRequest * @return Result of the ListInvitations operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.ListInvitations * @see AWS * API Documentation */ @Override public ListInvitationsResult listInvitations(ListInvitationsRequest request) { request = beforeClientExecution(request); return executeListInvitations(request); } @SdkInternalApi final ListInvitationsResult executeListInvitations(ListInvitationsRequest listInvitationsRequest) { ExecutionContext executionContext = createExecutionContext(listInvitationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListInvitationsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listInvitationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListInvitations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListInvitationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists details about all member accounts for the current Security Hub administrator account. *

*

* The results include both member accounts that belong to an organization and member accounts that were invited * manually. *

* * @param listMembersRequest * @return Result of the ListMembers operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.ListMembers * @see AWS API * Documentation */ @Override public ListMembersResult listMembers(ListMembersRequest request) { request = beforeClientExecution(request); return executeListMembers(request); } @SdkInternalApi final ListMembersResult executeListMembers(ListMembersRequest listMembersRequest) { ExecutionContext executionContext = createExecutionContext(listMembersRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListMembersRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listMembersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListMembers"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListMembersResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists the Security Hub administrator accounts. Can only be called by the organization management account. *

* * @param listOrganizationAdminAccountsRequest * @return Result of the ListOrganizationAdminAccounts operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.ListOrganizationAdminAccounts * @see AWS API Documentation */ @Override public ListOrganizationAdminAccountsResult listOrganizationAdminAccounts(ListOrganizationAdminAccountsRequest request) { request = beforeClientExecution(request); return executeListOrganizationAdminAccounts(request); } @SdkInternalApi final ListOrganizationAdminAccountsResult executeListOrganizationAdminAccounts(ListOrganizationAdminAccountsRequest listOrganizationAdminAccountsRequest) { ExecutionContext executionContext = createExecutionContext(listOrganizationAdminAccountsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListOrganizationAdminAccountsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listOrganizationAdminAccountsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListOrganizationAdminAccounts"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListOrganizationAdminAccountsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all of the security controls that apply to a specified standard. *

* * @param listSecurityControlDefinitionsRequest * @return Result of the ListSecurityControlDefinitions operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @sample AWSSecurityHub.ListSecurityControlDefinitions * @see AWS API Documentation */ @Override public ListSecurityControlDefinitionsResult listSecurityControlDefinitions(ListSecurityControlDefinitionsRequest request) { request = beforeClientExecution(request); return executeListSecurityControlDefinitions(request); } @SdkInternalApi final ListSecurityControlDefinitionsResult executeListSecurityControlDefinitions(ListSecurityControlDefinitionsRequest listSecurityControlDefinitionsRequest) { ExecutionContext executionContext = createExecutionContext(listSecurityControlDefinitionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListSecurityControlDefinitionsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listSecurityControlDefinitionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListSecurityControlDefinitions"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListSecurityControlDefinitionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Specifies whether a control is currently enabled or disabled in each enabled standard in the calling account. *

* * @param listStandardsControlAssociationsRequest * @return Result of the ListStandardsControlAssociations operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @sample AWSSecurityHub.ListStandardsControlAssociations * @see AWS API Documentation */ @Override public ListStandardsControlAssociationsResult listStandardsControlAssociations(ListStandardsControlAssociationsRequest request) { request = beforeClientExecution(request); return executeListStandardsControlAssociations(request); } @SdkInternalApi final ListStandardsControlAssociationsResult executeListStandardsControlAssociations( ListStandardsControlAssociationsRequest listStandardsControlAssociationsRequest) { ExecutionContext executionContext = createExecutionContext(listStandardsControlAssociationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListStandardsControlAssociationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listStandardsControlAssociationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListStandardsControlAssociations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListStandardsControlAssociationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of tags associated with a resource. *

* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.ListTagsForResource * @see AWS API Documentation */ @Override public ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest request) { request = beforeClientExecution(request); return executeListTagsForResource(request); } @SdkInternalApi final ListTagsForResourceResult executeListTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTagsForResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listTagsForResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListTagsForResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListTagsForResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Associates a target account, organizational unit, or the root with a specified configuration. The target can be * associated with a configuration policy or self-managed behavior. Only the Security Hub delegated administrator * can invoke this operation from the home Region. *

* * @param startConfigurationPolicyAssociationRequest * @return Result of the StartConfigurationPolicyAssociation operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.StartConfigurationPolicyAssociation * @see AWS API Documentation */ @Override public StartConfigurationPolicyAssociationResult startConfigurationPolicyAssociation(StartConfigurationPolicyAssociationRequest request) { request = beforeClientExecution(request); return executeStartConfigurationPolicyAssociation(request); } @SdkInternalApi final StartConfigurationPolicyAssociationResult executeStartConfigurationPolicyAssociation( StartConfigurationPolicyAssociationRequest startConfigurationPolicyAssociationRequest) { ExecutionContext executionContext = createExecutionContext(startConfigurationPolicyAssociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new StartConfigurationPolicyAssociationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(startConfigurationPolicyAssociationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StartConfigurationPolicyAssociation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StartConfigurationPolicyAssociationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disassociates a target account, organizational unit, or the root from a specified configuration. When you * disassociate a configuration from its target, the target inherits the configuration of the closest parent. If * there’s no configuration to inherit, the target retains its settings but becomes a self-managed account. A target * can be disassociated from a configuration policy or self-managed behavior. Only the Security Hub delegated * administrator can invoke this operation from the home Region. *

* * @param startConfigurationPolicyDisassociationRequest * @return Result of the StartConfigurationPolicyDisassociation operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.StartConfigurationPolicyDisassociation * @see AWS API Documentation */ @Override public StartConfigurationPolicyDisassociationResult startConfigurationPolicyDisassociation(StartConfigurationPolicyDisassociationRequest request) { request = beforeClientExecution(request); return executeStartConfigurationPolicyDisassociation(request); } @SdkInternalApi final StartConfigurationPolicyDisassociationResult executeStartConfigurationPolicyDisassociation( StartConfigurationPolicyDisassociationRequest startConfigurationPolicyDisassociationRequest) { ExecutionContext executionContext = createExecutionContext(startConfigurationPolicyDisassociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new StartConfigurationPolicyDisassociationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(startConfigurationPolicyDisassociationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StartConfigurationPolicyDisassociation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StartConfigurationPolicyDisassociationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds one or more tags to a resource. *

* * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.TagResource * @see AWS API * Documentation */ @Override public TagResourceResult tagResource(TagResourceRequest request) { request = beforeClientExecution(request); return executeTagResource(request); } @SdkInternalApi final TagResourceResult executeTagResource(TagResourceRequest tagResourceRequest) { ExecutionContext executionContext = createExecutionContext(tagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(tagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes one or more tags from a resource. *

* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.UntagResource * @see AWS API * Documentation */ @Override public UntagResourceResult untagResource(UntagResourceRequest request) { request = beforeClientExecution(request); return executeUntagResource(request); } @SdkInternalApi final UntagResourceResult executeUntagResource(UntagResourceRequest untagResourceRequest) { ExecutionContext executionContext = createExecutionContext(untagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UntagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(untagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UntagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UntagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the name and description of a custom action target in Security Hub. *

* * @param updateActionTargetRequest * @return Result of the UpdateActionTarget operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.UpdateActionTarget * @see AWS * API Documentation */ @Override public UpdateActionTargetResult updateActionTarget(UpdateActionTargetRequest request) { request = beforeClientExecution(request); return executeUpdateActionTarget(request); } @SdkInternalApi final UpdateActionTargetResult executeUpdateActionTarget(UpdateActionTargetRequest updateActionTargetRequest) { ExecutionContext executionContext = createExecutionContext(updateActionTargetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateActionTargetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateActionTargetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateActionTarget"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateActionTargetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates a configuration policy. Only the Security Hub delegated administrator can invoke this operation from the * home Region. *

* * @param updateConfigurationPolicyRequest * @return Result of the UpdateConfigurationPolicy operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws ResourceConflictException * The resource specified in the request conflicts with an existing resource. * @sample AWSSecurityHub.UpdateConfigurationPolicy * @see AWS API Documentation */ @Override public UpdateConfigurationPolicyResult updateConfigurationPolicy(UpdateConfigurationPolicyRequest request) { request = beforeClientExecution(request); return executeUpdateConfigurationPolicy(request); } @SdkInternalApi final UpdateConfigurationPolicyResult executeUpdateConfigurationPolicy(UpdateConfigurationPolicyRequest updateConfigurationPolicyRequest) { ExecutionContext executionContext = createExecutionContext(updateConfigurationPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateConfigurationPolicyRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(updateConfigurationPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateConfigurationPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateConfigurationPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the finding aggregation configuration. Used to update the Region linking mode and the list of included or * excluded Regions. You cannot use UpdateFindingAggregator to change the aggregation Region. *

*

* You must run UpdateFindingAggregator from the current aggregation Region. *

* * @param updateFindingAggregatorRequest * @return Result of the UpdateFindingAggregator operation returned by the service. * @throws InternalException * Internal server error. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.UpdateFindingAggregator * @see AWS API Documentation */ @Override public UpdateFindingAggregatorResult updateFindingAggregator(UpdateFindingAggregatorRequest request) { request = beforeClientExecution(request); return executeUpdateFindingAggregator(request); } @SdkInternalApi final UpdateFindingAggregatorResult executeUpdateFindingAggregator(UpdateFindingAggregatorRequest updateFindingAggregatorRequest) { ExecutionContext executionContext = createExecutionContext(updateFindingAggregatorRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateFindingAggregatorRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(updateFindingAggregatorRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateFindingAggregator"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateFindingAggregatorResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* UpdateFindings is deprecated. Instead of UpdateFindings, use * BatchUpdateFindings. *

*

* Updates the Note and RecordState of the Security Hub-aggregated findings that the * filter attributes specify. Any member account that can view the finding also sees the update to the finding. *

* * @param updateFindingsRequest * @return Result of the UpdateFindings operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.UpdateFindings * @see AWS API * Documentation */ @Override public UpdateFindingsResult updateFindings(UpdateFindingsRequest request) { request = beforeClientExecution(request); return executeUpdateFindings(request); } @SdkInternalApi final UpdateFindingsResult executeUpdateFindings(UpdateFindingsRequest updateFindingsRequest) { ExecutionContext executionContext = createExecutionContext(updateFindingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateFindingsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateFindingsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateFindings"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateFindingsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the Security Hub insight identified by the specified insight ARN. *

* * @param updateInsightRequest * @return Result of the UpdateInsight operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @sample AWSSecurityHub.UpdateInsight * @see AWS API * Documentation */ @Override public UpdateInsightResult updateInsight(UpdateInsightRequest request) { request = beforeClientExecution(request); return executeUpdateInsight(request); } @SdkInternalApi final UpdateInsightResult executeUpdateInsight(UpdateInsightRequest updateInsightRequest) { ExecutionContext executionContext = createExecutionContext(updateInsightRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateInsightRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateInsightRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateInsight"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateInsightResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the configuration of your organization in Security Hub. Only the Security Hub administrator account can * invoke this operation. *

* * @param updateOrganizationConfigurationRequest * @return Result of the UpdateOrganizationConfiguration operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws ResourceConflictException * The resource specified in the request conflicts with an existing resource. * @sample AWSSecurityHub.UpdateOrganizationConfiguration * @see AWS API Documentation */ @Override public UpdateOrganizationConfigurationResult updateOrganizationConfiguration(UpdateOrganizationConfigurationRequest request) { request = beforeClientExecution(request); return executeUpdateOrganizationConfiguration(request); } @SdkInternalApi final UpdateOrganizationConfigurationResult executeUpdateOrganizationConfiguration( UpdateOrganizationConfigurationRequest updateOrganizationConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(updateOrganizationConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateOrganizationConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(updateOrganizationConfigurationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateOrganizationConfiguration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateOrganizationConfigurationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the properties of a security control. *

* * @param updateSecurityControlRequest * @return Result of the UpdateSecurityControl operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws ResourceInUseException * The request was rejected because it conflicts with the resource's availability. For example, you tried to * update a security control that's currently in the UPDATING state. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws ResourceInUseException * The request was rejected because it conflicts with the resource's availability. For example, you tried to * update a security control that's currently in the UPDATING state. * @sample AWSSecurityHub.UpdateSecurityControl * @see AWS API Documentation */ @Override public UpdateSecurityControlResult updateSecurityControl(UpdateSecurityControlRequest request) { request = beforeClientExecution(request); return executeUpdateSecurityControl(request); } @SdkInternalApi final UpdateSecurityControlResult executeUpdateSecurityControl(UpdateSecurityControlRequest updateSecurityControlRequest) { ExecutionContext executionContext = createExecutionContext(updateSecurityControlRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateSecurityControlRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateSecurityControlRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateSecurityControl"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateSecurityControlResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates configuration options for Security Hub. *

* * @param updateSecurityHubConfigurationRequest * @return Result of the UpdateSecurityHubConfiguration operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws LimitExceededException * The request was rejected because it attempted to create resources beyond the current Amazon Web Services * account or throttling limits. The error code describes the limit exceeded. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.UpdateSecurityHubConfiguration * @see AWS API Documentation */ @Override public UpdateSecurityHubConfigurationResult updateSecurityHubConfiguration(UpdateSecurityHubConfigurationRequest request) { request = beforeClientExecution(request); return executeUpdateSecurityHubConfiguration(request); } @SdkInternalApi final UpdateSecurityHubConfigurationResult executeUpdateSecurityHubConfiguration(UpdateSecurityHubConfigurationRequest updateSecurityHubConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(updateSecurityHubConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateSecurityHubConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(updateSecurityHubConfigurationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateSecurityHubConfiguration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateSecurityHubConfigurationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Used to control whether an individual security standard control is enabled or disabled. *

* * @param updateStandardsControlRequest * @return Result of the UpdateStandardsControl operation returned by the service. * @throws InternalException * Internal server error. * @throws InvalidInputException * The request was rejected because you supplied an invalid or out-of-range value for an input parameter. * @throws InvalidAccessException * The account doesn't have permission to perform this action. * @throws ResourceNotFoundException * The request was rejected because we can't find the specified resource. * @throws AccessDeniedException * You don't have permission to perform the action specified in the request. * @sample AWSSecurityHub.UpdateStandardsControl * @see AWS API Documentation */ @Override public UpdateStandardsControlResult updateStandardsControl(UpdateStandardsControlRequest request) { request = beforeClientExecution(request); return executeUpdateStandardsControl(request); } @SdkInternalApi final UpdateStandardsControlResult executeUpdateStandardsControl(UpdateStandardsControlRequest updateStandardsControlRequest) { ExecutionContext executionContext = createExecutionContext(updateStandardsControlRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateStandardsControlRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateStandardsControlRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "SecurityHub"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateStandardsControl"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateStandardsControlResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *

* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing the request. * * @param request * The originally executed request * * @return The response metadata for the specified request, or null if none is available. */ public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) { return client.getResponseMetadataForRequest(request); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return invoke(request, responseHandler, executionContext, null, null); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI cachedEndpoint, URI uriFromEndpointTrait) { executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext, cachedEndpoint, uriFromEndpointTrait); } /** * Invoke with no authentication. Credentials are not required and any credentials set on the client or request will * be ignored for this operation. **/ private Response anonymousInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext, null, null); } /** * Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the * ExecutionContext beforehand. **/ private Response doInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI discoveredEndpoint, URI uriFromEndpointTrait) { if (discoveredEndpoint != null) { request.setEndpoint(discoveredEndpoint); request.getOriginalRequest().getRequestClientOptions().appendUserAgent("endpoint-discovery"); } else if (uriFromEndpointTrait != null) { request.setEndpoint(uriFromEndpointTrait); } else { request.setEndpoint(endpoint); } request.setTimeOffset(timeOffset); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } @com.amazonaws.annotation.SdkInternalApi static com.amazonaws.protocol.json.SdkJsonProtocolFactory getProtocolFactory() { return protocolFactory; } @Override public void shutdown() { super.shutdown(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy