
com.amazonaws.services.config.AmazonConfigClient Maven / Gradle / Ivy
/*
* Copyright 2019-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package com.amazonaws.services.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:
*
* - Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
* - Java System Properties - aws.accessKeyId and aws.secretKey
* - Instance profile credentials delivered through the Amazon EC2 metadata service
*
*
*
* 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:
*
* - Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
* - Java System Properties - aws.accessKeyId and aws.secretKey
* - Instance profile credentials delivered through the Amazon EC2 metadata service
*
*
*
* 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.
*
*
*
* -
*
* The API does not return results for deleted resources.
*
*
* -
*
* The API does not return tags and relationships.
*
*
*
*
*
* @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.
*
*
*
* -
*
* The API does not return results for deleted resources.
*
*
* -
*
* The API does not return any tags for the requested resources. This information is filtered out of the
* supplementaryConfiguration section of the API response.
*
*
*
*
*
* @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 organization
*
*
* 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 organization
*
*
* 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
*
*
* -
*
* 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.
*
*
* -
*
* You make a call to the GetDiscoveredResourceCounts
action and specify that you want all resource
* types.
*
*
* -
*
* 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).
*
*
*
*
*
*
* 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);
}
}
/**
*
*
* For accurate reporting on the compliance status, you must record the AWS::Config::ResourceCompliance
* resource type. For more information, see Selecting Which Resources
* Config Records.
*
*
*
* 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 1000 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 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 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 resourceTypes
field 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 and other compliance information to an
* Amazon S3 bucket and Amazon SNS topic. For more information, see Notifications
* that Config Sends to an 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.
*
*
*
* Be aware of backward incompatible changes
*
*
* 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.
*
*
*
* Required fields
*
*
* For manual remediation configuration, you need to provide a value for automationAssumeRole
or use a
* value in the assumeRole
field 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.
*
*
*
* Auto remediation can be initiated even for compliant resources
*
*
* If you enable auto remediation for a specific Config rule using the PutRemediationConfigurations API or the Config console, it initiates the remediation process for all
* non-compliant resources for that specific rule. The auto remediation process relies on the compliance data
* snapshot which is captured on a periodic basis. Any non-compliant resource that is updated between the snapshot
* schedule will continue to be remediated based on the last known compliance data snapshot.
*
*
* This means that in some cases auto remediation can be initiated even for compliant resources, since the bootstrap
* processor uses a database that can have stale evaluation results based on the last known compliance data
* snapshot.
*
*
*
* @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.
*
*
*
* Exceptions block auto remediation
*
*
* 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.
*
*
*
* Manual remediation is recommended when placing an exception
*
*
* 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.
*
*
*
* Exceptions can only be performed on non-compliant resources
*
*
* 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.
*
*
*
* Auto remediation can be initiated even for compliant resources
*
*
* If you enable auto remediation for a specific Config rule using the PutRemediationConfigurations API or the Config console, it initiates the remediation process for all
* non-compliant resources for that specific rule. The auto remediation process relies on the compliance data
* snapshot which is captured on a periodic basis. Any non-compliant resource that is updated between the snapshot
* schedule will continue to be remediated based on the last known compliance data snapshot.
*
*
* This means that in some cases auto remediation can be initiated even for compliant resources, since the bootstrap
* processor uses a database that can have stale evaluation results based on the last known compliance data
* snapshot.
*
*
*
* @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:
*
*
* -
*
* You have a custom rule that evaluates your IAM resources every 24 hours.
*
*
* -
*
* You update your Lambda function to add additional conditions to your rule.
*
*
* -
*
* Instead of waiting for the next periodic evaluation, you call the StartConfigRulesEvaluation
API.
*
*
* -
*
* Config invokes your Lambda function and evaluates your IAM resources.
*
*
* -
*
* Your custom rule will still run periodic evaluations every 24 hours.
*
*
*
*
* @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();
}
}