/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.config; 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.config.AmazonConfigClientBuilder; import com.amazonaws.AmazonServiceException; import com.amazonaws.services.config.model.*; import com.amazonaws.services.config.model.transform.*; /** * Client for accessing Config Service. All service calls made using this client are blocking, and will not return until * the service call completes. *

* Config *

* Config provides a way to keep track of the configurations of all the Amazon Web Services resources associated with * your Amazon Web Services account. You can use Config to get the current and historical configurations of each Amazon * Web Services resource and also to get information about the relationship between the resources. An Amazon Web * Services resource can be an Amazon Compute Cloud (Amazon EC2) instance, an Elastic Block Store (EBS) volume, an * elastic network Interface (ENI), or a security group. For a complete list of resources currently supported by Config, * see Supported Amazon Web Services resources. *

*

* You can access and manage Config through the Amazon Web Services Management Console, the Amazon Web Services Command * Line Interface (Amazon Web Services CLI), the Config API, or the Amazon Web Services SDKs for Config. This reference * guide contains documentation for the Config API and the Amazon Web Services CLI commands that you can use to manage * Config. The Config API uses the Signature Version 4 protocol for signing requests. For more information about how to * sign a request with this protocol, see Signature Version 4 Signing * Process. For detailed information about Config features and their associated actions or commands, as well as how * to work with Amazon Web Services Management Console, see What Is Config in the Config * Developer Guide. *

*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AmazonConfigClient extends AmazonWebServiceClient implements AmazonConfig { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonConfig.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "config"; /** 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) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoRunningConfigurationRecorderException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoRunningConfigurationRecorderExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("OrganizationConformancePackTemplateValidationException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.OrganizationConformancePackTemplateValidationExceptionUnmarshaller .getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceNotDiscoveredException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.ResourceNotDiscoveredExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchRemediationConfigurationException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchRemediationConfigurationExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoAvailableDeliveryChannelException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoAvailableDeliveryChannelExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchRemediationExceptionException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchRemediationExceptionExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchRetentionConfigurationException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchRetentionConfigurationExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidResultTokenException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidResultTokenExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("OversizedConfigurationItemException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.OversizedConfigurationItemExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceConcurrentModificationException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.ResourceConcurrentModificationExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InsufficientDeliveryPolicyException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InsufficientDeliveryPolicyExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchConfigurationAggregatorException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchConfigurationAggregatorExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("RemediationInProgressException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.RemediationInProgressExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("OrganizationAccessDeniedException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.OrganizationAccessDeniedExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoAvailableConfigurationRecorderException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoAvailableConfigurationRecorderExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoAvailableOrganizationException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoAvailableOrganizationExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchDeliveryChannelException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchDeliveryChannelExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidNextTokenException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidNextTokenExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("LimitExceededException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.LimitExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("LastDeliveryChannelDeleteFailedException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.LastDeliveryChannelDeleteFailedExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("OrganizationAllFeaturesNotEnabledException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.OrganizationAllFeaturesNotEnabledExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidLimitException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidLimitExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchOrganizationConfigRuleException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchOrganizationConfigRuleExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("IdempotentParameterMismatch").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.IdempotentParameterMismatchExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("MaxNumberOfDeliveryChannelsExceededException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.MaxNumberOfDeliveryChannelsExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchConfigurationRecorderException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchConfigurationRecorderExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ValidationException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.ValidationExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("MaxNumberOfConfigRulesExceededException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.MaxNumberOfConfigRulesExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InsufficientPermissionsException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InsufficientPermissionsExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidExpressionException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidExpressionExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchOrganizationConformancePackException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchOrganizationConformancePackExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("MaxNumberOfConformancePacksExceededException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.MaxNumberOfConformancePacksExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("MaxNumberOfOrganizationConfigRulesExceededException") .withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.MaxNumberOfOrganizationConfigRulesExceededExceptionUnmarshaller .getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("MaxActiveResourcesExceededException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.MaxActiveResourcesExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidParameterValueException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidParameterValueExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceInUseException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.ResourceInUseExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchConfigRuleInConformancePackException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchConfigRuleInConformancePackExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("MaxNumberOfConfigurationRecordersExceededException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.MaxNumberOfConfigurationRecordersExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchConformancePackException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchConformancePackExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidS3KmsKeyArnException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidS3KmsKeyArnExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchBucketException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchBucketExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidRecordingGroupException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidRecordingGroupExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidConfigurationRecorderNameException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidConfigurationRecorderNameExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("TooManyTagsException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.TooManyTagsExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidSNSTopicARNException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidSNSTopicARNExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("MaxNumberOfRetentionConfigurationsExceededException") .withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.MaxNumberOfRetentionConfigurationsExceededExceptionUnmarshaller .getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidTimeRangeException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidTimeRangeExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoSuchConfigRuleException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.NoSuchConfigRuleExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidRoleException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidRoleExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidDeliveryChannelNameException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidDeliveryChannelNameExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ConformancePackTemplateValidationException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.ConformancePackTemplateValidationExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("MaxNumberOfOrganizationConformancePacksExceededException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.MaxNumberOfOrganizationConformancePacksExceededExceptionUnmarshaller .getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidS3KeyPrefixException").withExceptionUnmarshaller( com.amazonaws.services.config.model.transform.InvalidS3KeyPrefixExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.config.model.AmazonConfigException.class)); /** * Constructs a new client to invoke service methods on Config Service. A credentials provider chain will be used * that searches for credentials in this order: * * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @see DefaultAWSCredentialsProviderChain * @deprecated use {@link AmazonConfigClientBuilder#defaultClient()} */ @Deprecated public AmazonConfigClient() { this(DefaultAWSCredentialsProviderChain.getInstance(), configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Config Service. A credentials provider chain will be used * that searches for credentials in this order: *

* *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientConfiguration * The client configuration options controlling how this client connects to Config Service (ex: proxy * settings, retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain * @deprecated use {@link AmazonConfigClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AmazonConfigClient(ClientConfiguration clientConfiguration) { this(DefaultAWSCredentialsProviderChain.getInstance(), clientConfiguration); } /** * Constructs a new client to invoke service methods on Config Service using the specified AWS account credentials. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when authenticating with AWS services. * @deprecated use {@link AmazonConfigClientBuilder#withCredentials(AWSCredentialsProvider)} for example: * {@code AmazonConfigClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).build();} */ @Deprecated public AmazonConfigClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Config Service using the specified AWS account credentials * and client configuration options. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when authenticating with AWS services. * @param clientConfiguration * The client configuration options controlling how this client connects to Config Service (ex: proxy * settings, retry counts, etc.). * @deprecated use {@link AmazonConfigClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AmazonConfigClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AmazonConfigClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider(awsCredentials); this.advancedConfig = AdvancedConfig.EMPTY; init(); } /** * Constructs a new client to invoke service methods on Config Service using the specified AWS account credentials * provider. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to authenticate requests with AWS services. * @deprecated use {@link AmazonConfigClientBuilder#withCredentials(AWSCredentialsProvider)} */ @Deprecated public AmazonConfigClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Config Service using the specified AWS account credentials * provider and client configuration options. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client connects to Config Service (ex: proxy * settings, retry counts, etc.). * @deprecated use {@link AmazonConfigClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AmazonConfigClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AmazonConfigClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on Config Service using the specified AWS account credentials * provider, client configuration options, and request metric collector. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client connects to Config Service (ex: proxy * settings, retry counts, etc.). * @param requestMetricCollector * optional request metric collector * @deprecated use {@link AmazonConfigClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AmazonConfigClientBuilder#withClientConfiguration(ClientConfiguration)} and * {@link AmazonConfigClientBuilder#withMetricsCollector(RequestMetricCollector)} */ @Deprecated public AmazonConfigClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; this.advancedConfig = AdvancedConfig.EMPTY; init(); } public static AmazonConfigClientBuilder builder() { return AmazonConfigClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on Config Service 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. */ AmazonConfigClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on Config Service 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. */ AmazonConfigClient(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("config.us-east-1.amazonaws.com/"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/config/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/config/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *

* Returns the current configuration items for resources that are present in your Config aggregator. The operation * also returns a list of resources that are not processed in the current request. If there are no unprocessed * resources, the operation returns an empty unprocessedResourceIdentifiers list. *

* * * * * @param batchGetAggregateResourceConfigRequest * @return Result of the BatchGetAggregateResourceConfig operation returned by the service. * @throws ValidationException * The requested action is not valid.

*

* For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

*

* For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @sample AmazonConfig.BatchGetAggregateResourceConfig * @see AWS API Documentation */ @Override public BatchGetAggregateResourceConfigResult batchGetAggregateResourceConfig(BatchGetAggregateResourceConfigRequest request) { request = beforeClientExecution(request); return executeBatchGetAggregateResourceConfig(request); } @SdkInternalApi final BatchGetAggregateResourceConfigResult executeBatchGetAggregateResourceConfig( BatchGetAggregateResourceConfigRequest batchGetAggregateResourceConfigRequest) { ExecutionContext executionContext = createExecutionContext(batchGetAggregateResourceConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchGetAggregateResourceConfigRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(batchGetAggregateResourceConfigRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchGetAggregateResourceConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchGetAggregateResourceConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the BaseConfigurationItem for one or more requested resources. The operation also returns a * list of resources that are not processed in the current request. If there are no unprocessed resources, the * operation returns an empty unprocessedResourceKeys list. *

* * * * * @param batchGetResourceConfigRequest * @return Result of the BatchGetResourceConfig operation returned by the service. * @throws ValidationException * The requested action is not valid.

*

* For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

*

* For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws NoAvailableConfigurationRecorderException * There are no configuration recorders available to provide the role needed to describe your resources. * Create a configuration recorder. * @sample AmazonConfig.BatchGetResourceConfig * @see AWS * API Documentation */ @Override public BatchGetResourceConfigResult batchGetResourceConfig(BatchGetResourceConfigRequest request) { request = beforeClientExecution(request); return executeBatchGetResourceConfig(request); } @SdkInternalApi final BatchGetResourceConfigResult executeBatchGetResourceConfig(BatchGetResourceConfigRequest batchGetResourceConfigRequest) { ExecutionContext executionContext = createExecutionContext(batchGetResourceConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new BatchGetResourceConfigRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(batchGetResourceConfigRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "BatchGetResourceConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new BatchGetResourceConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the authorization granted to the specified configuration aggregator account in a specified region. *

* * @param deleteAggregationAuthorizationRequest * @return Result of the DeleteAggregationAuthorization operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.DeleteAggregationAuthorization * @see AWS API Documentation */ @Override public DeleteAggregationAuthorizationResult deleteAggregationAuthorization(DeleteAggregationAuthorizationRequest request) { request = beforeClientExecution(request); return executeDeleteAggregationAuthorization(request); } @SdkInternalApi final DeleteAggregationAuthorizationResult executeDeleteAggregationAuthorization(DeleteAggregationAuthorizationRequest deleteAggregationAuthorizationRequest) { ExecutionContext executionContext = createExecutionContext(deleteAggregationAuthorizationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteAggregationAuthorizationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteAggregationAuthorizationRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteAggregationAuthorization"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteAggregationAuthorizationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified Config rule and all of its evaluation results. *

*

* Config sets the state of a rule to DELETING until the deletion is complete. You cannot update a rule * while it is in this state. If you make a PutConfigRule or DeleteConfigRule request for * the rule, you will receive a ResourceInUseException. *

*

* You can check the state of a rule by using the DescribeConfigRules request. *

* * @param deleteConfigRuleRequest * @return Result of the DeleteConfigRule operation returned by the service. * @throws NoSuchConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that * the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again. * @throws ResourceInUseException * You see this exception in the following cases:

*
    *
  • *

    * For DeleteConfigRule, Config is deleting this rule. Try your request again later. *

    *
  • *
  • *

    * For DeleteConfigRule, the rule is deleting your evaluation results. Try your request again later. *

    *
  • *
  • *

    * For DeleteConfigRule, a remediation action is associated with the rule and Config cannot delete this * rule. Delete the remediation action associated with the rule before deleting the rule and try your * request again later. *

    *
  • *
  • *

    * For PutConfigOrganizationRule, organization Config rule deletion is in progress. Try your request again * later. *

    *
  • *
  • *

    * For DeleteOrganizationConfigRule, organization Config rule creation is in progress. Try your request * again later. *

    *
  • *
  • *

    * For PutConformancePack and PutOrganizationConformancePack, a conformance pack creation, update, and * deletion is in progress. Try your request again later. *

    *
  • *
  • *

    * For DeleteConformancePack, a conformance pack creation, update, and deletion is in progress. Try your * request again later. *

    *
  • * @sample AmazonConfig.DeleteConfigRule * @see AWS API * Documentation */ @Override public DeleteConfigRuleResult deleteConfigRule(DeleteConfigRuleRequest request) { request = beforeClientExecution(request); return executeDeleteConfigRule(request); } @SdkInternalApi final DeleteConfigRuleResult executeDeleteConfigRule(DeleteConfigRuleRequest deleteConfigRuleRequest) { ExecutionContext executionContext = createExecutionContext(deleteConfigRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteConfigRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteConfigRuleRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteConfigRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteConfigRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

    * Deletes the specified configuration aggregator and the aggregated data associated with the aggregator. *

    * * @param deleteConfigurationAggregatorRequest * @return Result of the DeleteConfigurationAggregator operation returned by the service. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @sample AmazonConfig.DeleteConfigurationAggregator * @see AWS API Documentation */ @Override public DeleteConfigurationAggregatorResult deleteConfigurationAggregator(DeleteConfigurationAggregatorRequest request) { request = beforeClientExecution(request); return executeDeleteConfigurationAggregator(request); } @SdkInternalApi final DeleteConfigurationAggregatorResult executeDeleteConfigurationAggregator(DeleteConfigurationAggregatorRequest deleteConfigurationAggregatorRequest) { ExecutionContext executionContext = createExecutionContext(deleteConfigurationAggregatorRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteConfigurationAggregatorRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteConfigurationAggregatorRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteConfigurationAggregator"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteConfigurationAggregatorResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

    * Deletes the configuration recorder. *

    *

    * After the configuration recorder is deleted, Config will not record resource configuration changes until you * create a new configuration recorder. *

    *

    * This action does not delete the configuration information that was previously recorded. You will be able to * access the previously recorded information by using the GetResourceConfigHistory action, but you * will not be able to access this information in the Config console until you create a new configuration recorder. *

    * * @param deleteConfigurationRecorderRequest * The request object for the DeleteConfigurationRecorder action. * @return Result of the DeleteConfigurationRecorder operation returned by the service. * @throws NoSuchConfigurationRecorderException * You have specified a configuration recorder that does not exist. * @sample AmazonConfig.DeleteConfigurationRecorder * @see AWS API Documentation */ @Override public DeleteConfigurationRecorderResult deleteConfigurationRecorder(DeleteConfigurationRecorderRequest request) { request = beforeClientExecution(request); return executeDeleteConfigurationRecorder(request); } @SdkInternalApi final DeleteConfigurationRecorderResult executeDeleteConfigurationRecorder(DeleteConfigurationRecorderRequest deleteConfigurationRecorderRequest) { ExecutionContext executionContext = createExecutionContext(deleteConfigurationRecorderRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteConfigurationRecorderRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteConfigurationRecorderRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteConfigurationRecorder"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteConfigurationRecorderResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

    * Deletes the specified conformance pack and all the Config rules, remediation actions, and all evaluation results * within that conformance pack. *

    *

    * Config sets the conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot * update a conformance pack while it is in this state. *

    * * @param deleteConformancePackRequest * @return Result of the DeleteConformancePack operation returned by the service. * @throws NoSuchConformancePackException * You specified one or more conformance packs that do not exist. * @throws ResourceInUseException * You see this exception in the following cases:

    *
      *
    • *

      * For DeleteConfigRule, Config is deleting this rule. Try your request again later. *

      *
    • *
    • *

      * For DeleteConfigRule, the rule is deleting your evaluation results. Try your request again later. *

      *
    • *
    • *

      * For DeleteConfigRule, a remediation action is associated with the rule and Config cannot delete this * rule. Delete the remediation action associated with the rule before deleting the rule and try your * request again later. *

      *
    • *
    • *

      * For PutConfigOrganizationRule, organization Config rule deletion is in progress. Try your request again * later. *

      *
    • *
    • *

      * For DeleteOrganizationConfigRule, organization Config rule creation is in progress. Try your request * again later. *

      *
    • *
    • *

      * For PutConformancePack and PutOrganizationConformancePack, a conformance pack creation, update, and * deletion is in progress. Try your request again later. *

      *
    • *
    • *

      * For DeleteConformancePack, a conformance pack creation, update, and deletion is in progress. Try your * request again later. *

      *
    • * @sample AmazonConfig.DeleteConformancePack * @see AWS * API Documentation */ @Override public DeleteConformancePackResult deleteConformancePack(DeleteConformancePackRequest request) { request = beforeClientExecution(request); return executeDeleteConformancePack(request); } @SdkInternalApi final DeleteConformancePackResult executeDeleteConformancePack(DeleteConformancePackRequest deleteConformancePackRequest) { ExecutionContext executionContext = createExecutionContext(deleteConformancePackRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteConformancePackRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteConformancePackRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteConformancePack"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteConformancePackResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

      * Deletes the delivery channel. *

      *

      * Before you can delete the delivery channel, you must stop the configuration recorder by using the * StopConfigurationRecorder action. *

      * * @param deleteDeliveryChannelRequest * The input for the DeleteDeliveryChannel action. The action accepts the following data, in JSON * format. * @return Result of the DeleteDeliveryChannel operation returned by the service. * @throws NoSuchDeliveryChannelException * You have specified a delivery channel that does not exist. * @throws LastDeliveryChannelDeleteFailedException * You cannot delete the delivery channel you specified because the configuration recorder is running. * @sample AmazonConfig.DeleteDeliveryChannel * @see AWS * API Documentation */ @Override public DeleteDeliveryChannelResult deleteDeliveryChannel(DeleteDeliveryChannelRequest request) { request = beforeClientExecution(request); return executeDeleteDeliveryChannel(request); } @SdkInternalApi final DeleteDeliveryChannelResult executeDeleteDeliveryChannel(DeleteDeliveryChannelRequest deleteDeliveryChannelRequest) { ExecutionContext executionContext = createExecutionContext(deleteDeliveryChannelRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDeliveryChannelRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteDeliveryChannelRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteDeliveryChannel"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteDeliveryChannelResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

      * Deletes the evaluation results for the specified Config rule. You can specify one Config rule per request. After * you delete the evaluation results, you can call the StartConfigRulesEvaluation API to start evaluating * your Amazon Web Services resources against the rule. *

      * * @param deleteEvaluationResultsRequest * @return Result of the DeleteEvaluationResults operation returned by the service. * @throws NoSuchConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that * the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again. * @throws ResourceInUseException * You see this exception in the following cases:

      *
        *
      • *

        * For DeleteConfigRule, Config is deleting this rule. Try your request again later. *

        *
      • *
      • *

        * For DeleteConfigRule, the rule is deleting your evaluation results. Try your request again later. *

        *
      • *
      • *

        * For DeleteConfigRule, a remediation action is associated with the rule and Config cannot delete this * rule. Delete the remediation action associated with the rule before deleting the rule and try your * request again later. *

        *
      • *
      • *

        * For PutConfigOrganizationRule, organization Config rule deletion is in progress. Try your request again * later. *

        *
      • *
      • *

        * For DeleteOrganizationConfigRule, organization Config rule creation is in progress. Try your request * again later. *

        *
      • *
      • *

        * For PutConformancePack and PutOrganizationConformancePack, a conformance pack creation, update, and * deletion is in progress. Try your request again later. *

        *
      • *
      • *

        * For DeleteConformancePack, a conformance pack creation, update, and deletion is in progress. Try your * request again later. *

        *
      • * @sample AmazonConfig.DeleteEvaluationResults * @see AWS * API Documentation */ @Override public DeleteEvaluationResultsResult deleteEvaluationResults(DeleteEvaluationResultsRequest request) { request = beforeClientExecution(request); return executeDeleteEvaluationResults(request); } @SdkInternalApi final DeleteEvaluationResultsResult executeDeleteEvaluationResults(DeleteEvaluationResultsRequest deleteEvaluationResultsRequest) { ExecutionContext executionContext = createExecutionContext(deleteEvaluationResultsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteEvaluationResultsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteEvaluationResultsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteEvaluationResults"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteEvaluationResultsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

        * Deletes the specified organization Config rule and all of its evaluation results from all member accounts in that * organization. *

        *

        * Only a management account and a delegated administrator account can delete an organization Config rule. When * calling this API with a delegated administrator, you must ensure Organizations * ListDelegatedAdministrator permissions are added. *

        *

        * Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a rule * while it is in this state. *

        * * @param deleteOrganizationConfigRuleRequest * @return Result of the DeleteOrganizationConfigRule operation returned by the service. * @throws NoSuchOrganizationConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an organization Config Process Check * rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying * again. * @throws ResourceInUseException * You see this exception in the following cases:

        *
          *
        • *

          * For DeleteConfigRule, Config is deleting this rule. Try your request again later. *

          *
        • *
        • *

          * For DeleteConfigRule, the rule is deleting your evaluation results. Try your request again later. *

          *
        • *
        • *

          * For DeleteConfigRule, a remediation action is associated with the rule and Config cannot delete this * rule. Delete the remediation action associated with the rule before deleting the rule and try your * request again later. *

          *
        • *
        • *

          * For PutConfigOrganizationRule, organization Config rule deletion is in progress. Try your request again * later. *

          *
        • *
        • *

          * For DeleteOrganizationConfigRule, organization Config rule creation is in progress. Try your request * again later. *

          *
        • *
        • *

          * For PutConformancePack and PutOrganizationConformancePack, a conformance pack creation, update, and * deletion is in progress. Try your request again later. *

          *
        • *
        • *

          * For DeleteConformancePack, a conformance pack creation, update, and deletion is in progress. Try your * request again later. *

          *
        • * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following * reasons:

          *
            *
          • *

            * No permission to call EnableAWSServiceAccess API *

            *
          • *
          • *

            * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

            *
          • *
          • *

            * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

            *
          • *
          • *

            * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

            *
          • *
          *

          * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @sample AmazonConfig.DeleteOrganizationConfigRule * @see AWS API Documentation */ @Override public DeleteOrganizationConfigRuleResult deleteOrganizationConfigRule(DeleteOrganizationConfigRuleRequest request) { request = beforeClientExecution(request); return executeDeleteOrganizationConfigRule(request); } @SdkInternalApi final DeleteOrganizationConfigRuleResult executeDeleteOrganizationConfigRule(DeleteOrganizationConfigRuleRequest deleteOrganizationConfigRuleRequest) { ExecutionContext executionContext = createExecutionContext(deleteOrganizationConfigRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteOrganizationConfigRuleRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteOrganizationConfigRuleRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteOrganizationConfigRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteOrganizationConfigRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

          * Deletes the specified organization conformance pack and all of the Config rules and remediation actions from all * member accounts in that organization. *

          *

          * Only a management account or a delegated administrator account can delete an organization conformance pack. When * calling this API with a delegated administrator, you must ensure Organizations * ListDelegatedAdministrator permissions are added. *

          *

          * Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot * update a conformance pack while it is in this state. *

          * * @param deleteOrganizationConformancePackRequest * @return Result of the DeleteOrganizationConformancePack operation returned by the service. * @throws NoSuchOrganizationConformancePackException * Config organization conformance pack that you passed in the filter does not exist.

          *

          * For DeleteOrganizationConformancePack, you tried to delete an organization conformance pack that does not * exist. * @throws ResourceInUseException * You see this exception in the following cases: *

          *
            *
          • *

            * For DeleteConfigRule, Config is deleting this rule. Try your request again later. *

            *
          • *
          • *

            * For DeleteConfigRule, the rule is deleting your evaluation results. Try your request again later. *

            *
          • *
          • *

            * For DeleteConfigRule, a remediation action is associated with the rule and Config cannot delete this * rule. Delete the remediation action associated with the rule before deleting the rule and try your * request again later. *

            *
          • *
          • *

            * For PutConfigOrganizationRule, organization Config rule deletion is in progress. Try your request again * later. *

            *
          • *
          • *

            * For DeleteOrganizationConfigRule, organization Config rule creation is in progress. Try your request * again later. *

            *
          • *
          • *

            * For PutConformancePack and PutOrganizationConformancePack, a conformance pack creation, update, and * deletion is in progress. Try your request again later. *

            *
          • *
          • *

            * For DeleteConformancePack, a conformance pack creation, update, and deletion is in progress. Try your * request again later. *

            *
          • * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following * reasons:

            *
              *
            • *

              * No permission to call EnableAWSServiceAccess API *

              *
            • *
            • *

              * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

              *
            • *
            • *

              * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

              *
            • *
            • *

              * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

              *
            • *
            *

            * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @sample AmazonConfig.DeleteOrganizationConformancePack * @see AWS API Documentation */ @Override public DeleteOrganizationConformancePackResult deleteOrganizationConformancePack(DeleteOrganizationConformancePackRequest request) { request = beforeClientExecution(request); return executeDeleteOrganizationConformancePack(request); } @SdkInternalApi final DeleteOrganizationConformancePackResult executeDeleteOrganizationConformancePack( DeleteOrganizationConformancePackRequest deleteOrganizationConformancePackRequest) { ExecutionContext executionContext = createExecutionContext(deleteOrganizationConformancePackRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteOrganizationConformancePackRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteOrganizationConformancePackRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteOrganizationConformancePack"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteOrganizationConformancePackResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Deletes pending authorization requests for a specified aggregator account in a specified region. *

            * * @param deletePendingAggregationRequestRequest * @return Result of the DeletePendingAggregationRequest operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.DeletePendingAggregationRequest * @see AWS API Documentation */ @Override public DeletePendingAggregationRequestResult deletePendingAggregationRequest(DeletePendingAggregationRequestRequest request) { request = beforeClientExecution(request); return executeDeletePendingAggregationRequest(request); } @SdkInternalApi final DeletePendingAggregationRequestResult executeDeletePendingAggregationRequest( DeletePendingAggregationRequestRequest deletePendingAggregationRequestRequest) { ExecutionContext executionContext = createExecutionContext(deletePendingAggregationRequestRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeletePendingAggregationRequestRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deletePendingAggregationRequestRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeletePendingAggregationRequest"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeletePendingAggregationRequestResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Deletes the remediation configuration. *

            * * @param deleteRemediationConfigurationRequest * @return Result of the DeleteRemediationConfiguration operation returned by the service. * @throws NoSuchRemediationConfigurationException * You specified an Config rule without a remediation configuration. * @throws RemediationInProgressException * Remediation action is in progress. You can either cancel execution in Amazon Web Services Systems Manager * or wait and try again later. * @throws InsufficientPermissionsException * Indicates one of the following errors:

            *
              *
            • *

              * For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions * to perform the config:Put* action. *

              *
            • *
            • *

              * For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the * function's permissions. *

              *
            • *
            • *

              * For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have * permissions to call IAM GetRole action or create a service-linked role. *

              *
            • *
            • *

              * For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because * you do not have the following permissions: *

              *
                *
              • *

                * You do not have permission to call IAM GetRole action or create a service-linked role. *

                *
              • *
              • *

                * You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. *

                *
              • *
              *
            • * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.DeleteRemediationConfiguration * @see AWS API Documentation */ @Override public DeleteRemediationConfigurationResult deleteRemediationConfiguration(DeleteRemediationConfigurationRequest request) { request = beforeClientExecution(request); return executeDeleteRemediationConfiguration(request); } @SdkInternalApi final DeleteRemediationConfigurationResult executeDeleteRemediationConfiguration(DeleteRemediationConfigurationRequest deleteRemediationConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(deleteRemediationConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteRemediationConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteRemediationConfigurationRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteRemediationConfiguration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteRemediationConfigurationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Deletes one or more remediation exceptions mentioned in the resource keys. *

              * *

              * Config generates a remediation exception when a problem occurs executing a remediation action to a specific * resource. Remediation exceptions blocks auto-remediation until the exception is cleared. *

              *
              * * @param deleteRemediationExceptionsRequest * @return Result of the DeleteRemediationExceptions operation returned by the service. * @throws NoSuchRemediationExceptionException * You tried to delete a remediation exception that does not exist. * @sample AmazonConfig.DeleteRemediationExceptions * @see AWS API Documentation */ @Override public DeleteRemediationExceptionsResult deleteRemediationExceptions(DeleteRemediationExceptionsRequest request) { request = beforeClientExecution(request); return executeDeleteRemediationExceptions(request); } @SdkInternalApi final DeleteRemediationExceptionsResult executeDeleteRemediationExceptions(DeleteRemediationExceptionsRequest deleteRemediationExceptionsRequest) { ExecutionContext executionContext = createExecutionContext(deleteRemediationExceptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteRemediationExceptionsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteRemediationExceptionsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteRemediationExceptions"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteRemediationExceptionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Records the configuration state for a custom resource that has been deleted. This API records a new * ConfigurationItem with a ResourceDeleted status. You can retrieve the ConfigurationItems recorded for this * resource in your Config History. *

              * * @param deleteResourceConfigRequest * @return Result of the DeleteResourceConfig operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws NoRunningConfigurationRecorderException * There is no configuration recorder running. * @sample AmazonConfig.DeleteResourceConfig * @see AWS * API Documentation */ @Override public DeleteResourceConfigResult deleteResourceConfig(DeleteResourceConfigRequest request) { request = beforeClientExecution(request); return executeDeleteResourceConfig(request); } @SdkInternalApi final DeleteResourceConfigResult executeDeleteResourceConfig(DeleteResourceConfigRequest deleteResourceConfigRequest) { ExecutionContext executionContext = createExecutionContext(deleteResourceConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteResourceConfigRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteResourceConfigRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteResourceConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteResourceConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Deletes the retention configuration. *

              * * @param deleteRetentionConfigurationRequest * @return Result of the DeleteRetentionConfiguration operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws NoSuchRetentionConfigurationException * You have specified a retention configuration that does not exist. * @sample AmazonConfig.DeleteRetentionConfiguration * @see AWS API Documentation */ @Override public DeleteRetentionConfigurationResult deleteRetentionConfiguration(DeleteRetentionConfigurationRequest request) { request = beforeClientExecution(request); return executeDeleteRetentionConfiguration(request); } @SdkInternalApi final DeleteRetentionConfigurationResult executeDeleteRetentionConfiguration(DeleteRetentionConfigurationRequest deleteRetentionConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(deleteRetentionConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteRetentionConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteRetentionConfigurationRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteRetentionConfiguration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteRetentionConfigurationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Deletes the stored query for a single Amazon Web Services account and a single Amazon Web Services Region. *

              * * @param deleteStoredQueryRequest * @return Result of the DeleteStoredQuery operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws ResourceNotFoundException * You have specified a resource that does not exist. * @sample AmazonConfig.DeleteStoredQuery * @see AWS API * Documentation */ @Override public DeleteStoredQueryResult deleteStoredQuery(DeleteStoredQueryRequest request) { request = beforeClientExecution(request); return executeDeleteStoredQuery(request); } @SdkInternalApi final DeleteStoredQueryResult executeDeleteStoredQuery(DeleteStoredQueryRequest deleteStoredQueryRequest) { ExecutionContext executionContext = createExecutionContext(deleteStoredQueryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteStoredQueryRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteStoredQueryRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteStoredQuery"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteStoredQueryResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Schedules delivery of a configuration snapshot to the Amazon S3 bucket in the specified delivery channel. After * the delivery has started, Config sends the following notifications using an Amazon SNS topic that you have * specified. *

              *
                *
              • *

                * Notification of the start of the delivery. *

                *
              • *
              • *

                * Notification of the completion of the delivery, if the delivery was successfully completed. *

                *
              • *
              • *

                * Notification of delivery failure, if the delivery failed. *

                *
              • *
              * * @param deliverConfigSnapshotRequest * The input for the DeliverConfigSnapshot action. * @return Result of the DeliverConfigSnapshot operation returned by the service. * @throws NoSuchDeliveryChannelException * You have specified a delivery channel that does not exist. * @throws NoAvailableConfigurationRecorderException * There are no configuration recorders available to provide the role needed to describe your resources. * Create a configuration recorder. * @throws NoRunningConfigurationRecorderException * There is no configuration recorder running. * @sample AmazonConfig.DeliverConfigSnapshot * @see AWS * API Documentation */ @Override public DeliverConfigSnapshotResult deliverConfigSnapshot(DeliverConfigSnapshotRequest request) { request = beforeClientExecution(request); return executeDeliverConfigSnapshot(request); } @SdkInternalApi final DeliverConfigSnapshotResult executeDeliverConfigSnapshot(DeliverConfigSnapshotRequest deliverConfigSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(deliverConfigSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeliverConfigSnapshotRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deliverConfigSnapshotRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeliverConfigSnapshot"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeliverConfigSnapshotResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns a list of compliant and noncompliant rules with the number of resources for compliant and noncompliant * rules. Does not display rules that do not have compliance results. *

              * *

              * The results can return an empty result page, but if you have a nextToken, the results are displayed * on the next page. *

              *
              * * @param describeAggregateComplianceByConfigRulesRequest * @return Result of the DescribeAggregateComplianceByConfigRules operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @sample AmazonConfig.DescribeAggregateComplianceByConfigRules * @see AWS API Documentation */ @Override public DescribeAggregateComplianceByConfigRulesResult describeAggregateComplianceByConfigRules(DescribeAggregateComplianceByConfigRulesRequest request) { request = beforeClientExecution(request); return executeDescribeAggregateComplianceByConfigRules(request); } @SdkInternalApi final DescribeAggregateComplianceByConfigRulesResult executeDescribeAggregateComplianceByConfigRules( DescribeAggregateComplianceByConfigRulesRequest describeAggregateComplianceByConfigRulesRequest) { ExecutionContext executionContext = createExecutionContext(describeAggregateComplianceByConfigRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeAggregateComplianceByConfigRulesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeAggregateComplianceByConfigRulesRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeAggregateComplianceByConfigRules"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeAggregateComplianceByConfigRulesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns a list of the conformance packs and their associated compliance status with the count of compliant and * noncompliant Config rules within each conformance pack. Also returns the total rule count which includes * compliant rules, noncompliant rules, and rules that cannot be evaluated due to insufficient data. *

              * *

              * The results can return an empty result page, but if you have a nextToken, the results are displayed * on the next page. *

              *
              * * @param describeAggregateComplianceByConformancePacksRequest * @return Result of the DescribeAggregateComplianceByConformancePacks operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @sample AmazonConfig.DescribeAggregateComplianceByConformancePacks * @see AWS API Documentation */ @Override public DescribeAggregateComplianceByConformancePacksResult describeAggregateComplianceByConformancePacks( DescribeAggregateComplianceByConformancePacksRequest request) { request = beforeClientExecution(request); return executeDescribeAggregateComplianceByConformancePacks(request); } @SdkInternalApi final DescribeAggregateComplianceByConformancePacksResult executeDescribeAggregateComplianceByConformancePacks( DescribeAggregateComplianceByConformancePacksRequest describeAggregateComplianceByConformancePacksRequest) { ExecutionContext executionContext = createExecutionContext(describeAggregateComplianceByConformancePacksRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeAggregateComplianceByConformancePacksRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeAggregateComplianceByConformancePacksRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeAggregateComplianceByConformancePacks"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeAggregateComplianceByConformancePacksResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns a list of authorizations granted to various aggregator accounts and regions. *

              * * @param describeAggregationAuthorizationsRequest * @return Result of the DescribeAggregationAuthorizations operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @sample AmazonConfig.DescribeAggregationAuthorizations * @see AWS API Documentation */ @Override public DescribeAggregationAuthorizationsResult describeAggregationAuthorizations(DescribeAggregationAuthorizationsRequest request) { request = beforeClientExecution(request); return executeDescribeAggregationAuthorizations(request); } @SdkInternalApi final DescribeAggregationAuthorizationsResult executeDescribeAggregationAuthorizations( DescribeAggregationAuthorizationsRequest describeAggregationAuthorizationsRequest) { ExecutionContext executionContext = createExecutionContext(describeAggregationAuthorizationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeAggregationAuthorizationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeAggregationAuthorizationsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeAggregationAuthorizations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeAggregationAuthorizationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Indicates whether the specified Config rules are compliant. If a rule is noncompliant, this action returns the * number of Amazon Web Services resources that do not comply with the rule. *

              *

              * A rule is compliant if all of the evaluated resources comply with it. It is noncompliant if any of these * resources do not comply. *

              *

              * If Config has no current evaluation results for the rule, it returns INSUFFICIENT_DATA. This result * might indicate one of the following conditions: *

              *
                *
              • *

                * Config has never invoked an evaluation for the rule. To check whether it has, use the * DescribeConfigRuleEvaluationStatus action to get the LastSuccessfulInvocationTime and * LastFailedInvocationTime. *

                *
              • *
              • *

                * The rule's Lambda function is failing to send evaluation results to Config. Verify that the role you assigned to * your configuration recorder includes the config:PutEvaluations permission. If the rule is a custom * rule, verify that the Lambda execution role includes the config:PutEvaluations permission. *

                *
              • *
              • *

                * The rule's Lambda function has returned NOT_APPLICABLE for all evaluation results. This can occur if * the resources were deleted or removed from the rule's scope. *

                *
              • *
              * * @param describeComplianceByConfigRuleRequest * @return Result of the DescribeComplianceByConfigRule operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws NoSuchConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that * the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @sample AmazonConfig.DescribeComplianceByConfigRule * @see AWS API Documentation */ @Override public DescribeComplianceByConfigRuleResult describeComplianceByConfigRule(DescribeComplianceByConfigRuleRequest request) { request = beforeClientExecution(request); return executeDescribeComplianceByConfigRule(request); } @SdkInternalApi final DescribeComplianceByConfigRuleResult executeDescribeComplianceByConfigRule(DescribeComplianceByConfigRuleRequest describeComplianceByConfigRuleRequest) { ExecutionContext executionContext = createExecutionContext(describeComplianceByConfigRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeComplianceByConfigRuleRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeComplianceByConfigRuleRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeComplianceByConfigRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeComplianceByConfigRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeComplianceByConfigRuleResult describeComplianceByConfigRule() { return describeComplianceByConfigRule(new DescribeComplianceByConfigRuleRequest()); } /** *

              * Indicates whether the specified Amazon Web Services resources are compliant. If a resource is noncompliant, this * action returns the number of Config rules that the resource does not comply with. *

              *

              * A resource is compliant if it complies with all the Config rules that evaluate it. It is noncompliant if it does * not comply with one or more of these rules. *

              *

              * If Config has no current evaluation results for the resource, it returns INSUFFICIENT_DATA. This * result might indicate one of the following conditions about the rules that evaluate the resource: *

              *
                *
              • *

                * Config has never invoked an evaluation for the rule. To check whether it has, use the * DescribeConfigRuleEvaluationStatus action to get the LastSuccessfulInvocationTime and * LastFailedInvocationTime. *

                *
              • *
              • *

                * The rule's Lambda function is failing to send evaluation results to Config. Verify that the role that you * assigned to your configuration recorder includes the config:PutEvaluations permission. If the rule * is a custom rule, verify that the Lambda execution role includes the config:PutEvaluations * permission. *

                *
              • *
              • *

                * The rule's Lambda function has returned NOT_APPLICABLE for all evaluation results. This can occur if * the resources were deleted or removed from the rule's scope. *

                *
              • *
              * * @param describeComplianceByResourceRequest * @return Result of the DescribeComplianceByResource operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @sample AmazonConfig.DescribeComplianceByResource * @see AWS API Documentation */ @Override public DescribeComplianceByResourceResult describeComplianceByResource(DescribeComplianceByResourceRequest request) { request = beforeClientExecution(request); return executeDescribeComplianceByResource(request); } @SdkInternalApi final DescribeComplianceByResourceResult executeDescribeComplianceByResource(DescribeComplianceByResourceRequest describeComplianceByResourceRequest) { ExecutionContext executionContext = createExecutionContext(describeComplianceByResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeComplianceByResourceRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeComplianceByResourceRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeComplianceByResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeComplianceByResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeComplianceByResourceResult describeComplianceByResource() { return describeComplianceByResource(new DescribeComplianceByResourceRequest()); } /** *

              * Returns status information for each of your Config managed rules. The status includes information such as the * last time Config invoked the rule, the last time Config failed to invoke the rule, and the related error for the * last failure. *

              * * @param describeConfigRuleEvaluationStatusRequest * @return Result of the DescribeConfigRuleEvaluationStatus operation returned by the service. * @throws NoSuchConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that * the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @sample AmazonConfig.DescribeConfigRuleEvaluationStatus * @see AWS API Documentation */ @Override public DescribeConfigRuleEvaluationStatusResult describeConfigRuleEvaluationStatus(DescribeConfigRuleEvaluationStatusRequest request) { request = beforeClientExecution(request); return executeDescribeConfigRuleEvaluationStatus(request); } @SdkInternalApi final DescribeConfigRuleEvaluationStatusResult executeDescribeConfigRuleEvaluationStatus( DescribeConfigRuleEvaluationStatusRequest describeConfigRuleEvaluationStatusRequest) { ExecutionContext executionContext = createExecutionContext(describeConfigRuleEvaluationStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConfigRuleEvaluationStatusRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeConfigRuleEvaluationStatusRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeConfigRuleEvaluationStatus"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConfigRuleEvaluationStatusResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeConfigRuleEvaluationStatusResult describeConfigRuleEvaluationStatus() { return describeConfigRuleEvaluationStatus(new DescribeConfigRuleEvaluationStatusRequest()); } /** *

              * Returns details about your Config rules. *

              * * @param describeConfigRulesRequest * @return Result of the DescribeConfigRules operation returned by the service. * @throws NoSuchConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that * the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.DescribeConfigRules * @see AWS API * Documentation */ @Override public DescribeConfigRulesResult describeConfigRules(DescribeConfigRulesRequest request) { request = beforeClientExecution(request); return executeDescribeConfigRules(request); } @SdkInternalApi final DescribeConfigRulesResult executeDescribeConfigRules(DescribeConfigRulesRequest describeConfigRulesRequest) { ExecutionContext executionContext = createExecutionContext(describeConfigRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConfigRulesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeConfigRulesRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeConfigRules"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConfigRulesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeConfigRulesResult describeConfigRules() { return describeConfigRules(new DescribeConfigRulesRequest()); } /** *

              * Returns status information for sources within an aggregator. The status includes information about the last time * Config verified authorization between the source account and an aggregator account. In case of a failure, the * status contains the related error code or message. *

              * * @param describeConfigurationAggregatorSourcesStatusRequest * @return Result of the DescribeConfigurationAggregatorSourcesStatus operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @sample AmazonConfig.DescribeConfigurationAggregatorSourcesStatus * @see AWS API Documentation */ @Override public DescribeConfigurationAggregatorSourcesStatusResult describeConfigurationAggregatorSourcesStatus( DescribeConfigurationAggregatorSourcesStatusRequest request) { request = beforeClientExecution(request); return executeDescribeConfigurationAggregatorSourcesStatus(request); } @SdkInternalApi final DescribeConfigurationAggregatorSourcesStatusResult executeDescribeConfigurationAggregatorSourcesStatus( DescribeConfigurationAggregatorSourcesStatusRequest describeConfigurationAggregatorSourcesStatusRequest) { ExecutionContext executionContext = createExecutionContext(describeConfigurationAggregatorSourcesStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConfigurationAggregatorSourcesStatusRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeConfigurationAggregatorSourcesStatusRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeConfigurationAggregatorSourcesStatus"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConfigurationAggregatorSourcesStatusResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the details of one or more configuration aggregators. If the configuration aggregator is not specified, * this action returns the details for all the configuration aggregators associated with the account. *

              * * @param describeConfigurationAggregatorsRequest * @return Result of the DescribeConfigurationAggregators operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @sample AmazonConfig.DescribeConfigurationAggregators * @see AWS API Documentation */ @Override public DescribeConfigurationAggregatorsResult describeConfigurationAggregators(DescribeConfigurationAggregatorsRequest request) { request = beforeClientExecution(request); return executeDescribeConfigurationAggregators(request); } @SdkInternalApi final DescribeConfigurationAggregatorsResult executeDescribeConfigurationAggregators( DescribeConfigurationAggregatorsRequest describeConfigurationAggregatorsRequest) { ExecutionContext executionContext = createExecutionContext(describeConfigurationAggregatorsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConfigurationAggregatorsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeConfigurationAggregatorsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeConfigurationAggregators"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConfigurationAggregatorsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the current status of the specified configuration recorder as well as the status of the last recording * event for the recorder. If a configuration recorder is not specified, this action returns the status of all * configuration recorders associated with the account. *

              * *

              * >You can specify only one configuration recorder for each Amazon Web Services Region for each account. For a * detailed status of recording events over time, add your Config events to Amazon CloudWatch metrics and use * CloudWatch metrics. *

              *
              * * @param describeConfigurationRecorderStatusRequest * The input for the DescribeConfigurationRecorderStatus action. * @return Result of the DescribeConfigurationRecorderStatus operation returned by the service. * @throws NoSuchConfigurationRecorderException * You have specified a configuration recorder that does not exist. * @sample AmazonConfig.DescribeConfigurationRecorderStatus * @see AWS API Documentation */ @Override public DescribeConfigurationRecorderStatusResult describeConfigurationRecorderStatus(DescribeConfigurationRecorderStatusRequest request) { request = beforeClientExecution(request); return executeDescribeConfigurationRecorderStatus(request); } @SdkInternalApi final DescribeConfigurationRecorderStatusResult executeDescribeConfigurationRecorderStatus( DescribeConfigurationRecorderStatusRequest describeConfigurationRecorderStatusRequest) { ExecutionContext executionContext = createExecutionContext(describeConfigurationRecorderStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConfigurationRecorderStatusRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeConfigurationRecorderStatusRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeConfigurationRecorderStatus"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConfigurationRecorderStatusResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeConfigurationRecorderStatusResult describeConfigurationRecorderStatus() { return describeConfigurationRecorderStatus(new DescribeConfigurationRecorderStatusRequest()); } /** *

              * Returns the details for the specified configuration recorders. If the configuration recorder is not specified, * this action returns the details for all configuration recorders associated with the account. *

              * *

              * You can specify only one configuration recorder for each Amazon Web Services Region for each account. *

              *
              * * @param describeConfigurationRecordersRequest * The input for the DescribeConfigurationRecorders action. * @return Result of the DescribeConfigurationRecorders operation returned by the service. * @throws NoSuchConfigurationRecorderException * You have specified a configuration recorder that does not exist. * @sample AmazonConfig.DescribeConfigurationRecorders * @see AWS API Documentation */ @Override public DescribeConfigurationRecordersResult describeConfigurationRecorders(DescribeConfigurationRecordersRequest request) { request = beforeClientExecution(request); return executeDescribeConfigurationRecorders(request); } @SdkInternalApi final DescribeConfigurationRecordersResult executeDescribeConfigurationRecorders(DescribeConfigurationRecordersRequest describeConfigurationRecordersRequest) { ExecutionContext executionContext = createExecutionContext(describeConfigurationRecordersRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConfigurationRecordersRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeConfigurationRecordersRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeConfigurationRecorders"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConfigurationRecordersResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeConfigurationRecordersResult describeConfigurationRecorders() { return describeConfigurationRecorders(new DescribeConfigurationRecordersRequest()); } /** *

              * Returns compliance details for each rule in that conformance pack. *

              * *

              * You must provide exact rule names. *

              *
              * * @param describeConformancePackComplianceRequest * @return Result of the DescribeConformancePackCompliance operation returned by the service. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws NoSuchConfigRuleInConformancePackException * Config rule that you passed in the filter does not exist. * @throws NoSuchConformancePackException * You specified one or more conformance packs that do not exist. * @sample AmazonConfig.DescribeConformancePackCompliance * @see AWS API Documentation */ @Override public DescribeConformancePackComplianceResult describeConformancePackCompliance(DescribeConformancePackComplianceRequest request) { request = beforeClientExecution(request); return executeDescribeConformancePackCompliance(request); } @SdkInternalApi final DescribeConformancePackComplianceResult executeDescribeConformancePackCompliance( DescribeConformancePackComplianceRequest describeConformancePackComplianceRequest) { ExecutionContext executionContext = createExecutionContext(describeConformancePackComplianceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConformancePackComplianceRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeConformancePackComplianceRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeConformancePackCompliance"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConformancePackComplianceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Provides one or more conformance packs deployment status. *

              * *

              * If there are no conformance packs then you will see an empty result. *

              *
              * * @param describeConformancePackStatusRequest * @return Result of the DescribeConformancePackStatus operation returned by the service. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.DescribeConformancePackStatus * @see AWS API Documentation */ @Override public DescribeConformancePackStatusResult describeConformancePackStatus(DescribeConformancePackStatusRequest request) { request = beforeClientExecution(request); return executeDescribeConformancePackStatus(request); } @SdkInternalApi final DescribeConformancePackStatusResult executeDescribeConformancePackStatus(DescribeConformancePackStatusRequest describeConformancePackStatusRequest) { ExecutionContext executionContext = createExecutionContext(describeConformancePackStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConformancePackStatusRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeConformancePackStatusRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeConformancePackStatus"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConformancePackStatusResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns a list of one or more conformance packs. *

              * * @param describeConformancePacksRequest * @return Result of the DescribeConformancePacks operation returned by the service. * @throws NoSuchConformancePackException * You specified one or more conformance packs that do not exist. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.DescribeConformancePacks * @see AWS API Documentation */ @Override public DescribeConformancePacksResult describeConformancePacks(DescribeConformancePacksRequest request) { request = beforeClientExecution(request); return executeDescribeConformancePacks(request); } @SdkInternalApi final DescribeConformancePacksResult executeDescribeConformancePacks(DescribeConformancePacksRequest describeConformancePacksRequest) { ExecutionContext executionContext = createExecutionContext(describeConformancePacksRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConformancePacksRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeConformancePacksRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeConformancePacks"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConformancePacksResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the current status of the specified delivery channel. If a delivery channel is not specified, this action * returns the current status of all delivery channels associated with the account. *

              * *

              * Currently, you can specify only one delivery channel per region in your account. *

              *
              * * @param describeDeliveryChannelStatusRequest * The input for the DeliveryChannelStatus action. * @return Result of the DescribeDeliveryChannelStatus operation returned by the service. * @throws NoSuchDeliveryChannelException * You have specified a delivery channel that does not exist. * @sample AmazonConfig.DescribeDeliveryChannelStatus * @see AWS API Documentation */ @Override public DescribeDeliveryChannelStatusResult describeDeliveryChannelStatus(DescribeDeliveryChannelStatusRequest request) { request = beforeClientExecution(request); return executeDescribeDeliveryChannelStatus(request); } @SdkInternalApi final DescribeDeliveryChannelStatusResult executeDescribeDeliveryChannelStatus(DescribeDeliveryChannelStatusRequest describeDeliveryChannelStatusRequest) { ExecutionContext executionContext = createExecutionContext(describeDeliveryChannelStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDeliveryChannelStatusRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeDeliveryChannelStatusRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeDeliveryChannelStatus"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeDeliveryChannelStatusResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDeliveryChannelStatusResult describeDeliveryChannelStatus() { return describeDeliveryChannelStatus(new DescribeDeliveryChannelStatusRequest()); } /** *

              * Returns details about the specified delivery channel. If a delivery channel is not specified, this action returns * the details of all delivery channels associated with the account. *

              * *

              * Currently, you can specify only one delivery channel per region in your account. *

              *
              * * @param describeDeliveryChannelsRequest * The input for the DescribeDeliveryChannels action. * @return Result of the DescribeDeliveryChannels operation returned by the service. * @throws NoSuchDeliveryChannelException * You have specified a delivery channel that does not exist. * @sample AmazonConfig.DescribeDeliveryChannels * @see AWS API Documentation */ @Override public DescribeDeliveryChannelsResult describeDeliveryChannels(DescribeDeliveryChannelsRequest request) { request = beforeClientExecution(request); return executeDescribeDeliveryChannels(request); } @SdkInternalApi final DescribeDeliveryChannelsResult executeDescribeDeliveryChannels(DescribeDeliveryChannelsRequest describeDeliveryChannelsRequest) { ExecutionContext executionContext = createExecutionContext(describeDeliveryChannelsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDeliveryChannelsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeDeliveryChannelsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeDeliveryChannels"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeDeliveryChannelsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDeliveryChannelsResult describeDeliveryChannels() { return describeDeliveryChannels(new DescribeDeliveryChannelsRequest()); } /** *

              * Provides organization Config rule deployment status for an organization. *

              * *

              * The status is not considered successful until organization Config rule is successfully deployed in all the member * accounts with an exception of excluded accounts. *

              *

              * When you specify the limit and the next token, you receive a paginated response. Limit and next token are not * applicable if you specify organization Config rule names. It is only applicable, when you request all the * organization Config rules. *

              *
              * * @param describeOrganizationConfigRuleStatusesRequest * @return Result of the DescribeOrganizationConfigRuleStatuses operation returned by the service. * @throws NoSuchOrganizationConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an organization Config Process Check * rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying * again. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following * reasons:

              *
                *
              • *

                * No permission to call EnableAWSServiceAccess API *

                *
              • *
              • *

                * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

                *
              • *
              • *

                * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

                *
              • *
              • *

                * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

                *
              • *
              *

              * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @sample AmazonConfig.DescribeOrganizationConfigRuleStatuses * @see AWS API Documentation */ @Override public DescribeOrganizationConfigRuleStatusesResult describeOrganizationConfigRuleStatuses(DescribeOrganizationConfigRuleStatusesRequest request) { request = beforeClientExecution(request); return executeDescribeOrganizationConfigRuleStatuses(request); } @SdkInternalApi final DescribeOrganizationConfigRuleStatusesResult executeDescribeOrganizationConfigRuleStatuses( DescribeOrganizationConfigRuleStatusesRequest describeOrganizationConfigRuleStatusesRequest) { ExecutionContext executionContext = createExecutionContext(describeOrganizationConfigRuleStatusesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeOrganizationConfigRuleStatusesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeOrganizationConfigRuleStatusesRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeOrganizationConfigRuleStatuses"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeOrganizationConfigRuleStatusesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns a list of organization Config rules. *

              * *

              * When you specify the limit and the next token, you receive a paginated response. *

              *

              * Limit and next token are not applicable if you specify organization Config rule names. It is only applicable, * when you request all the organization Config rules. *

              *

              * For accounts within an organzation *

              *

              * If you deploy an organizational rule or conformance pack in an organization administrator account, and then * establish a delegated administrator and deploy an organizational rule or conformance pack in the delegated * administrator account, you won't be able to see the organizational rule or conformance pack in the organization * administrator account from the delegated administrator account or see the organizational rule or conformance pack * in the delegated administrator account from organization administrator account. The * DescribeOrganizationConfigRules and DescribeOrganizationConformancePacks APIs can only * see and interact with the organization-related resource that were deployed from within the account calling those * APIs. *

              *
              * * @param describeOrganizationConfigRulesRequest * @return Result of the DescribeOrganizationConfigRules operation returned by the service. * @throws NoSuchOrganizationConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an organization Config Process Check * rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying * again. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following * reasons:

              *
                *
              • *

                * No permission to call EnableAWSServiceAccess API *

                *
              • *
              • *

                * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

                *
              • *
              • *

                * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

                *
              • *
              • *

                * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

                *
              • *
              *

              * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @sample AmazonConfig.DescribeOrganizationConfigRules * @see AWS API Documentation */ @Override public DescribeOrganizationConfigRulesResult describeOrganizationConfigRules(DescribeOrganizationConfigRulesRequest request) { request = beforeClientExecution(request); return executeDescribeOrganizationConfigRules(request); } @SdkInternalApi final DescribeOrganizationConfigRulesResult executeDescribeOrganizationConfigRules( DescribeOrganizationConfigRulesRequest describeOrganizationConfigRulesRequest) { ExecutionContext executionContext = createExecutionContext(describeOrganizationConfigRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeOrganizationConfigRulesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeOrganizationConfigRulesRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeOrganizationConfigRules"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeOrganizationConfigRulesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Provides organization conformance pack deployment status for an organization. *

              * *

              * The status is not considered successful until organization conformance pack is successfully deployed in all the * member accounts with an exception of excluded accounts. *

              *

              * When you specify the limit and the next token, you receive a paginated response. Limit and next token are not * applicable if you specify organization conformance pack names. They are only applicable, when you request all the * organization conformance packs. *

              *
              * * @param describeOrganizationConformancePackStatusesRequest * @return Result of the DescribeOrganizationConformancePackStatuses operation returned by the service. * @throws NoSuchOrganizationConformancePackException * Config organization conformance pack that you passed in the filter does not exist.

              *

              * For DeleteOrganizationConformancePack, you tried to delete an organization conformance pack that does not * exist. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following reasons: *

              *
                *
              • *

                * No permission to call EnableAWSServiceAccess API *

                *
              • *
              • *

                * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

                *
              • *
              • *

                * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

                *
              • *
              • *

                * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

                *
              • *
              *

              * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @sample AmazonConfig.DescribeOrganizationConformancePackStatuses * @see AWS API Documentation */ @Override public DescribeOrganizationConformancePackStatusesResult describeOrganizationConformancePackStatuses( DescribeOrganizationConformancePackStatusesRequest request) { request = beforeClientExecution(request); return executeDescribeOrganizationConformancePackStatuses(request); } @SdkInternalApi final DescribeOrganizationConformancePackStatusesResult executeDescribeOrganizationConformancePackStatuses( DescribeOrganizationConformancePackStatusesRequest describeOrganizationConformancePackStatusesRequest) { ExecutionContext executionContext = createExecutionContext(describeOrganizationConformancePackStatusesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeOrganizationConformancePackStatusesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeOrganizationConformancePackStatusesRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeOrganizationConformancePackStatuses"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeOrganizationConformancePackStatusesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns a list of organization conformance packs. *

              * *

              * When you specify the limit and the next token, you receive a paginated response. *

              *

              * Limit and next token are not applicable if you specify organization conformance packs names. They are only * applicable, when you request all the organization conformance packs. *

              *

              * For accounts within an organzation *

              *

              * If you deploy an organizational rule or conformance pack in an organization administrator account, and then * establish a delegated administrator and deploy an organizational rule or conformance pack in the delegated * administrator account, you won't be able to see the organizational rule or conformance pack in the organization * administrator account from the delegated administrator account or see the organizational rule or conformance pack * in the delegated administrator account from organization administrator account. The * DescribeOrganizationConfigRules and DescribeOrganizationConformancePacks APIs can only * see and interact with the organization-related resource that were deployed from within the account calling those * APIs. *

              *
              * * @param describeOrganizationConformancePacksRequest * @return Result of the DescribeOrganizationConformancePacks operation returned by the service. * @throws NoSuchOrganizationConformancePackException * Config organization conformance pack that you passed in the filter does not exist.

              *

              * For DeleteOrganizationConformancePack, you tried to delete an organization conformance pack that does not * exist. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following reasons: *

              *
                *
              • *

                * No permission to call EnableAWSServiceAccess API *

                *
              • *
              • *

                * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

                *
              • *
              • *

                * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

                *
              • *
              • *

                * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

                *
              • *
              *

              * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @sample AmazonConfig.DescribeOrganizationConformancePacks * @see AWS API Documentation */ @Override public DescribeOrganizationConformancePacksResult describeOrganizationConformancePacks(DescribeOrganizationConformancePacksRequest request) { request = beforeClientExecution(request); return executeDescribeOrganizationConformancePacks(request); } @SdkInternalApi final DescribeOrganizationConformancePacksResult executeDescribeOrganizationConformancePacks( DescribeOrganizationConformancePacksRequest describeOrganizationConformancePacksRequest) { ExecutionContext executionContext = createExecutionContext(describeOrganizationConformancePacksRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeOrganizationConformancePacksRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeOrganizationConformancePacksRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeOrganizationConformancePacks"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeOrganizationConformancePacksResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns a list of all pending aggregation requests. *

              * * @param describePendingAggregationRequestsRequest * @return Result of the DescribePendingAggregationRequests operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @sample AmazonConfig.DescribePendingAggregationRequests * @see AWS API Documentation */ @Override public DescribePendingAggregationRequestsResult describePendingAggregationRequests(DescribePendingAggregationRequestsRequest request) { request = beforeClientExecution(request); return executeDescribePendingAggregationRequests(request); } @SdkInternalApi final DescribePendingAggregationRequestsResult executeDescribePendingAggregationRequests( DescribePendingAggregationRequestsRequest describePendingAggregationRequestsRequest) { ExecutionContext executionContext = createExecutionContext(describePendingAggregationRequestsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribePendingAggregationRequestsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describePendingAggregationRequestsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribePendingAggregationRequests"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribePendingAggregationRequestsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the details of one or more remediation configurations. *

              * * @param describeRemediationConfigurationsRequest * @return Result of the DescribeRemediationConfigurations operation returned by the service. * @sample AmazonConfig.DescribeRemediationConfigurations * @see AWS API Documentation */ @Override public DescribeRemediationConfigurationsResult describeRemediationConfigurations(DescribeRemediationConfigurationsRequest request) { request = beforeClientExecution(request); return executeDescribeRemediationConfigurations(request); } @SdkInternalApi final DescribeRemediationConfigurationsResult executeDescribeRemediationConfigurations( DescribeRemediationConfigurationsRequest describeRemediationConfigurationsRequest) { ExecutionContext executionContext = createExecutionContext(describeRemediationConfigurationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeRemediationConfigurationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeRemediationConfigurationsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeRemediationConfigurations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeRemediationConfigurationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the details of one or more remediation exceptions. A detailed view of a remediation exception for a set * of resources that includes an explanation of an exception and the time when the exception will be deleted. When * you specify the limit and the next token, you receive a paginated response. *

              * *

              * Config generates a remediation exception when a problem occurs executing a remediation action to a specific * resource. Remediation exceptions blocks auto-remediation until the exception is cleared. *

              *

              * When you specify the limit and the next token, you receive a paginated response. *

              *

              * Limit and next token are not applicable if you request resources in batch. It is only applicable, when you * request all resources. *

              *
              * * @param describeRemediationExceptionsRequest * @return Result of the DescribeRemediationExceptions operation returned by the service. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.DescribeRemediationExceptions * @see AWS API Documentation */ @Override public DescribeRemediationExceptionsResult describeRemediationExceptions(DescribeRemediationExceptionsRequest request) { request = beforeClientExecution(request); return executeDescribeRemediationExceptions(request); } @SdkInternalApi final DescribeRemediationExceptionsResult executeDescribeRemediationExceptions(DescribeRemediationExceptionsRequest describeRemediationExceptionsRequest) { ExecutionContext executionContext = createExecutionContext(describeRemediationExceptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeRemediationExceptionsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeRemediationExceptionsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeRemediationExceptions"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeRemediationExceptionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Provides a detailed view of a Remediation Execution for a set of resources including state, timestamps for when * steps for the remediation execution occur, and any error messages for steps that have failed. When you specify * the limit and the next token, you receive a paginated response. *

              * * @param describeRemediationExecutionStatusRequest * @return Result of the DescribeRemediationExecutionStatus operation returned by the service. * @throws NoSuchRemediationConfigurationException * You specified an Config rule without a remediation configuration. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.DescribeRemediationExecutionStatus * @see AWS API Documentation */ @Override public DescribeRemediationExecutionStatusResult describeRemediationExecutionStatus(DescribeRemediationExecutionStatusRequest request) { request = beforeClientExecution(request); return executeDescribeRemediationExecutionStatus(request); } @SdkInternalApi final DescribeRemediationExecutionStatusResult executeDescribeRemediationExecutionStatus( DescribeRemediationExecutionStatusRequest describeRemediationExecutionStatusRequest) { ExecutionContext executionContext = createExecutionContext(describeRemediationExecutionStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeRemediationExecutionStatusRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeRemediationExecutionStatusRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeRemediationExecutionStatus"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeRemediationExecutionStatusResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the details of one or more retention configurations. If the retention configuration name is not * specified, this action returns the details for all the retention configurations for that account. *

              * *

              * Currently, Config supports only one retention configuration per region in your account. *

              *
              * * @param describeRetentionConfigurationsRequest * @return Result of the DescribeRetentionConfigurations operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws NoSuchRetentionConfigurationException * You have specified a retention configuration that does not exist. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @sample AmazonConfig.DescribeRetentionConfigurations * @see AWS API Documentation */ @Override public DescribeRetentionConfigurationsResult describeRetentionConfigurations(DescribeRetentionConfigurationsRequest request) { request = beforeClientExecution(request); return executeDescribeRetentionConfigurations(request); } @SdkInternalApi final DescribeRetentionConfigurationsResult executeDescribeRetentionConfigurations( DescribeRetentionConfigurationsRequest describeRetentionConfigurationsRequest) { ExecutionContext executionContext = createExecutionContext(describeRetentionConfigurationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeRetentionConfigurationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeRetentionConfigurationsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeRetentionConfigurations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeRetentionConfigurationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the evaluation results for the specified Config rule for a specific resource in a rule. The results * indicate which Amazon Web Services resources were evaluated by the rule, when each resource was last evaluated, * and whether each resource complies with the rule. *

              * *

              * The results can return an empty result page. But if you have a nextToken, the results are displayed * on the next page. *

              *
              * * @param getAggregateComplianceDetailsByConfigRuleRequest * @return Result of the GetAggregateComplianceDetailsByConfigRule operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @sample AmazonConfig.GetAggregateComplianceDetailsByConfigRule * @see AWS API Documentation */ @Override public GetAggregateComplianceDetailsByConfigRuleResult getAggregateComplianceDetailsByConfigRule(GetAggregateComplianceDetailsByConfigRuleRequest request) { request = beforeClientExecution(request); return executeGetAggregateComplianceDetailsByConfigRule(request); } @SdkInternalApi final GetAggregateComplianceDetailsByConfigRuleResult executeGetAggregateComplianceDetailsByConfigRule( GetAggregateComplianceDetailsByConfigRuleRequest getAggregateComplianceDetailsByConfigRuleRequest) { ExecutionContext executionContext = createExecutionContext(getAggregateComplianceDetailsByConfigRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetAggregateComplianceDetailsByConfigRuleRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getAggregateComplianceDetailsByConfigRuleRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetAggregateComplianceDetailsByConfigRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetAggregateComplianceDetailsByConfigRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the number of compliant and noncompliant rules for one or more accounts and regions in an aggregator. *

              * *

              * The results can return an empty result page, but if you have a nextToken, the results are displayed on the next * page. *

              *
              * * @param getAggregateConfigRuleComplianceSummaryRequest * @return Result of the GetAggregateConfigRuleComplianceSummary operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @sample AmazonConfig.GetAggregateConfigRuleComplianceSummary * @see AWS API Documentation */ @Override public GetAggregateConfigRuleComplianceSummaryResult getAggregateConfigRuleComplianceSummary(GetAggregateConfigRuleComplianceSummaryRequest request) { request = beforeClientExecution(request); return executeGetAggregateConfigRuleComplianceSummary(request); } @SdkInternalApi final GetAggregateConfigRuleComplianceSummaryResult executeGetAggregateConfigRuleComplianceSummary( GetAggregateConfigRuleComplianceSummaryRequest getAggregateConfigRuleComplianceSummaryRequest) { ExecutionContext executionContext = createExecutionContext(getAggregateConfigRuleComplianceSummaryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetAggregateConfigRuleComplianceSummaryRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getAggregateConfigRuleComplianceSummaryRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetAggregateConfigRuleComplianceSummary"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetAggregateConfigRuleComplianceSummaryResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the count of compliant and noncompliant conformance packs across all Amazon Web Services accounts and * Amazon Web Services Regions in an aggregator. You can filter based on Amazon Web Services account ID or Amazon * Web Services Region. *

              * *

              * The results can return an empty result page, but if you have a nextToken, the results are displayed on the next * page. *

              *
              * * @param getAggregateConformancePackComplianceSummaryRequest * @return Result of the GetAggregateConformancePackComplianceSummary operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @sample AmazonConfig.GetAggregateConformancePackComplianceSummary * @see AWS API Documentation */ @Override public GetAggregateConformancePackComplianceSummaryResult getAggregateConformancePackComplianceSummary( GetAggregateConformancePackComplianceSummaryRequest request) { request = beforeClientExecution(request); return executeGetAggregateConformancePackComplianceSummary(request); } @SdkInternalApi final GetAggregateConformancePackComplianceSummaryResult executeGetAggregateConformancePackComplianceSummary( GetAggregateConformancePackComplianceSummaryRequest getAggregateConformancePackComplianceSummaryRequest) { ExecutionContext executionContext = createExecutionContext(getAggregateConformancePackComplianceSummaryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetAggregateConformancePackComplianceSummaryRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getAggregateConformancePackComplianceSummaryRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetAggregateConformancePackComplianceSummary"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetAggregateConformancePackComplianceSummaryResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the resource counts across accounts and regions that are present in your Config aggregator. You can * request the resource counts by providing filters and GroupByKey. *

              *

              * For example, if the input contains accountID 12345678910 and region us-east-1 in filters, the API returns the * count of resources in account ID 12345678910 and region us-east-1. If the input contains ACCOUNT_ID as a * GroupByKey, the API returns resource counts for all source accounts that are present in your aggregator. *

              * * @param getAggregateDiscoveredResourceCountsRequest * @return Result of the GetAggregateDiscoveredResourceCounts operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @sample AmazonConfig.GetAggregateDiscoveredResourceCounts * @see AWS API Documentation */ @Override public GetAggregateDiscoveredResourceCountsResult getAggregateDiscoveredResourceCounts(GetAggregateDiscoveredResourceCountsRequest request) { request = beforeClientExecution(request); return executeGetAggregateDiscoveredResourceCounts(request); } @SdkInternalApi final GetAggregateDiscoveredResourceCountsResult executeGetAggregateDiscoveredResourceCounts( GetAggregateDiscoveredResourceCountsRequest getAggregateDiscoveredResourceCountsRequest) { ExecutionContext executionContext = createExecutionContext(getAggregateDiscoveredResourceCountsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetAggregateDiscoveredResourceCountsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getAggregateDiscoveredResourceCountsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetAggregateDiscoveredResourceCounts"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetAggregateDiscoveredResourceCountsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns configuration item that is aggregated for your specific resource in a specific source account and region. *

              * * @param getAggregateResourceConfigRequest * @return Result of the GetAggregateResourceConfig operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @throws OversizedConfigurationItemException * The configuration item size is outside the allowable range. * @throws ResourceNotDiscoveredException * You have specified a resource that is either unknown or has not been discovered. * @sample AmazonConfig.GetAggregateResourceConfig * @see AWS API Documentation */ @Override public GetAggregateResourceConfigResult getAggregateResourceConfig(GetAggregateResourceConfigRequest request) { request = beforeClientExecution(request); return executeGetAggregateResourceConfig(request); } @SdkInternalApi final GetAggregateResourceConfigResult executeGetAggregateResourceConfig(GetAggregateResourceConfigRequest getAggregateResourceConfigRequest) { ExecutionContext executionContext = createExecutionContext(getAggregateResourceConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetAggregateResourceConfigRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getAggregateResourceConfigRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetAggregateResourceConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetAggregateResourceConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the evaluation results for the specified Config rule. The results indicate which Amazon Web Services * resources were evaluated by the rule, when each resource was last evaluated, and whether each resource complies * with the rule. *

              * * @param getComplianceDetailsByConfigRuleRequest * @return Result of the GetComplianceDetailsByConfigRule operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws NoSuchConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that * the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again. * @sample AmazonConfig.GetComplianceDetailsByConfigRule * @see AWS API Documentation */ @Override public GetComplianceDetailsByConfigRuleResult getComplianceDetailsByConfigRule(GetComplianceDetailsByConfigRuleRequest request) { request = beforeClientExecution(request); return executeGetComplianceDetailsByConfigRule(request); } @SdkInternalApi final GetComplianceDetailsByConfigRuleResult executeGetComplianceDetailsByConfigRule( GetComplianceDetailsByConfigRuleRequest getComplianceDetailsByConfigRuleRequest) { ExecutionContext executionContext = createExecutionContext(getComplianceDetailsByConfigRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetComplianceDetailsByConfigRuleRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getComplianceDetailsByConfigRuleRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetComplianceDetailsByConfigRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetComplianceDetailsByConfigRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the evaluation results for the specified Amazon Web Services resource. The results indicate which Config * rules were used to evaluate the resource, when each rule was last invoked, and whether the resource complies with * each rule. *

              * * @param getComplianceDetailsByResourceRequest * @return Result of the GetComplianceDetailsByResource operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.GetComplianceDetailsByResource * @see AWS API Documentation */ @Override public GetComplianceDetailsByResourceResult getComplianceDetailsByResource(GetComplianceDetailsByResourceRequest request) { request = beforeClientExecution(request); return executeGetComplianceDetailsByResource(request); } @SdkInternalApi final GetComplianceDetailsByResourceResult executeGetComplianceDetailsByResource(GetComplianceDetailsByResourceRequest getComplianceDetailsByResourceRequest) { ExecutionContext executionContext = createExecutionContext(getComplianceDetailsByResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetComplianceDetailsByResourceRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getComplianceDetailsByResourceRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetComplianceDetailsByResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetComplianceDetailsByResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the number of Config rules that are compliant and noncompliant, up to a maximum of 25 for each. *

              * * @param getComplianceSummaryByConfigRuleRequest * @return Result of the GetComplianceSummaryByConfigRule operation returned by the service. * @sample AmazonConfig.GetComplianceSummaryByConfigRule * @see AWS API Documentation */ @Override public GetComplianceSummaryByConfigRuleResult getComplianceSummaryByConfigRule(GetComplianceSummaryByConfigRuleRequest request) { request = beforeClientExecution(request); return executeGetComplianceSummaryByConfigRule(request); } @SdkInternalApi final GetComplianceSummaryByConfigRuleResult executeGetComplianceSummaryByConfigRule( GetComplianceSummaryByConfigRuleRequest getComplianceSummaryByConfigRuleRequest) { ExecutionContext executionContext = createExecutionContext(getComplianceSummaryByConfigRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetComplianceSummaryByConfigRuleRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getComplianceSummaryByConfigRuleRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetComplianceSummaryByConfigRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetComplianceSummaryByConfigRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public GetComplianceSummaryByConfigRuleResult getComplianceSummaryByConfigRule() { return getComplianceSummaryByConfigRule(new GetComplianceSummaryByConfigRuleRequest()); } /** *

              * Returns the number of resources that are compliant and the number that are noncompliant. You can specify one or * more resource types to get these numbers for each resource type. The maximum number returned is 100. *

              * * @param getComplianceSummaryByResourceTypeRequest * @return Result of the GetComplianceSummaryByResourceType operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.GetComplianceSummaryByResourceType * @see AWS API Documentation */ @Override public GetComplianceSummaryByResourceTypeResult getComplianceSummaryByResourceType(GetComplianceSummaryByResourceTypeRequest request) { request = beforeClientExecution(request); return executeGetComplianceSummaryByResourceType(request); } @SdkInternalApi final GetComplianceSummaryByResourceTypeResult executeGetComplianceSummaryByResourceType( GetComplianceSummaryByResourceTypeRequest getComplianceSummaryByResourceTypeRequest) { ExecutionContext executionContext = createExecutionContext(getComplianceSummaryByResourceTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetComplianceSummaryByResourceTypeRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getComplianceSummaryByResourceTypeRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetComplianceSummaryByResourceType"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetComplianceSummaryByResourceTypeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public GetComplianceSummaryByResourceTypeResult getComplianceSummaryByResourceType() { return getComplianceSummaryByResourceType(new GetComplianceSummaryByResourceTypeRequest()); } /** *

              * Returns compliance details of a conformance pack for all Amazon Web Services resources that are monitered by * conformance pack. *

              * * @param getConformancePackComplianceDetailsRequest * @return Result of the GetConformancePackComplianceDetails operation returned by the service. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws NoSuchConformancePackException * You specified one or more conformance packs that do not exist. * @throws NoSuchConfigRuleInConformancePackException * Config rule that you passed in the filter does not exist. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.GetConformancePackComplianceDetails * @see AWS API Documentation */ @Override public GetConformancePackComplianceDetailsResult getConformancePackComplianceDetails(GetConformancePackComplianceDetailsRequest request) { request = beforeClientExecution(request); return executeGetConformancePackComplianceDetails(request); } @SdkInternalApi final GetConformancePackComplianceDetailsResult executeGetConformancePackComplianceDetails( GetConformancePackComplianceDetailsRequest getConformancePackComplianceDetailsRequest) { ExecutionContext executionContext = createExecutionContext(getConformancePackComplianceDetailsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetConformancePackComplianceDetailsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getConformancePackComplianceDetailsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetConformancePackComplianceDetails"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetConformancePackComplianceDetailsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns compliance details for the conformance pack based on the cumulative compliance results of all the rules * in that conformance pack. *

              * * @param getConformancePackComplianceSummaryRequest * @return Result of the GetConformancePackComplianceSummary operation returned by the service. * @throws NoSuchConformancePackException * You specified one or more conformance packs that do not exist. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @sample AmazonConfig.GetConformancePackComplianceSummary * @see AWS API Documentation */ @Override public GetConformancePackComplianceSummaryResult getConformancePackComplianceSummary(GetConformancePackComplianceSummaryRequest request) { request = beforeClientExecution(request); return executeGetConformancePackComplianceSummary(request); } @SdkInternalApi final GetConformancePackComplianceSummaryResult executeGetConformancePackComplianceSummary( GetConformancePackComplianceSummaryRequest getConformancePackComplianceSummaryRequest) { ExecutionContext executionContext = createExecutionContext(getConformancePackComplianceSummaryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetConformancePackComplianceSummaryRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getConformancePackComplianceSummaryRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetConformancePackComplianceSummary"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetConformancePackComplianceSummaryResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the policy definition containing the logic for your Config Custom Policy rule. *

              * * @param getCustomRulePolicyRequest * @return Result of the GetCustomRulePolicy operation returned by the service. * @throws NoSuchConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that * the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again. * @sample AmazonConfig.GetCustomRulePolicy * @see AWS API * Documentation */ @Override public GetCustomRulePolicyResult getCustomRulePolicy(GetCustomRulePolicyRequest request) { request = beforeClientExecution(request); return executeGetCustomRulePolicy(request); } @SdkInternalApi final GetCustomRulePolicyResult executeGetCustomRulePolicy(GetCustomRulePolicyRequest getCustomRulePolicyRequest) { ExecutionContext executionContext = createExecutionContext(getCustomRulePolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetCustomRulePolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getCustomRulePolicyRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetCustomRulePolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetCustomRulePolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the resource types, the number of each resource type, and the total number of resources that Config is * recording in this region for your Amazon Web Services account. *

              *

              * Example *

              *
                *
              1. *

                * Config is recording three resource types in the US East (Ohio) Region for your account: 25 EC2 instances, 20 IAM * users, and 15 S3 buckets. *

                *
              2. *
              3. *

                * You make a call to the GetDiscoveredResourceCounts action and specify that you want all resource * types. *

                *
              4. *
              5. *

                * Config returns the following: *

                *
                  *
                • *

                  * The resource types (EC2 instances, IAM users, and S3 buckets). *

                  *
                • *
                • *

                  * The number of each resource type (25, 20, and 15). *

                  *
                • *
                • *

                  * The total number of all resources (60). *

                  *
                • *
                *
              6. *
              *

              * The response is paginated. By default, Config lists 100 ResourceCount objects on each page. You can * customize this number with the limit parameter. The response includes a nextToken * string. To get the next page of results, run the request again and specify the string for the * nextToken parameter. *

              * *

              * If you make a call to the GetDiscoveredResourceCounts action, you might not immediately receive resource * counts in the following situations: *

              *
                *
              • *

                * You are a new Config customer. *

                *
              • *
              • *

                * You just enabled resource recording. *

                *
              • *
              *

              * It might take a few minutes for Config to record and count your resources. Wait a few minutes and then retry the * GetDiscoveredResourceCounts action. *

              *
              * * @param getDiscoveredResourceCountsRequest * @return Result of the GetDiscoveredResourceCounts operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @sample AmazonConfig.GetDiscoveredResourceCounts * @see AWS API Documentation */ @Override public GetDiscoveredResourceCountsResult getDiscoveredResourceCounts(GetDiscoveredResourceCountsRequest request) { request = beforeClientExecution(request); return executeGetDiscoveredResourceCounts(request); } @SdkInternalApi final GetDiscoveredResourceCountsResult executeGetDiscoveredResourceCounts(GetDiscoveredResourceCountsRequest getDiscoveredResourceCountsRequest) { ExecutionContext executionContext = createExecutionContext(getDiscoveredResourceCountsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetDiscoveredResourceCountsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getDiscoveredResourceCountsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetDiscoveredResourceCounts"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetDiscoveredResourceCountsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns detailed status for each member account within an organization for a given organization Config rule. *

              * * @param getOrganizationConfigRuleDetailedStatusRequest * @return Result of the GetOrganizationConfigRuleDetailedStatus operation returned by the service. * @throws NoSuchOrganizationConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an organization Config Process Check * rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying * again. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following * reasons:

              *
                *
              • *

                * No permission to call EnableAWSServiceAccess API *

                *
              • *
              • *

                * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

                *
              • *
              • *

                * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

                *
              • *
              • *

                * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

                *
              • *
              *

              * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @sample AmazonConfig.GetOrganizationConfigRuleDetailedStatus * @see AWS API Documentation */ @Override public GetOrganizationConfigRuleDetailedStatusResult getOrganizationConfigRuleDetailedStatus(GetOrganizationConfigRuleDetailedStatusRequest request) { request = beforeClientExecution(request); return executeGetOrganizationConfigRuleDetailedStatus(request); } @SdkInternalApi final GetOrganizationConfigRuleDetailedStatusResult executeGetOrganizationConfigRuleDetailedStatus( GetOrganizationConfigRuleDetailedStatusRequest getOrganizationConfigRuleDetailedStatusRequest) { ExecutionContext executionContext = createExecutionContext(getOrganizationConfigRuleDetailedStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetOrganizationConfigRuleDetailedStatusRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getOrganizationConfigRuleDetailedStatusRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetOrganizationConfigRuleDetailedStatus"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetOrganizationConfigRuleDetailedStatusResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns detailed status for each member account within an organization for a given organization conformance pack. *

              * * @param getOrganizationConformancePackDetailedStatusRequest * @return Result of the GetOrganizationConformancePackDetailedStatus operation returned by the service. * @throws NoSuchOrganizationConformancePackException * Config organization conformance pack that you passed in the filter does not exist.

              *

              * For DeleteOrganizationConformancePack, you tried to delete an organization conformance pack that does not * exist. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following reasons: *

              *
                *
              • *

                * No permission to call EnableAWSServiceAccess API *

                *
              • *
              • *

                * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

                *
              • *
              • *

                * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

                *
              • *
              • *

                * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

                *
              • *
              *

              * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @sample AmazonConfig.GetOrganizationConformancePackDetailedStatus * @see AWS API Documentation */ @Override public GetOrganizationConformancePackDetailedStatusResult getOrganizationConformancePackDetailedStatus( GetOrganizationConformancePackDetailedStatusRequest request) { request = beforeClientExecution(request); return executeGetOrganizationConformancePackDetailedStatus(request); } @SdkInternalApi final GetOrganizationConformancePackDetailedStatusResult executeGetOrganizationConformancePackDetailedStatus( GetOrganizationConformancePackDetailedStatusRequest getOrganizationConformancePackDetailedStatusRequest) { ExecutionContext executionContext = createExecutionContext(getOrganizationConformancePackDetailedStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetOrganizationConformancePackDetailedStatusRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getOrganizationConformancePackDetailedStatusRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetOrganizationConformancePackDetailedStatus"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetOrganizationConformancePackDetailedStatusResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the policy definition containing the logic for your organization Config Custom Policy rule. *

              * * @param getOrganizationCustomRulePolicyRequest * @return Result of the GetOrganizationCustomRulePolicy operation returned by the service. * @throws NoSuchOrganizationConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an organization Config Process Check * rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying * again. * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following * reasons:

              *
                *
              • *

                * No permission to call EnableAWSServiceAccess API *

                *
              • *
              • *

                * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

                *
              • *
              • *

                * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

                *
              • *
              • *

                * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

                *
              • *
              *

              * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @sample AmazonConfig.GetOrganizationCustomRulePolicy * @see AWS API Documentation */ @Override public GetOrganizationCustomRulePolicyResult getOrganizationCustomRulePolicy(GetOrganizationCustomRulePolicyRequest request) { request = beforeClientExecution(request); return executeGetOrganizationCustomRulePolicy(request); } @SdkInternalApi final GetOrganizationCustomRulePolicyResult executeGetOrganizationCustomRulePolicy( GetOrganizationCustomRulePolicyRequest getOrganizationCustomRulePolicyRequest) { ExecutionContext executionContext = createExecutionContext(getOrganizationCustomRulePolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetOrganizationCustomRulePolicyRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getOrganizationCustomRulePolicyRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetOrganizationCustomRulePolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetOrganizationCustomRulePolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns a list of ConfigurationItems for the specified resource. The list contains details about * each state of the resource during the specified time interval. If you specified a retention period to retain your * ConfigurationItems between a minimum of 30 days and a maximum of 7 years (2557 days), Config returns * the ConfigurationItems for the specified retention period. *

              *

              * The response is paginated. By default, Config returns a limit of 10 configuration items per page. You can * customize this number with the limit parameter. The response includes a nextToken * string. To get the next page of results, run the request again and specify the string for the * nextToken parameter. *

              * *

              * Each call to the API is limited to span a duration of seven days. It is likely that the number of records * returned is smaller than the specified limit. In such cases, you can make another call, using the * nextToken. *

              *
              * * @param getResourceConfigHistoryRequest * The input for the GetResourceConfigHistory action. * @return Result of the GetResourceConfigHistory operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidTimeRangeException * The specified time range is not valid. The earlier time is not chronologically before the later time. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws NoAvailableConfigurationRecorderException * There are no configuration recorders available to provide the role needed to describe your resources. * Create a configuration recorder. * @throws ResourceNotDiscoveredException * You have specified a resource that is either unknown or has not been discovered. * @sample AmazonConfig.GetResourceConfigHistory * @see AWS API Documentation */ @Override public GetResourceConfigHistoryResult getResourceConfigHistory(GetResourceConfigHistoryRequest request) { request = beforeClientExecution(request); return executeGetResourceConfigHistory(request); } @SdkInternalApi final GetResourceConfigHistoryResult executeGetResourceConfigHistory(GetResourceConfigHistoryRequest getResourceConfigHistoryRequest) { ExecutionContext executionContext = createExecutionContext(getResourceConfigHistoryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResourceConfigHistoryRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getResourceConfigHistoryRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResourceConfigHistory"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResourceConfigHistoryResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns a summary of resource evaluation for the specified resource evaluation ID from the proactive rules that * were run. The results indicate which evaluation context was used to evaluate the rules, which resource details * were evaluated, the evaluation mode that was run, and whether the resource details comply with the configuration * of the proactive rules. *

              * *

              * To see additional information about the evaluation result, such as which rule flagged a resource as * NON_COMPLIANT, use the GetComplianceDetailsByResource API. For more information, see the Examples section. *

              *
              * * @param getResourceEvaluationSummaryRequest * @return Result of the GetResourceEvaluationSummary operation returned by the service. * @throws ResourceNotFoundException * You have specified a resource that does not exist. * @sample AmazonConfig.GetResourceEvaluationSummary * @see AWS API Documentation */ @Override public GetResourceEvaluationSummaryResult getResourceEvaluationSummary(GetResourceEvaluationSummaryRequest request) { request = beforeClientExecution(request); return executeGetResourceEvaluationSummary(request); } @SdkInternalApi final GetResourceEvaluationSummaryResult executeGetResourceEvaluationSummary(GetResourceEvaluationSummaryRequest getResourceEvaluationSummaryRequest) { ExecutionContext executionContext = createExecutionContext(getResourceEvaluationSummaryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResourceEvaluationSummaryRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getResourceEvaluationSummaryRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResourceEvaluationSummary"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResourceEvaluationSummaryResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns the details of a specific stored query. *

              * * @param getStoredQueryRequest * @return Result of the GetStoredQuery operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws ResourceNotFoundException * You have specified a resource that does not exist. * @sample AmazonConfig.GetStoredQuery * @see AWS API * Documentation */ @Override public GetStoredQueryResult getStoredQuery(GetStoredQueryRequest request) { request = beforeClientExecution(request); return executeGetStoredQuery(request); } @SdkInternalApi final GetStoredQueryResult executeGetStoredQuery(GetStoredQueryRequest getStoredQueryRequest) { ExecutionContext executionContext = createExecutionContext(getStoredQueryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetStoredQueryRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getStoredQueryRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetStoredQuery"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetStoredQueryResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Accepts a resource type and returns a list of resource identifiers that are aggregated for a specific resource * type across accounts and regions. A resource identifier includes the resource type, ID, (if available) the custom * resource name, source account, and source region. You can narrow the results to include only resources that have * specific resource IDs, or a resource name, or source account ID, or source region. *

              *

              * For example, if the input consists of accountID 12345678910 and the region is us-east-1 for resource type * AWS::EC2::Instance then the API returns all the EC2 instance identifiers of accountID 12345678910 * and region us-east-1. *

              * * @param listAggregateDiscoveredResourcesRequest * @return Result of the ListAggregateDiscoveredResources operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @sample AmazonConfig.ListAggregateDiscoveredResources * @see AWS API Documentation */ @Override public ListAggregateDiscoveredResourcesResult listAggregateDiscoveredResources(ListAggregateDiscoveredResourcesRequest request) { request = beforeClientExecution(request); return executeListAggregateDiscoveredResources(request); } @SdkInternalApi final ListAggregateDiscoveredResourcesResult executeListAggregateDiscoveredResources( ListAggregateDiscoveredResourcesRequest listAggregateDiscoveredResourcesRequest) { ExecutionContext executionContext = createExecutionContext(listAggregateDiscoveredResourcesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListAggregateDiscoveredResourcesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listAggregateDiscoveredResourcesRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListAggregateDiscoveredResources"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListAggregateDiscoveredResourcesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns a list of conformance pack compliance scores. A compliance score is the percentage of the number of * compliant rule-resource combinations in a conformance pack compared to the number of total possible rule-resource * combinations in the conformance pack. This metric provides you with a high-level view of the compliance state of * your conformance packs. You can use it to identify, investigate, and understand the level of compliance in your * conformance packs. *

              * *

              * Conformance packs with no evaluation results will have a compliance score of INSUFFICIENT_DATA. *

              *
              * * @param listConformancePackComplianceScoresRequest * @return Result of the ListConformancePackComplianceScores operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @sample AmazonConfig.ListConformancePackComplianceScores * @see AWS API Documentation */ @Override public ListConformancePackComplianceScoresResult listConformancePackComplianceScores(ListConformancePackComplianceScoresRequest request) { request = beforeClientExecution(request); return executeListConformancePackComplianceScores(request); } @SdkInternalApi final ListConformancePackComplianceScoresResult executeListConformancePackComplianceScores( ListConformancePackComplianceScoresRequest listConformancePackComplianceScoresRequest) { ExecutionContext executionContext = createExecutionContext(listConformancePackComplianceScoresRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListConformancePackComplianceScoresRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listConformancePackComplianceScoresRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListConformancePackComplianceScores"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListConformancePackComplianceScoresResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Accepts a resource type and returns a list of resource identifiers for the resources of that type. A resource * identifier includes the resource type, ID, and (if available) the custom resource name. The results consist of * resources that Config has discovered, including those that Config is not currently recording. You can narrow the * results to include only resources that have specific resource IDs or a resource name. *

              * *

              * You can specify either resource IDs or a resource name, but not both, in the same request. *

              *
              *

              * The response is paginated. By default, Config lists 100 resource identifiers on each page. You can customize this * number with the limit parameter. The response includes a nextToken string. To get the * next page of results, run the request again and specify the string for the nextToken parameter. *

              * * @param listDiscoveredResourcesRequest * @return Result of the ListDiscoveredResources operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws NoAvailableConfigurationRecorderException * There are no configuration recorders available to provide the role needed to describe your resources. * Create a configuration recorder. * @sample AmazonConfig.ListDiscoveredResources * @see AWS * API Documentation */ @Override public ListDiscoveredResourcesResult listDiscoveredResources(ListDiscoveredResourcesRequest request) { request = beforeClientExecution(request); return executeListDiscoveredResources(request); } @SdkInternalApi final ListDiscoveredResourcesResult executeListDiscoveredResources(ListDiscoveredResourcesRequest listDiscoveredResourcesRequest) { ExecutionContext executionContext = createExecutionContext(listDiscoveredResourcesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListDiscoveredResourcesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listDiscoveredResourcesRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListDiscoveredResources"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListDiscoveredResourcesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Returns a list of proactive resource evaluations. *

              * * @param listResourceEvaluationsRequest * @return Result of the ListResourceEvaluations operation returned by the service. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws InvalidTimeRangeException * The specified time range is not valid. The earlier time is not chronologically before the later time. * @sample AmazonConfig.ListResourceEvaluations * @see AWS * API Documentation */ @Override public ListResourceEvaluationsResult listResourceEvaluations(ListResourceEvaluationsRequest request) { request = beforeClientExecution(request); return executeListResourceEvaluations(request); } @SdkInternalApi final ListResourceEvaluationsResult executeListResourceEvaluations(ListResourceEvaluationsRequest listResourceEvaluationsRequest) { ExecutionContext executionContext = createExecutionContext(listResourceEvaluationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListResourceEvaluationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listResourceEvaluationsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListResourceEvaluations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListResourceEvaluationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Lists the stored queries for a single Amazon Web Services account and a single Amazon Web Services Region. The * default is 100. *

              * * @param listStoredQueriesRequest * @return Result of the ListStoredQueries operation returned by the service. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @sample AmazonConfig.ListStoredQueries * @see AWS API * Documentation */ @Override public ListStoredQueriesResult listStoredQueries(ListStoredQueriesRequest request) { request = beforeClientExecution(request); return executeListStoredQueries(request); } @SdkInternalApi final ListStoredQueriesResult executeListStoredQueries(ListStoredQueriesRequest listStoredQueriesRequest) { ExecutionContext executionContext = createExecutionContext(listStoredQueriesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListStoredQueriesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listStoredQueriesRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListStoredQueries"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListStoredQueriesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * List the tags for Config resource. *

              * * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws ResourceNotFoundException * You have specified a resource that does not exist. * @throws ValidationException * The requested action is not valid.

              *

              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

              *

              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @sample AmazonConfig.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, "Config Service"); 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); } } /** *

              * Authorizes the aggregator account and region to collect data from the source account and region. *

              * *

              * PutAggregationAuthorization is an idempotent API. Subsequent requests won’t create a duplicate * resource if one was already created. If a following request has different tags values, Config will * ignore these differences and treat it as an idempotent request of the previous. In this case, tags * will not be updated, even if they are different. *

              *
              * * @param putAggregationAuthorizationRequest * @return Result of the PutAggregationAuthorization operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.PutAggregationAuthorization * @see AWS API Documentation */ @Override public PutAggregationAuthorizationResult putAggregationAuthorization(PutAggregationAuthorizationRequest request) { request = beforeClientExecution(request); return executePutAggregationAuthorization(request); } @SdkInternalApi final PutAggregationAuthorizationResult executePutAggregationAuthorization(PutAggregationAuthorizationRequest putAggregationAuthorizationRequest) { ExecutionContext executionContext = createExecutionContext(putAggregationAuthorizationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutAggregationAuthorizationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(putAggregationAuthorizationRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutAggregationAuthorization"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutAggregationAuthorizationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Adds or updates an Config rule to evaluate if your Amazon Web Services resources comply with your desired * configurations. For information on how many Config rules you can have per account, see Service Limits in * the Config Developer Guide. *

              *

              * There are two types of rules: Config Managed Rules and Config Custom Rules. You can use * PutConfigRule to create both Config Managed Rules and Config Custom Rules. *

              *

              * Config Managed Rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config * Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the * SourceIdentifier key. *

              *

              * Config Custom Rules are rules that you create from scratch. There are two ways to create Config custom rules: * with Lambda functions ( Lambda Developer Guide) and with Guard (Guard GitHub Repository), a policy-as-code * language. Config custom rules created with Lambda are called Config Custom Lambda Rules and Config custom * rules created with Guard are called Config Custom Policy Rules. *

              *

              * If you are adding a new Config Custom Lambda rule, you first need to create an Lambda function that the rule * invokes to evaluate your resources. When you use PutConfigRule to add a Custom Lambda rule to * Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function. You specify the ARN * in the SourceIdentifier key. This key is part of the Source object, which is part of * the ConfigRule object. *

              *

              * For any new Config rule that you add, specify the ConfigRuleName in the ConfigRule * object. Do not specify the ConfigRuleArn or the ConfigRuleId. These values are * generated by Config for new rules. *

              *

              * If you are updating a rule that you added previously, you can specify the rule by ConfigRuleName, * ConfigRuleId, or ConfigRuleArn in the ConfigRule data type that you use in * this request. *

              *

              * For more information about developing and using Config rules, see Evaluating Resources with * Config Rules in the Config Developer Guide. *

              * *

              * PutConfigRule is an idempotent API. Subsequent requests won’t create a duplicate resource if one was * already created. If a following request has different tags values, Config will ignore these * differences and treat it as an idempotent request of the previous. In this case, tags will not be * updated, even if they are different. *

              *
              * * @param putConfigRuleRequest * @return Result of the PutConfigRule operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws MaxNumberOfConfigRulesExceededException * Failed to add the Config rule because the account already contains the maximum number of 150 rules. * Consider deleting any deactivated rules before you add new rules. * @throws ResourceInUseException * You see this exception in the following cases:

              *
                *
              • *

                * For DeleteConfigRule, Config is deleting this rule. Try your request again later. *

                *
              • *
              • *

                * For DeleteConfigRule, the rule is deleting your evaluation results. Try your request again later. *

                *
              • *
              • *

                * For DeleteConfigRule, a remediation action is associated with the rule and Config cannot delete this * rule. Delete the remediation action associated with the rule before deleting the rule and try your * request again later. *

                *
              • *
              • *

                * For PutConfigOrganizationRule, organization Config rule deletion is in progress. Try your request again * later. *

                *
              • *
              • *

                * For DeleteOrganizationConfigRule, organization Config rule creation is in progress. Try your request * again later. *

                *
              • *
              • *

                * For PutConformancePack and PutOrganizationConformancePack, a conformance pack creation, update, and * deletion is in progress. Try your request again later. *

                *
              • *
              • *

                * For DeleteConformancePack, a conformance pack creation, update, and deletion is in progress. Try your * request again later. *

                *
              • * @throws InsufficientPermissionsException * Indicates one of the following errors:

                *
                  *
                • *

                  * For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions * to perform the config:Put* action. *

                  *
                • *
                • *

                  * For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the * function's permissions. *

                  *
                • *
                • *

                  * For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have * permissions to call IAM GetRole action or create a service-linked role. *

                  *
                • *
                • *

                  * For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because * you do not have the following permissions: *

                  *
                    *
                  • *

                    * You do not have permission to call IAM GetRole action or create a service-linked role. *

                    *
                  • *
                  • *

                    * You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. *

                    *
                  • *
                  *
                • * @throws NoAvailableConfigurationRecorderException * There are no configuration recorders available to provide the role needed to describe your resources. * Create a configuration recorder. * @sample AmazonConfig.PutConfigRule * @see AWS API * Documentation */ @Override public PutConfigRuleResult putConfigRule(PutConfigRuleRequest request) { request = beforeClientExecution(request); return executePutConfigRule(request); } @SdkInternalApi final PutConfigRuleResult executePutConfigRule(PutConfigRuleRequest putConfigRuleRequest) { ExecutionContext executionContext = createExecutionContext(putConfigRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutConfigRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putConfigRuleRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutConfigRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutConfigRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                  * Creates and updates the configuration aggregator with the selected source accounts and regions. The source * account can be individual account(s) or an organization. *

                  *

                  * accountIds that are passed will be replaced with existing accounts. If you want to add additional * accounts into the aggregator, call DescribeConfigurationAggregators to get the previous accounts and * then append new ones. *

                  * *

                  * Config should be enabled in source accounts and regions you want to aggregate. *

                  *

                  * If your source type is an organization, you must be signed in to the management account or a registered delegated * administrator and all the features must be enabled in your organization. If the caller is a management account, * Config calls EnableAwsServiceAccess API to enable integration between Config and Organizations. If * the caller is a registered delegated administrator, Config calls ListDelegatedAdministrators API to * verify whether the caller is a valid delegated administrator. *

                  *

                  * To register a delegated administrator, see Register a Delegated Administrator in the Config developer guide. *

                  *
                  *

                  * PutConfigurationAggregator is an idempotent API. Subsequent requests won’t create a duplicate * resource if one was already created. If a following request has different tags values, Config will * ignore these differences and treat it as an idempotent request of the previous. In this case, tags * will not be updated, even if they are different. *

                  *
                  * * @param putConfigurationAggregatorRequest * @return Result of the PutConfigurationAggregator operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws LimitExceededException * For StartConfigRulesEvaluation API, this exception is thrown if an evaluation is in progress * or if you call the StartConfigRulesEvaluation API more than once per minute.

                  *

                  * For PutConfigurationAggregator API, this exception is thrown if the number of accounts and * aggregators exceeds the limit. * @throws InvalidRoleException * You have provided a null or empty Amazon Resource Name (ARN) for the IAM role assumed by Config and used * by the configuration recorder. * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following reasons: *

                  *
                    *
                  • *

                    * No permission to call EnableAWSServiceAccess API *

                    *
                  • *
                  • *

                    * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

                    *
                  • *
                  • *

                    * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

                    *
                  • *
                  • *

                    * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

                    *
                  • *
                  *

                  * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @throws NoAvailableOrganizationException * Organization is no longer available. * @throws OrganizationAllFeaturesNotEnabledException * Config resource cannot be created because your organization does not have all features enabled. * @sample AmazonConfig.PutConfigurationAggregator * @see AWS API Documentation */ @Override public PutConfigurationAggregatorResult putConfigurationAggregator(PutConfigurationAggregatorRequest request) { request = beforeClientExecution(request); return executePutConfigurationAggregator(request); } @SdkInternalApi final PutConfigurationAggregatorResult executePutConfigurationAggregator(PutConfigurationAggregatorRequest putConfigurationAggregatorRequest) { ExecutionContext executionContext = createExecutionContext(putConfigurationAggregatorRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutConfigurationAggregatorRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(putConfigurationAggregatorRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutConfigurationAggregator"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutConfigurationAggregatorResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                  * Creates a new configuration recorder to record configuration changes for specified resource types. *

                  *

                  * You can also use this action to change the roleARN or the recordingGroup of an existing * recorder. For more information, see Managing the * Configuration Recorder in the Config Developer Guide. *

                  * *

                  * You can specify only one configuration recorder for each Amazon Web Services Region for each account. *

                  *

                  * If the configuration recorder does not have the recordingGroup field specified, the default is to * record all supported resource types. *

                  *
                  * * @param putConfigurationRecorderRequest * The input for the PutConfigurationRecorder action. * @return Result of the PutConfigurationRecorder operation returned by the service. * @throws MaxNumberOfConfigurationRecordersExceededException * You have reached the limit of the number of configuration recorders you can create. * @throws InvalidConfigurationRecorderNameException * You have provided a name for the configuration recorder that is not valid. * @throws InvalidRoleException * You have provided a null or empty Amazon Resource Name (ARN) for the IAM role assumed by Config and used * by the configuration recorder. * @throws InvalidRecordingGroupException * Indicates one of the following errors:

                  *
                    *
                  • *

                    * You have provided a combination of parameter values that is not valid. For example: *

                    *
                      *
                    • *

                      * Setting the allSupported field of RecordingGroup * to true, but providing a non-empty list for the resourceTypesfield of RecordingGroup. *

                      *
                    • *
                    • *

                      * Setting the allSupported field of RecordingGroup * to true, but also setting the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES. *

                      *
                    • *
                    *
                  • *
                  • *

                    * Every parameter is either null, false, or empty. *

                    *
                  • *
                  • *

                    * You have reached the limit of the number of resource types you can provide for the recording group. *

                    *
                  • *
                  • *

                    * You have provided resource types or a recording strategy that are not valid. *

                    *
                  • * @sample AmazonConfig.PutConfigurationRecorder * @see AWS API Documentation */ @Override public PutConfigurationRecorderResult putConfigurationRecorder(PutConfigurationRecorderRequest request) { request = beforeClientExecution(request); return executePutConfigurationRecorder(request); } @SdkInternalApi final PutConfigurationRecorderResult executePutConfigurationRecorder(PutConfigurationRecorderRequest putConfigurationRecorderRequest) { ExecutionContext executionContext = createExecutionContext(putConfigurationRecorderRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutConfigurationRecorderRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(putConfigurationRecorderRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutConfigurationRecorder"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutConfigurationRecorderResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                    * Creates or updates a conformance pack. A conformance pack is a collection of Config rules that can be easily * deployed in an account and a region and across an organization. For information on how many conformance packs you * can have per account, see * Service Limits in the Config Developer Guide. *

                    *

                    * This API creates a service-linked role AWSServiceRoleForConfigConforms in your account. The * service-linked role is created only when the role does not exist in your account. *

                    * *

                    * You must specify only one of the follow parameters: TemplateS3Uri, TemplateBody or * TemplateSSMDocumentDetails. *

                    *
                    * * @param putConformancePackRequest * @return Result of the PutConformancePack operation returned by the service. * @throws InsufficientPermissionsException * Indicates one of the following errors:

                    *
                      *
                    • *

                      * For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions * to perform the config:Put* action. *

                      *
                    • *
                    • *

                      * For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the * function's permissions. *

                      *
                    • *
                    • *

                      * For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have * permissions to call IAM GetRole action or create a service-linked role. *

                      *
                    • *
                    • *

                      * For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because * you do not have the following permissions: *

                      *
                        *
                      • *

                        * You do not have permission to call IAM GetRole action or create a service-linked role. *

                        *
                      • *
                      • *

                        * You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. *

                        *
                      • *
                      *
                    • * @throws ConformancePackTemplateValidationException * You have specified a template that is not valid or supported. * @throws ResourceInUseException * You see this exception in the following cases:

                      *
                        *
                      • *

                        * For DeleteConfigRule, Config is deleting this rule. Try your request again later. *

                        *
                      • *
                      • *

                        * For DeleteConfigRule, the rule is deleting your evaluation results. Try your request again later. *

                        *
                      • *
                      • *

                        * For DeleteConfigRule, a remediation action is associated with the rule and Config cannot delete this * rule. Delete the remediation action associated with the rule before deleting the rule and try your * request again later. *

                        *
                      • *
                      • *

                        * For PutConfigOrganizationRule, organization Config rule deletion is in progress. Try your request again * later. *

                        *
                      • *
                      • *

                        * For DeleteOrganizationConfigRule, organization Config rule creation is in progress. Try your request * again later. *

                        *
                      • *
                      • *

                        * For PutConformancePack and PutOrganizationConformancePack, a conformance pack creation, update, and * deletion is in progress. Try your request again later. *

                        *
                      • *
                      • *

                        * For DeleteConformancePack, a conformance pack creation, update, and deletion is in progress. Try your * request again later. *

                        *
                      • * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws MaxNumberOfConformancePacksExceededException * You have reached the limit of the number of conformance packs you can create in an account. For more * information, see * Service Limits in the Config Developer Guide. * @sample AmazonConfig.PutConformancePack * @see AWS API * Documentation */ @Override public PutConformancePackResult putConformancePack(PutConformancePackRequest request) { request = beforeClientExecution(request); return executePutConformancePack(request); } @SdkInternalApi final PutConformancePackResult executePutConformancePack(PutConformancePackRequest putConformancePackRequest) { ExecutionContext executionContext = createExecutionContext(putConformancePackRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutConformancePackRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putConformancePackRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutConformancePack"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutConformancePackResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                        * Creates a delivery channel object to deliver configuration information to an Amazon S3 bucket and Amazon SNS * topic. *

                        *

                        * Before you can create a delivery channel, you must create a configuration recorder. *

                        *

                        * You can use this action to change the Amazon S3 bucket or an Amazon SNS topic of the existing delivery channel. * To change the Amazon S3 bucket or an Amazon SNS topic, call this action and specify the changed values for the S3 * bucket and the SNS topic. If you specify a different value for either the S3 bucket or the SNS topic, this action * will keep the existing value for the parameter that is not changed. *

                        * *

                        * You can have only one delivery channel per region in your account. *

                        *
                        * * @param putDeliveryChannelRequest * The input for the PutDeliveryChannel action. * @return Result of the PutDeliveryChannel operation returned by the service. * @throws MaxNumberOfDeliveryChannelsExceededException * You have reached the limit of the number of delivery channels you can create. * @throws NoAvailableConfigurationRecorderException * There are no configuration recorders available to provide the role needed to describe your resources. * Create a configuration recorder. * @throws InvalidDeliveryChannelNameException * The specified delivery channel name is not valid. * @throws NoSuchBucketException * The specified Amazon S3 bucket does not exist. * @throws InvalidS3KeyPrefixException * The specified Amazon S3 key prefix is not valid. * @throws InvalidS3KmsKeyArnException * The specified Amazon KMS Key ARN is not valid. * @throws InvalidSNSTopicARNException * The specified Amazon SNS topic does not exist. * @throws InsufficientDeliveryPolicyException * Your Amazon S3 bucket policy does not permit Config to write to it. * @sample AmazonConfig.PutDeliveryChannel * @see AWS API * Documentation */ @Override public PutDeliveryChannelResult putDeliveryChannel(PutDeliveryChannelRequest request) { request = beforeClientExecution(request); return executePutDeliveryChannel(request); } @SdkInternalApi final PutDeliveryChannelResult executePutDeliveryChannel(PutDeliveryChannelRequest putDeliveryChannelRequest) { ExecutionContext executionContext = createExecutionContext(putDeliveryChannelRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutDeliveryChannelRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putDeliveryChannelRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutDeliveryChannel"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutDeliveryChannelResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                        * Used by an Lambda function to deliver evaluation results to Config. This action is required in every Lambda * function that is invoked by an Config rule. *

                        * * @param putEvaluationsRequest * @return Result of the PutEvaluations operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws InvalidResultTokenException * The specified ResultToken is not valid. * @throws NoSuchConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that * the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again. * @sample AmazonConfig.PutEvaluations * @see AWS API * Documentation */ @Override public PutEvaluationsResult putEvaluations(PutEvaluationsRequest request) { request = beforeClientExecution(request); return executePutEvaluations(request); } @SdkInternalApi final PutEvaluationsResult executePutEvaluations(PutEvaluationsRequest putEvaluationsRequest) { ExecutionContext executionContext = createExecutionContext(putEvaluationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutEvaluationsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putEvaluationsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutEvaluations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutEvaluationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                        * Add or updates the evaluations for process checks. This API checks if the rule is a process check when the name * of the Config rule is provided. *

                        * * @param putExternalEvaluationRequest * @return Result of the PutExternalEvaluation operation returned by the service. * @throws NoSuchConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that * the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.PutExternalEvaluation * @see AWS * API Documentation */ @Override public PutExternalEvaluationResult putExternalEvaluation(PutExternalEvaluationRequest request) { request = beforeClientExecution(request); return executePutExternalEvaluation(request); } @SdkInternalApi final PutExternalEvaluationResult executePutExternalEvaluation(PutExternalEvaluationRequest putExternalEvaluationRequest) { ExecutionContext executionContext = createExecutionContext(putExternalEvaluationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutExternalEvaluationRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putExternalEvaluationRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutExternalEvaluation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutExternalEvaluationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                        * Adds or updates an Config rule for your entire organization to evaluate if your Amazon Web Services resources * comply with your desired configurations. For information on how many organization Config rules you can have per * account, see Service * Limits in the Config Developer Guide. *

                        *

                        * Only a management account and a delegated administrator can create or update an organization Config rule. When * calling this API with a delegated administrator, you must ensure Organizations * ListDelegatedAdministrator permissions are added. An organization can have up to 3 delegated * administrators. *

                        *

                        * This API enables organization service access through the EnableAWSServiceAccess action and creates a * service-linked role AWSServiceRoleForConfigMultiAccountSetup in the management or delegated * administrator account of your organization. The service-linked role is created only when the role does not exist * in the caller account. Config verifies the existence of role with GetRole action. *

                        *

                        * To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services * Organization register-delegated-administrator for * config-multiaccountsetup.amazonaws.com. *

                        *

                        * There are two types of rules: Config Managed Rules and Config Custom Rules. You can use * PutOrganizationConfigRule to create both Config Managed Rules and Config Custom Rules. *

                        *

                        * Config Managed Rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config * Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the * RuleIdentifier key. *

                        *

                        * Config Custom Rules are rules that you create from scratch. There are two ways to create Config custom rules: * with Lambda functions ( Lambda Developer Guide) and with Guard (Guard GitHub Repository), a policy-as-code * language. Config custom rules created with Lambda are called Config Custom Lambda Rules and Config custom * rules created with Guard are called Config Custom Policy Rules. *

                        *

                        * If you are adding a new Config Custom Lambda rule, you first need to create an Lambda function in the management * account or a delegated administrator that the rule invokes to evaluate your resources. You also need to create an * IAM role in the managed account that can be assumed by the Lambda function. When you use * PutOrganizationConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon * Resource Name (ARN) that Lambda assigns to the function. *

                        * *

                        * Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization. *

                        *

                        * Make sure to specify one of either OrganizationCustomPolicyRuleMetadata for Custom Policy rules, * OrganizationCustomRuleMetadata for Custom Lambda rules, or * OrganizationManagedRuleMetadata for managed rules. *

                        *
                        * * @param putOrganizationConfigRuleRequest * @return Result of the PutOrganizationConfigRule operation returned by the service. * @throws MaxNumberOfOrganizationConfigRulesExceededException * You have reached the limit of the number of organization Config rules you can create. For more * information, see see Service Limits * in the Config Developer Guide. * @throws ResourceInUseException * You see this exception in the following cases:

                        *
                          *
                        • *

                          * For DeleteConfigRule, Config is deleting this rule. Try your request again later. *

                          *
                        • *
                        • *

                          * For DeleteConfigRule, the rule is deleting your evaluation results. Try your request again later. *

                          *
                        • *
                        • *

                          * For DeleteConfigRule, a remediation action is associated with the rule and Config cannot delete this * rule. Delete the remediation action associated with the rule before deleting the rule and try your * request again later. *

                          *
                        • *
                        • *

                          * For PutConfigOrganizationRule, organization Config rule deletion is in progress. Try your request again * later. *

                          *
                        • *
                        • *

                          * For DeleteOrganizationConfigRule, organization Config rule creation is in progress. Try your request * again later. *

                          *
                        • *
                        • *

                          * For PutConformancePack and PutOrganizationConformancePack, a conformance pack creation, update, and * deletion is in progress. Try your request again later. *

                          *
                        • *
                        • *

                          * For DeleteConformancePack, a conformance pack creation, update, and deletion is in progress. Try your * request again later. *

                          *
                        • * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws ValidationException * The requested action is not valid.

                          *

                          * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

                          *

                          * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following reasons: *

                          *
                            *
                          • *

                            * No permission to call EnableAWSServiceAccess API *

                            *
                          • *
                          • *

                            * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

                            *
                          • *
                          • *

                            * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

                            *
                          • *
                          • *

                            * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

                            *
                          • *
                          *

                          * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @throws NoAvailableOrganizationException * Organization is no longer available. * @throws OrganizationAllFeaturesNotEnabledException * Config resource cannot be created because your organization does not have all features enabled. * @throws InsufficientPermissionsException * Indicates one of the following errors: *

                          *
                            *
                          • *

                            * For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions * to perform the config:Put* action. *

                            *
                          • *
                          • *

                            * For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the * function's permissions. *

                            *
                          • *
                          • *

                            * For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have * permissions to call IAM GetRole action or create a service-linked role. *

                            *
                          • *
                          • *

                            * For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because * you do not have the following permissions: *

                            *
                              *
                            • *

                              * You do not have permission to call IAM GetRole action or create a service-linked role. *

                              *
                            • *
                            • *

                              * You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. *

                              *
                            • *
                            *
                          • * @sample AmazonConfig.PutOrganizationConfigRule * @see AWS API Documentation */ @Override public PutOrganizationConfigRuleResult putOrganizationConfigRule(PutOrganizationConfigRuleRequest request) { request = beforeClientExecution(request); return executePutOrganizationConfigRule(request); } @SdkInternalApi final PutOrganizationConfigRuleResult executePutOrganizationConfigRule(PutOrganizationConfigRuleRequest putOrganizationConfigRuleRequest) { ExecutionContext executionContext = createExecutionContext(putOrganizationConfigRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutOrganizationConfigRuleRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(putOrganizationConfigRuleRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutOrganizationConfigRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutOrganizationConfigRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                            * Deploys conformance packs across member accounts in an Amazon Web Services Organization. For information on how * many organization conformance packs and how many Config rules you can have per account, see Service Limits in * the Config Developer Guide. *

                            *

                            * Only a management account and a delegated administrator can call this API. When calling this API with a delegated * administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added. An * organization can have up to 3 delegated administrators. *

                            *

                            * This API enables organization service access for config-multiaccountsetup.amazonaws.com through the * EnableAWSServiceAccess action and creates a service-linked role * AWSServiceRoleForConfigMultiAccountSetup in the management or delegated administrator account of * your organization. The service-linked role is created only when the role does not exist in the caller account. To * use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services * Organization register-delegate-admin for config-multiaccountsetup.amazonaws.com. *

                            * *

                            * Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization. *

                            *

                            * You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. * If you provide both Config uses the TemplateS3Uri parameter and ignores the * TemplateBody parameter. *

                            *

                            * Config sets the state of a conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the conformance * pack is created or updated. You cannot update a conformance pack while it is in this state. *

                            *
                            * * @param putOrganizationConformancePackRequest * @return Result of the PutOrganizationConformancePack operation returned by the service. * @throws MaxNumberOfOrganizationConformancePacksExceededException * You have reached the limit of the number of organization conformance packs you can create in an account. * For more information, see Service Limits * in the Config Developer Guide. * @throws ResourceInUseException * You see this exception in the following cases:

                            *
                              *
                            • *

                              * For DeleteConfigRule, Config is deleting this rule. Try your request again later. *

                              *
                            • *
                            • *

                              * For DeleteConfigRule, the rule is deleting your evaluation results. Try your request again later. *

                              *
                            • *
                            • *

                              * For DeleteConfigRule, a remediation action is associated with the rule and Config cannot delete this * rule. Delete the remediation action associated with the rule before deleting the rule and try your * request again later. *

                              *
                            • *
                            • *

                              * For PutConfigOrganizationRule, organization Config rule deletion is in progress. Try your request again * later. *

                              *
                            • *
                            • *

                              * For DeleteOrganizationConfigRule, organization Config rule creation is in progress. Try your request * again later. *

                              *
                            • *
                            • *

                              * For PutConformancePack and PutOrganizationConformancePack, a conformance pack creation, update, and * deletion is in progress. Try your request again later. *

                              *
                            • *
                            • *

                              * For DeleteConformancePack, a conformance pack creation, update, and deletion is in progress. Try your * request again later. *

                              *
                            • * @throws ValidationException * The requested action is not valid.

                              *

                              * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

                              *

                              * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws OrganizationAccessDeniedException * For PutConfigurationAggregator API, you can see this exception for the following reasons: *

                              *
                                *
                              • *

                                * No permission to call EnableAWSServiceAccess API *

                                *
                              • *
                              • *

                                * The configuration aggregator cannot be updated because your Amazon Web Services Organization management * account or the delegated administrator role changed. Delete this aggregator and create a new one with the * current Amazon Web Services Organization. *

                                *
                              • *
                              • *

                                * The configuration aggregator is associated with a previous Amazon Web Services Organization and Config * cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a * new one with the current Amazon Web Services Organization. *

                                *
                              • *
                              • *

                                * You are not a registered delegated administrator for Config with permissions to call * ListDelegatedAdministrators API. Ensure that the management account registers delagated * administrator for Config service principle name before the delegated administrator creates an aggregator. *

                                *
                              • *
                              *

                              * For all OrganizationConfigRule and OrganizationConformancePack APIs, Config * throws an exception if APIs are called from member accounts. All APIs must be called from organization * management account. * @throws InsufficientPermissionsException * Indicates one of the following errors: *

                              *
                                *
                              • *

                                * For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions * to perform the config:Put* action. *

                                *
                              • *
                              • *

                                * For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the * function's permissions. *

                                *
                              • *
                              • *

                                * For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have * permissions to call IAM GetRole action or create a service-linked role. *

                                *
                              • *
                              • *

                                * For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because * you do not have the following permissions: *

                                *
                                  *
                                • *

                                  * You do not have permission to call IAM GetRole action or create a service-linked role. *

                                  *
                                • *
                                • *

                                  * You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. *

                                  *
                                • *
                                *
                              • * @throws OrganizationConformancePackTemplateValidationException * You have specified a template that is not valid or supported. * @throws OrganizationAllFeaturesNotEnabledException * Config resource cannot be created because your organization does not have all features enabled. * @throws NoAvailableOrganizationException * Organization is no longer available. * @sample AmazonConfig.PutOrganizationConformancePack * @see AWS API Documentation */ @Override public PutOrganizationConformancePackResult putOrganizationConformancePack(PutOrganizationConformancePackRequest request) { request = beforeClientExecution(request); return executePutOrganizationConformancePack(request); } @SdkInternalApi final PutOrganizationConformancePackResult executePutOrganizationConformancePack(PutOrganizationConformancePackRequest putOrganizationConformancePackRequest) { ExecutionContext executionContext = createExecutionContext(putOrganizationConformancePackRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutOrganizationConformancePackRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(putOrganizationConformancePackRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutOrganizationConformancePack"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutOrganizationConformancePackResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                * Adds or updates the remediation configuration with a specific Config rule with the selected target or action. The * API creates the RemediationConfiguration object for the Config rule. The Config rule must already * exist for you to add a remediation configuration. The target (SSM document) must exist and have permissions to * use the target. *

                                * *

                                * If you make backward incompatible changes to the SSM document, you must call this again to ensure the * remediations can run. *

                                *

                                * This API does not support adding remediation configurations for service-linked Config Rules such as Organization * Config rules, the rules deployed by conformance packs, and rules deployed by Amazon Web Services Security Hub. *

                                *
                                *

                                * For manual remediation configuration, you need to provide a value for automationAssumeRole or use a * value in the assumeRolefield to remediate your resources. The SSM automation document can use either * as long as it maps to a valid parameter. *

                                *

                                * However, for automatic remediation configuration, the only valid assumeRole field value is * AutomationAssumeRole and you need to provide a value for AutomationAssumeRole to * remediate your resources. *

                                *
                                * * @param putRemediationConfigurationsRequest * @return Result of the PutRemediationConfigurations operation returned by the service. * @throws InsufficientPermissionsException * Indicates one of the following errors:

                                *
                                  *
                                • *

                                  * For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions * to perform the config:Put* action. *

                                  *
                                • *
                                • *

                                  * For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the * function's permissions. *

                                  *
                                • *
                                • *

                                  * For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have * permissions to call IAM GetRole action or create a service-linked role. *

                                  *
                                • *
                                • *

                                  * For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because * you do not have the following permissions: *

                                  *
                                    *
                                  • *

                                    * You do not have permission to call IAM GetRole action or create a service-linked role. *

                                    *
                                  • *
                                  • *

                                    * You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. *

                                    *
                                  • *
                                  *
                                • * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.PutRemediationConfigurations * @see AWS API Documentation */ @Override public PutRemediationConfigurationsResult putRemediationConfigurations(PutRemediationConfigurationsRequest request) { request = beforeClientExecution(request); return executePutRemediationConfigurations(request); } @SdkInternalApi final PutRemediationConfigurationsResult executePutRemediationConfigurations(PutRemediationConfigurationsRequest putRemediationConfigurationsRequest) { ExecutionContext executionContext = createExecutionContext(putRemediationConfigurationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutRemediationConfigurationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(putRemediationConfigurationsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutRemediationConfigurations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutRemediationConfigurationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                  * A remediation exception is when a specified resource is no longer considered for auto-remediation. This API adds * a new exception or updates an existing exception for a specified resource with a specified Config rule. *

                                  * *

                                  * Config generates a remediation exception when a problem occurs running a remediation action for a specified * resource. Remediation exceptions blocks auto-remediation until the exception is cleared. *

                                  *
                                  *

                                  * When placing an exception on an Amazon Web Services resource, it is recommended that remediation is set as manual * remediation until the given Config rule for the specified resource evaluates the resource as * NON_COMPLIANT. Once the resource has been evaluated as NON_COMPLIANT, you can add * remediation exceptions and change the remediation type back from Manual to Auto if you want to use * auto-remediation. Otherwise, using auto-remediation before a NON_COMPLIANT evaluation result can * delete resources before the exception is applied. *

                                  *
                                  *

                                  * Placing an exception can only be performed on resources that are NON_COMPLIANT. If you use this API * for COMPLIANT resources or resources that are NOT_APPLICABLE, a remediation exception * will not be generated. For more information on the conditions that initiate the possible Config evaluation * results, see Concepts | * Config Rules in the Config Developer Guide. *

                                  *
                                  * * @param putRemediationExceptionsRequest * @return Result of the PutRemediationExceptions operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws InsufficientPermissionsException * Indicates one of the following errors:

                                  *
                                    *
                                  • *

                                    * For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions * to perform the config:Put* action. *

                                    *
                                  • *
                                  • *

                                    * For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the * function's permissions. *

                                    *
                                  • *
                                  • *

                                    * For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have * permissions to call IAM GetRole action or create a service-linked role. *

                                    *
                                  • *
                                  • *

                                    * For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because * you do not have the following permissions: *

                                    *
                                      *
                                    • *

                                      * You do not have permission to call IAM GetRole action or create a service-linked role. *

                                      *
                                    • *
                                    • *

                                      * You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. *

                                      *
                                    • *
                                    *
                                  • * @sample AmazonConfig.PutRemediationExceptions * @see AWS API Documentation */ @Override public PutRemediationExceptionsResult putRemediationExceptions(PutRemediationExceptionsRequest request) { request = beforeClientExecution(request); return executePutRemediationExceptions(request); } @SdkInternalApi final PutRemediationExceptionsResult executePutRemediationExceptions(PutRemediationExceptionsRequest putRemediationExceptionsRequest) { ExecutionContext executionContext = createExecutionContext(putRemediationExceptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutRemediationExceptionsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(putRemediationExceptionsRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutRemediationExceptions"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutRemediationExceptionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                    * Records the configuration state for the resource provided in the request. The configuration state of a resource * is represented in Config as Configuration Items. Once this API records the configuration item, you can retrieve * the list of configuration items for the custom resource type using existing Config APIs. *

                                    * *

                                    * The custom resource type must be registered with CloudFormation. This API accepts the configuration item * registered with CloudFormation. *

                                    *

                                    * When you call this API, Config only stores configuration state of the resource provided in the request. This API * does not change or remediate the configuration of the resource. *

                                    *

                                    * Write-only schema properites are not recorded as part of the published configuration item. *

                                    *
                                    * * @param putResourceConfigRequest * @return Result of the PutResourceConfig operation returned by the service. * @throws ValidationException * The requested action is not valid.

                                    *

                                    * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

                                    *

                                    * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws InsufficientPermissionsException * Indicates one of the following errors: *

                                    *
                                      *
                                    • *

                                      * For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions * to perform the config:Put* action. *

                                      *
                                    • *
                                    • *

                                      * For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the * function's permissions. *

                                      *
                                    • *
                                    • *

                                      * For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have * permissions to call IAM GetRole action or create a service-linked role. *

                                      *
                                    • *
                                    • *

                                      * For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because * you do not have the following permissions: *

                                      *
                                        *
                                      • *

                                        * You do not have permission to call IAM GetRole action or create a service-linked role. *

                                        *
                                      • *
                                      • *

                                        * You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. *

                                        *
                                      • *
                                      *
                                    • * @throws NoRunningConfigurationRecorderException * There is no configuration recorder running. * @throws MaxActiveResourcesExceededException * You have reached the limit of active custom resource types in your account. There is a limit of 100,000. * Delete unused resources using DeleteResourceConfig . * @sample AmazonConfig.PutResourceConfig * @see AWS API * Documentation */ @Override public PutResourceConfigResult putResourceConfig(PutResourceConfigRequest request) { request = beforeClientExecution(request); return executePutResourceConfig(request); } @SdkInternalApi final PutResourceConfigResult executePutResourceConfig(PutResourceConfigRequest putResourceConfigRequest) { ExecutionContext executionContext = createExecutionContext(putResourceConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutResourceConfigRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putResourceConfigRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutResourceConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutResourceConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                      * Creates and updates the retention configuration with details about retention period (number of days) that Config * stores your historical information. The API creates the RetentionConfiguration object and names the * object as default. When you have a RetentionConfiguration object named default, * calling the API modifies the default object. *

                                      * *

                                      * Currently, Config supports only one retention configuration per region in your account. *

                                      *
                                      * * @param putRetentionConfigurationRequest * @return Result of the PutRetentionConfiguration operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws MaxNumberOfRetentionConfigurationsExceededException * Failed to add the retention configuration because a retention configuration with that name already * exists. * @sample AmazonConfig.PutRetentionConfiguration * @see AWS API Documentation */ @Override public PutRetentionConfigurationResult putRetentionConfiguration(PutRetentionConfigurationRequest request) { request = beforeClientExecution(request); return executePutRetentionConfiguration(request); } @SdkInternalApi final PutRetentionConfigurationResult executePutRetentionConfiguration(PutRetentionConfigurationRequest putRetentionConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(putRetentionConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutRetentionConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(putRetentionConfigurationRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutRetentionConfiguration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutRetentionConfigurationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                      * Saves a new query or updates an existing saved query. The QueryName must be unique for a single * Amazon Web Services account and a single Amazon Web Services Region. You can create upto 300 queries in a single * Amazon Web Services account and a single Amazon Web Services Region. *

                                      * *

                                      * PutStoredQuery is an idempotent API. Subsequent requests won’t create a duplicate resource if one * was already created. If a following request has different tags values, Config will ignore these * differences and treat it as an idempotent request of the previous. In this case, tags will not be * updated, even if they are different. *

                                      *
                                      * * @param putStoredQueryRequest * @return Result of the PutStoredQuery operation returned by the service. * @throws ValidationException * The requested action is not valid.

                                      *

                                      * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

                                      *

                                      * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws TooManyTagsException * You have reached the limit of the number of tags you can use. For more information, see Service Limits * in the Config Developer Guide. * @throws ResourceConcurrentModificationException * Two users are trying to modify the same query at the same time. Wait for a moment and try again. * @sample AmazonConfig.PutStoredQuery * @see AWS API * Documentation */ @Override public PutStoredQueryResult putStoredQuery(PutStoredQueryRequest request) { request = beforeClientExecution(request); return executePutStoredQuery(request); } @SdkInternalApi final PutStoredQueryResult executePutStoredQuery(PutStoredQueryRequest putStoredQueryRequest) { ExecutionContext executionContext = createExecutionContext(putStoredQueryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutStoredQueryRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putStoredQueryRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutStoredQuery"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutStoredQueryResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                      * Accepts a structured query language (SQL) SELECT command and an aggregator to query configuration state of Amazon * Web Services resources across multiple accounts and regions, performs the corresponding search, and returns * resource configurations matching the properties. *

                                      *

                                      * For more information about query components, see the Query Components * section in the Config Developer Guide. *

                                      * *

                                      * If you run an aggregation query (i.e., using GROUP BY or using aggregate functions such as * COUNT; e.g., * SELECT resourceId, COUNT(*) WHERE resourceType = 'AWS::IAM::Role' GROUP BY resourceId) and do not * specify the MaxResults or the Limit query parameters, the default page size is set to * 500. *

                                      *

                                      * If you run a non-aggregation query (i.e., not using GROUP BY or aggregate function; e.g., * SELECT * WHERE resourceType = 'AWS::IAM::Role') and do not specify the MaxResults or * the Limit query parameters, the default page size is set to 25. *

                                      *
                                      * * @param selectAggregateResourceConfigRequest * @return Result of the SelectAggregateResourceConfig operation returned by the service. * @throws InvalidExpressionException * The syntax of the query is incorrect. * @throws NoSuchConfigurationAggregatorException * You have specified a configuration aggregator that does not exist. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @sample AmazonConfig.SelectAggregateResourceConfig * @see AWS API Documentation */ @Override public SelectAggregateResourceConfigResult selectAggregateResourceConfig(SelectAggregateResourceConfigRequest request) { request = beforeClientExecution(request); return executeSelectAggregateResourceConfig(request); } @SdkInternalApi final SelectAggregateResourceConfigResult executeSelectAggregateResourceConfig(SelectAggregateResourceConfigRequest selectAggregateResourceConfigRequest) { ExecutionContext executionContext = createExecutionContext(selectAggregateResourceConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SelectAggregateResourceConfigRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(selectAggregateResourceConfigRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "SelectAggregateResourceConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new SelectAggregateResourceConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                      * Accepts a structured query language (SQL) SELECT command, performs the corresponding search, and * returns resource configurations matching the properties. *

                                      *

                                      * For more information about query components, see the Query Components * section in the Config Developer Guide. *

                                      * * @param selectResourceConfigRequest * @return Result of the SelectResourceConfig operation returned by the service. * @throws InvalidExpressionException * The syntax of the query is incorrect. * @throws InvalidLimitException * The specified limit is outside the allowable range. * @throws InvalidNextTokenException * The specified next token is not valid. Specify the nextToken string that was returned in the * previous response to get the next page of results. * @sample AmazonConfig.SelectResourceConfig * @see AWS * API Documentation */ @Override public SelectResourceConfigResult selectResourceConfig(SelectResourceConfigRequest request) { request = beforeClientExecution(request); return executeSelectResourceConfig(request); } @SdkInternalApi final SelectResourceConfigResult executeSelectResourceConfig(SelectResourceConfigRequest selectResourceConfigRequest) { ExecutionContext executionContext = createExecutionContext(selectResourceConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SelectResourceConfigRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(selectResourceConfigRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "SelectResourceConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new SelectResourceConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                      * Runs an on-demand evaluation for the specified Config rules against the last known configuration state of the * resources. Use StartConfigRulesEvaluation when you want to test that a rule you updated is working * as expected. StartConfigRulesEvaluation does not re-record the latest configuration state for your * resources. It re-runs an evaluation against the last known state of your resources. *

                                      *

                                      * You can specify up to 25 Config rules per request. *

                                      *

                                      * An existing StartConfigRulesEvaluation call for the specified rules must complete before you can * call the API again. If you chose to have Config stream to an Amazon SNS topic, you will receive a * ConfigRuleEvaluationStarted notification when the evaluation starts. *

                                      * *

                                      * You don't need to call the StartConfigRulesEvaluation API to run an evaluation for a new rule. When * you create a rule, Config evaluates your resources against the rule automatically. *

                                      *
                                      *

                                      * The StartConfigRulesEvaluation API is useful if you want to run on-demand evaluations, such as the * following example: *

                                      *
                                        *
                                      1. *

                                        * You have a custom rule that evaluates your IAM resources every 24 hours. *

                                        *
                                      2. *
                                      3. *

                                        * You update your Lambda function to add additional conditions to your rule. *

                                        *
                                      4. *
                                      5. *

                                        * Instead of waiting for the next periodic evaluation, you call the StartConfigRulesEvaluation API. *

                                        *
                                      6. *
                                      7. *

                                        * Config invokes your Lambda function and evaluates your IAM resources. *

                                        *
                                      8. *
                                      9. *

                                        * Your custom rule will still run periodic evaluations every 24 hours. *

                                        *
                                      10. *
                                      * * @param startConfigRulesEvaluationRequest * @return Result of the StartConfigRulesEvaluation operation returned by the service. * @throws NoSuchConfigRuleException * The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that * the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again. * @throws LimitExceededException * For StartConfigRulesEvaluation API, this exception is thrown if an evaluation is in progress * or if you call the StartConfigRulesEvaluation API more than once per minute.

                                      *

                                      * For PutConfigurationAggregator API, this exception is thrown if the number of accounts and * aggregators exceeds the limit. * @throws ResourceInUseException * You see this exception in the following cases: *

                                      *
                                        *
                                      • *

                                        * For DeleteConfigRule, Config is deleting this rule. Try your request again later. *

                                        *
                                      • *
                                      • *

                                        * For DeleteConfigRule, the rule is deleting your evaluation results. Try your request again later. *

                                        *
                                      • *
                                      • *

                                        * For DeleteConfigRule, a remediation action is associated with the rule and Config cannot delete this * rule. Delete the remediation action associated with the rule before deleting the rule and try your * request again later. *

                                        *
                                      • *
                                      • *

                                        * For PutConfigOrganizationRule, organization Config rule deletion is in progress. Try your request again * later. *

                                        *
                                      • *
                                      • *

                                        * For DeleteOrganizationConfigRule, organization Config rule creation is in progress. Try your request * again later. *

                                        *
                                      • *
                                      • *

                                        * For PutConformancePack and PutOrganizationConformancePack, a conformance pack creation, update, and * deletion is in progress. Try your request again later. *

                                        *
                                      • *
                                      • *

                                        * For DeleteConformancePack, a conformance pack creation, update, and deletion is in progress. Try your * request again later. *

                                        *
                                      • * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @sample AmazonConfig.StartConfigRulesEvaluation * @see AWS API Documentation */ @Override public StartConfigRulesEvaluationResult startConfigRulesEvaluation(StartConfigRulesEvaluationRequest request) { request = beforeClientExecution(request); return executeStartConfigRulesEvaluation(request); } @SdkInternalApi final StartConfigRulesEvaluationResult executeStartConfigRulesEvaluation(StartConfigRulesEvaluationRequest startConfigRulesEvaluationRequest) { ExecutionContext executionContext = createExecutionContext(startConfigRulesEvaluationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new StartConfigRulesEvaluationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(startConfigRulesEvaluationRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StartConfigRulesEvaluation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StartConfigRulesEvaluationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                        * Starts recording configurations of the Amazon Web Services resources you have selected to record in your Amazon * Web Services account. *

                                        *

                                        * You must have created at least one delivery channel to successfully start the configuration recorder. *

                                        * * @param startConfigurationRecorderRequest * The input for the StartConfigurationRecorder action. * @return Result of the StartConfigurationRecorder operation returned by the service. * @throws NoSuchConfigurationRecorderException * You have specified a configuration recorder that does not exist. * @throws NoAvailableDeliveryChannelException * There is no delivery channel available to record configurations. * @sample AmazonConfig.StartConfigurationRecorder * @see AWS API Documentation */ @Override public StartConfigurationRecorderResult startConfigurationRecorder(StartConfigurationRecorderRequest request) { request = beforeClientExecution(request); return executeStartConfigurationRecorder(request); } @SdkInternalApi final StartConfigurationRecorderResult executeStartConfigurationRecorder(StartConfigurationRecorderRequest startConfigurationRecorderRequest) { ExecutionContext executionContext = createExecutionContext(startConfigurationRecorderRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new StartConfigurationRecorderRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(startConfigurationRecorderRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StartConfigurationRecorder"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StartConfigurationRecorderResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                        * Runs an on-demand remediation for the specified Config rules against the last known remediation configuration. It * runs an execution against the current state of your resources. Remediation execution is asynchronous. *

                                        *

                                        * You can specify up to 100 resource keys per request. An existing StartRemediationExecution call for the specified * resource keys must complete before you can call the API again. *

                                        * * @param startRemediationExecutionRequest * @return Result of the StartRemediationExecution operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws InsufficientPermissionsException * Indicates one of the following errors:

                                        *
                                          *
                                        • *

                                          * For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions * to perform the config:Put* action. *

                                          *
                                        • *
                                        • *

                                          * For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the * function's permissions. *

                                          *
                                        • *
                                        • *

                                          * For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have * permissions to call IAM GetRole action or create a service-linked role. *

                                          *
                                        • *
                                        • *

                                          * For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because * you do not have the following permissions: *

                                          *
                                            *
                                          • *

                                            * You do not have permission to call IAM GetRole action or create a service-linked role. *

                                            *
                                          • *
                                          • *

                                            * You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. *

                                            *
                                          • *
                                          *
                                        • * @throws NoSuchRemediationConfigurationException * You specified an Config rule without a remediation configuration. * @sample AmazonConfig.StartRemediationExecution * @see AWS API Documentation */ @Override public StartRemediationExecutionResult startRemediationExecution(StartRemediationExecutionRequest request) { request = beforeClientExecution(request); return executeStartRemediationExecution(request); } @SdkInternalApi final StartRemediationExecutionResult executeStartRemediationExecution(StartRemediationExecutionRequest startRemediationExecutionRequest) { ExecutionContext executionContext = createExecutionContext(startRemediationExecutionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new StartRemediationExecutionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(startRemediationExecutionRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StartRemediationExecution"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StartRemediationExecutionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                          * Runs an on-demand evaluation for the specified resource to determine whether the resource details will comply * with configured Config rules. You can also use it for evaluation purposes. Config recommends using an evaluation * context. It runs an execution against the resource details with all of the Config rules in your account that * match with the specified proactive mode and resource type. *

                                          * *

                                          * Ensure you have the cloudformation:DescribeType role setup to validate the resource type schema. *

                                          *

                                          * You can find the Resource type * schema in "Amazon Web Services public extensions" within the CloudFormation registry or with the * following CLI commmand: * aws cloudformation describe-type --type-name "AWS::S3::Bucket" --type RESOURCE. *

                                          *

                                          * For more information, see Managing * extensions through the CloudFormation registry and Amazon * Web Services resource and property types reference in the CloudFormation User Guide. *

                                          *
                                          * * @param startResourceEvaluationRequest * @return Result of the StartResourceEvaluation operation returned by the service. * @throws InvalidParameterValueException * One or more of the specified parameters are not valid. Verify that your parameters are valid and try * again. * @throws IdempotentParameterMismatchException * Using the same client token with one or more different parameters. Specify a new client token with the * parameter changes and try again. * @sample AmazonConfig.StartResourceEvaluation * @see AWS * API Documentation */ @Override public StartResourceEvaluationResult startResourceEvaluation(StartResourceEvaluationRequest request) { request = beforeClientExecution(request); return executeStartResourceEvaluation(request); } @SdkInternalApi final StartResourceEvaluationResult executeStartResourceEvaluation(StartResourceEvaluationRequest startResourceEvaluationRequest) { ExecutionContext executionContext = createExecutionContext(startResourceEvaluationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new StartResourceEvaluationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(startResourceEvaluationRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StartResourceEvaluation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StartResourceEvaluationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                          * Stops recording configurations of the Amazon Web Services resources you have selected to record in your Amazon * Web Services account. *

                                          * * @param stopConfigurationRecorderRequest * The input for the StopConfigurationRecorder action. * @return Result of the StopConfigurationRecorder operation returned by the service. * @throws NoSuchConfigurationRecorderException * You have specified a configuration recorder that does not exist. * @sample AmazonConfig.StopConfigurationRecorder * @see AWS API Documentation */ @Override public StopConfigurationRecorderResult stopConfigurationRecorder(StopConfigurationRecorderRequest request) { request = beforeClientExecution(request); return executeStopConfigurationRecorder(request); } @SdkInternalApi final StopConfigurationRecorderResult executeStopConfigurationRecorder(StopConfigurationRecorderRequest stopConfigurationRecorderRequest) { ExecutionContext executionContext = createExecutionContext(stopConfigurationRecorderRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new StopConfigurationRecorderRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(stopConfigurationRecorderRequest)); // 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, "Config Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StopConfigurationRecorder"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StopConfigurationRecorderResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                          * Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are * not specified in the request parameters, they are not changed. If existing tags are specified, however, then * their values will be updated. When a resource is deleted, the tags associated with that resource are deleted as * well. *

                                          * * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws ValidationException * The requested action is not valid.

                                          *

                                          * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

                                          *

                                          * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws ResourceNotFoundException * You have specified a resource that does not exist. * @throws TooManyTagsException * You have reached the limit of the number of tags you can use. For more information, see Service Limits * in the Config Developer Guide. * @sample AmazonConfig.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, "Config Service"); 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); } } /** *

                                          * Deletes specified tags from a resource. *

                                          * * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws ValidationException * The requested action is not valid.

                                          *

                                          * For PutStoredQuery, you will see this exception if there are missing required fields or if the input * value fails the validation, or if you are trying to create more than 300 queries. *

                                          *

                                          * For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are * missing required fields or if the input value fails the validation. * @throws ResourceNotFoundException * You have specified a resource that does not exist. * @sample AmazonConfig.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, "Config Service"); 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); } } /** * 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(); } }