com.amazonaws.services.fis.AWSFISClient Maven / Gradle / Ivy
Show all versions of aws-java-sdk-fis Show documentation
/*
* 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.fis;
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.fis.AWSFISClientBuilder;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.services.fis.model.*;
import com.amazonaws.services.fis.model.transform.*;
/**
* Client for accessing FIS. All service calls made using this client are blocking, and will not return until the
* service call completes.
*
*
* Fault Injection Service is a managed service that enables you to perform fault injection experiments on your Amazon
* Web Services workloads. For more information, see the Fault Injection Service User Guide.
*
*/
@ThreadSafe
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class AWSFISClient extends AmazonWebServiceClient implements AWSFIS {
/** Provider for AWS credentials. */
private final AWSCredentialsProvider awsCredentialsProvider;
private static final Log log = LogFactory.getLog(AWSFIS.class);
/** Default signing name for the service. */
private static final String DEFAULT_SIGNING_NAME = "fis";
/** Client configuration factory providing ClientConfigurations tailored to this client */
protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory();
private final AdvancedConfig advancedConfig;
private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory(
new JsonClientMetadata()
.withProtocolVersion("1.1")
.withSupportsCbor(false)
.withSupportsIon(false)
.withContentTypeOverride("application/json")
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ServiceQuotaExceededException").withExceptionUnmarshaller(
com.amazonaws.services.fis.model.transform.ServiceQuotaExceededExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ConflictException").withExceptionUnmarshaller(
com.amazonaws.services.fis.model.transform.ConflictExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller(
com.amazonaws.services.fis.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ValidationException").withExceptionUnmarshaller(
com.amazonaws.services.fis.model.transform.ValidationExceptionUnmarshaller.getInstance()))
.withBaseServiceExceptionClass(com.amazonaws.services.fis.model.AWSFISException.class));
public static AWSFISClientBuilder builder() {
return AWSFISClientBuilder.standard();
}
/**
* Constructs a new client to invoke service methods on FIS 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.
*/
AWSFISClient(AwsSyncClientParams clientParams) {
this(clientParams, false);
}
/**
* Constructs a new client to invoke service methods on FIS 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.
*/
AWSFISClient(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("fis.us-east-1.amazonaws.com");
HandlerChainFactory chainFactory = new HandlerChainFactory();
requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/fis/request.handlers"));
requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/fis/request.handler2s"));
requestHandler2s.addAll(chainFactory.getGlobalHandlers());
}
/**
*
* Creates an experiment template.
*
*
* An experiment template includes the following components:
*
*
* -
*
* Targets: A target can be a specific resource in your Amazon Web Services environment, or one or more
* resources that match criteria that you specify, for example, resources that have specific tags.
*
*
* -
*
* Actions: The actions to carry out on the target. You can specify multiple actions, the duration of each
* action, and when to start each action during an experiment.
*
*
* -
*
* Stop conditions: If a stop condition is triggered while an experiment is running, the experiment is
* automatically stopped. You can define a stop condition as a CloudWatch alarm.
*
*
*
*
* For more information, see experiment templates in the
* Fault Injection Service User Guide.
*
*
* @param createExperimentTemplateRequest
* @return Result of the CreateExperimentTemplate operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ConflictException
* The request could not be processed because of a conflict.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @throws ServiceQuotaExceededException
* You have exceeded your service quota.
* @sample AWSFIS.CreateExperimentTemplate
* @see AWS
* API Documentation
*/
@Override
public CreateExperimentTemplateResult createExperimentTemplate(CreateExperimentTemplateRequest request) {
request = beforeClientExecution(request);
return executeCreateExperimentTemplate(request);
}
@SdkInternalApi
final CreateExperimentTemplateResult executeCreateExperimentTemplate(CreateExperimentTemplateRequest createExperimentTemplateRequest) {
ExecutionContext executionContext = createExecutionContext(createExperimentTemplateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateExperimentTemplateRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(createExperimentTemplateRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateExperimentTemplate");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CreateExperimentTemplateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a target account configuration for the experiment template. A target account configuration is required
* when accountTargeting
of experimentOptions
is set to multi-account
. For
* more information, see experiment options in the
* Fault Injection Service User Guide.
*
*
* @param createTargetAccountConfigurationRequest
* @return Result of the CreateTargetAccountConfiguration operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ConflictException
* The request could not be processed because of a conflict.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @throws ServiceQuotaExceededException
* You have exceeded your service quota.
* @sample AWSFIS.CreateTargetAccountConfiguration
* @see AWS API Documentation
*/
@Override
public CreateTargetAccountConfigurationResult createTargetAccountConfiguration(CreateTargetAccountConfigurationRequest request) {
request = beforeClientExecution(request);
return executeCreateTargetAccountConfiguration(request);
}
@SdkInternalApi
final CreateTargetAccountConfigurationResult executeCreateTargetAccountConfiguration(
CreateTargetAccountConfigurationRequest createTargetAccountConfigurationRequest) {
ExecutionContext executionContext = createExecutionContext(createTargetAccountConfigurationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateTargetAccountConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(createTargetAccountConfigurationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateTargetAccountConfiguration");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CreateTargetAccountConfigurationResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes the specified experiment template.
*
*
* @param deleteExperimentTemplateRequest
* @return Result of the DeleteExperimentTemplate operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @sample AWSFIS.DeleteExperimentTemplate
* @see AWS
* API Documentation
*/
@Override
public DeleteExperimentTemplateResult deleteExperimentTemplate(DeleteExperimentTemplateRequest request) {
request = beforeClientExecution(request);
return executeDeleteExperimentTemplate(request);
}
@SdkInternalApi
final DeleteExperimentTemplateResult executeDeleteExperimentTemplate(DeleteExperimentTemplateRequest deleteExperimentTemplateRequest) {
ExecutionContext executionContext = createExecutionContext(deleteExperimentTemplateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteExperimentTemplateRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(deleteExperimentTemplateRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteExperimentTemplate");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DeleteExperimentTemplateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes the specified target account configuration of the experiment template.
*
*
* @param deleteTargetAccountConfigurationRequest
* @return Result of the DeleteTargetAccountConfiguration operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @sample AWSFIS.DeleteTargetAccountConfiguration
* @see AWS API Documentation
*/
@Override
public DeleteTargetAccountConfigurationResult deleteTargetAccountConfiguration(DeleteTargetAccountConfigurationRequest request) {
request = beforeClientExecution(request);
return executeDeleteTargetAccountConfiguration(request);
}
@SdkInternalApi
final DeleteTargetAccountConfigurationResult executeDeleteTargetAccountConfiguration(
DeleteTargetAccountConfigurationRequest deleteTargetAccountConfigurationRequest) {
ExecutionContext executionContext = createExecutionContext(deleteTargetAccountConfigurationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteTargetAccountConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(deleteTargetAccountConfigurationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteTargetAccountConfiguration");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DeleteTargetAccountConfigurationResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the specified FIS action.
*
*
* @param getActionRequest
* @return Result of the GetAction operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @sample AWSFIS.GetAction
* @see AWS API
* Documentation
*/
@Override
public GetActionResult getAction(GetActionRequest request) {
request = beforeClientExecution(request);
return executeGetAction(request);
}
@SdkInternalApi
final GetActionResult executeGetAction(GetActionRequest getActionRequest) {
ExecutionContext executionContext = createExecutionContext(getActionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetActionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getActionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetAction");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata()
.withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetActionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the specified experiment.
*
*
* @param getExperimentRequest
* @return Result of the GetExperiment operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @sample AWSFIS.GetExperiment
* @see AWS API
* Documentation
*/
@Override
public GetExperimentResult getExperiment(GetExperimentRequest request) {
request = beforeClientExecution(request);
return executeGetExperiment(request);
}
@SdkInternalApi
final GetExperimentResult executeGetExperiment(GetExperimentRequest getExperimentRequest) {
ExecutionContext executionContext = createExecutionContext(getExperimentRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetExperimentRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getExperimentRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetExperiment");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetExperimentResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the specified target account configuration of the experiment.
*
*
* @param getExperimentTargetAccountConfigurationRequest
* @return Result of the GetExperimentTargetAccountConfiguration operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @sample AWSFIS.GetExperimentTargetAccountConfiguration
* @see AWS API Documentation
*/
@Override
public GetExperimentTargetAccountConfigurationResult getExperimentTargetAccountConfiguration(GetExperimentTargetAccountConfigurationRequest request) {
request = beforeClientExecution(request);
return executeGetExperimentTargetAccountConfiguration(request);
}
@SdkInternalApi
final GetExperimentTargetAccountConfigurationResult executeGetExperimentTargetAccountConfiguration(
GetExperimentTargetAccountConfigurationRequest getExperimentTargetAccountConfigurationRequest) {
ExecutionContext executionContext = createExecutionContext(getExperimentTargetAccountConfigurationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetExperimentTargetAccountConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(getExperimentTargetAccountConfigurationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetExperimentTargetAccountConfiguration");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new GetExperimentTargetAccountConfigurationResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the specified experiment template.
*
*
* @param getExperimentTemplateRequest
* @return Result of the GetExperimentTemplate operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @sample AWSFIS.GetExperimentTemplate
* @see AWS API
* Documentation
*/
@Override
public GetExperimentTemplateResult getExperimentTemplate(GetExperimentTemplateRequest request) {
request = beforeClientExecution(request);
return executeGetExperimentTemplate(request);
}
@SdkInternalApi
final GetExperimentTemplateResult executeGetExperimentTemplate(GetExperimentTemplateRequest getExperimentTemplateRequest) {
ExecutionContext executionContext = createExecutionContext(getExperimentTemplateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetExperimentTemplateRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getExperimentTemplateRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetExperimentTemplate");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new GetExperimentTemplateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the specified target account configuration of the experiment template.
*
*
* @param getTargetAccountConfigurationRequest
* @return Result of the GetTargetAccountConfiguration operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @sample AWSFIS.GetTargetAccountConfiguration
* @see AWS API Documentation
*/
@Override
public GetTargetAccountConfigurationResult getTargetAccountConfiguration(GetTargetAccountConfigurationRequest request) {
request = beforeClientExecution(request);
return executeGetTargetAccountConfiguration(request);
}
@SdkInternalApi
final GetTargetAccountConfigurationResult executeGetTargetAccountConfiguration(GetTargetAccountConfigurationRequest getTargetAccountConfigurationRequest) {
ExecutionContext executionContext = createExecutionContext(getTargetAccountConfigurationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetTargetAccountConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(getTargetAccountConfigurationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetTargetAccountConfiguration");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new GetTargetAccountConfigurationResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the specified resource type.
*
*
* @param getTargetResourceTypeRequest
* @return Result of the GetTargetResourceType operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @sample AWSFIS.GetTargetResourceType
* @see AWS API
* Documentation
*/
@Override
public GetTargetResourceTypeResult getTargetResourceType(GetTargetResourceTypeRequest request) {
request = beforeClientExecution(request);
return executeGetTargetResourceType(request);
}
@SdkInternalApi
final GetTargetResourceTypeResult executeGetTargetResourceType(GetTargetResourceTypeRequest getTargetResourceTypeRequest) {
ExecutionContext executionContext = createExecutionContext(getTargetResourceTypeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetTargetResourceTypeRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getTargetResourceTypeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetTargetResourceType");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new GetTargetResourceTypeResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the available FIS actions.
*
*
* @param listActionsRequest
* @return Result of the ListActions operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @sample AWSFIS.ListActions
* @see AWS API
* Documentation
*/
@Override
public ListActionsResult listActions(ListActionsRequest request) {
request = beforeClientExecution(request);
return executeListActions(request);
}
@SdkInternalApi
final ListActionsResult executeListActions(ListActionsRequest listActionsRequest) {
ExecutionContext executionContext = createExecutionContext(listActionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListActionsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listActionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListActions");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListActionsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the resolved targets information of the specified experiment.
*
*
* @param listExperimentResolvedTargetsRequest
* @return Result of the ListExperimentResolvedTargets operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @sample AWSFIS.ListExperimentResolvedTargets
* @see AWS API Documentation
*/
@Override
public ListExperimentResolvedTargetsResult listExperimentResolvedTargets(ListExperimentResolvedTargetsRequest request) {
request = beforeClientExecution(request);
return executeListExperimentResolvedTargets(request);
}
@SdkInternalApi
final ListExperimentResolvedTargetsResult executeListExperimentResolvedTargets(ListExperimentResolvedTargetsRequest listExperimentResolvedTargetsRequest) {
ExecutionContext executionContext = createExecutionContext(listExperimentResolvedTargetsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListExperimentResolvedTargetsRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(listExperimentResolvedTargetsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListExperimentResolvedTargets");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ListExperimentResolvedTargetsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the target account configurations of the specified experiment.
*
*
* @param listExperimentTargetAccountConfigurationsRequest
* @return Result of the ListExperimentTargetAccountConfigurations operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @sample AWSFIS.ListExperimentTargetAccountConfigurations
* @see AWS API Documentation
*/
@Override
public ListExperimentTargetAccountConfigurationsResult listExperimentTargetAccountConfigurations(ListExperimentTargetAccountConfigurationsRequest request) {
request = beforeClientExecution(request);
return executeListExperimentTargetAccountConfigurations(request);
}
@SdkInternalApi
final ListExperimentTargetAccountConfigurationsResult executeListExperimentTargetAccountConfigurations(
ListExperimentTargetAccountConfigurationsRequest listExperimentTargetAccountConfigurationsRequest) {
ExecutionContext executionContext = createExecutionContext(listExperimentTargetAccountConfigurationsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListExperimentTargetAccountConfigurationsRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(listExperimentTargetAccountConfigurationsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListExperimentTargetAccountConfigurations");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ListExperimentTargetAccountConfigurationsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists your experiment templates.
*
*
* @param listExperimentTemplatesRequest
* @return Result of the ListExperimentTemplates operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @sample AWSFIS.ListExperimentTemplates
* @see AWS
* API Documentation
*/
@Override
public ListExperimentTemplatesResult listExperimentTemplates(ListExperimentTemplatesRequest request) {
request = beforeClientExecution(request);
return executeListExperimentTemplates(request);
}
@SdkInternalApi
final ListExperimentTemplatesResult executeListExperimentTemplates(ListExperimentTemplatesRequest listExperimentTemplatesRequest) {
ExecutionContext executionContext = createExecutionContext(listExperimentTemplatesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListExperimentTemplatesRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(listExperimentTemplatesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListExperimentTemplates");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ListExperimentTemplatesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists your experiments.
*
*
* @param listExperimentsRequest
* @return Result of the ListExperiments operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @sample AWSFIS.ListExperiments
* @see AWS API
* Documentation
*/
@Override
public ListExperimentsResult listExperiments(ListExperimentsRequest request) {
request = beforeClientExecution(request);
return executeListExperiments(request);
}
@SdkInternalApi
final ListExperimentsResult executeListExperiments(ListExperimentsRequest listExperimentsRequest) {
ExecutionContext executionContext = createExecutionContext(listExperimentsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListExperimentsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listExperimentsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListExperiments");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListExperimentsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the tags for the specified resource.
*
*
* @param listTagsForResourceRequest
* @return Result of the ListTagsForResource operation returned by the service.
* @sample AWSFIS.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, "fis");
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);
}
}
/**
*
* Lists the target account configurations of the specified experiment template.
*
*
* @param listTargetAccountConfigurationsRequest
* @return Result of the ListTargetAccountConfigurations operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @sample AWSFIS.ListTargetAccountConfigurations
* @see AWS API Documentation
*/
@Override
public ListTargetAccountConfigurationsResult listTargetAccountConfigurations(ListTargetAccountConfigurationsRequest request) {
request = beforeClientExecution(request);
return executeListTargetAccountConfigurations(request);
}
@SdkInternalApi
final ListTargetAccountConfigurationsResult executeListTargetAccountConfigurations(
ListTargetAccountConfigurationsRequest listTargetAccountConfigurationsRequest) {
ExecutionContext executionContext = createExecutionContext(listTargetAccountConfigurationsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListTargetAccountConfigurationsRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(listTargetAccountConfigurationsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListTargetAccountConfigurations");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ListTargetAccountConfigurationsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the target resource types.
*
*
* @param listTargetResourceTypesRequest
* @return Result of the ListTargetResourceTypes operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @sample AWSFIS.ListTargetResourceTypes
* @see AWS
* API Documentation
*/
@Override
public ListTargetResourceTypesResult listTargetResourceTypes(ListTargetResourceTypesRequest request) {
request = beforeClientExecution(request);
return executeListTargetResourceTypes(request);
}
@SdkInternalApi
final ListTargetResourceTypesResult executeListTargetResourceTypes(ListTargetResourceTypesRequest listTargetResourceTypesRequest) {
ExecutionContext executionContext = createExecutionContext(listTargetResourceTypesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListTargetResourceTypesRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(listTargetResourceTypesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListTargetResourceTypes");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ListTargetResourceTypesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Starts running an experiment from the specified experiment template.
*
*
* @param startExperimentRequest
* @return Result of the StartExperiment operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ConflictException
* The request could not be processed because of a conflict.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @throws ServiceQuotaExceededException
* You have exceeded your service quota.
* @sample AWSFIS.StartExperiment
* @see AWS API
* Documentation
*/
@Override
public StartExperimentResult startExperiment(StartExperimentRequest request) {
request = beforeClientExecution(request);
return executeStartExperiment(request);
}
@SdkInternalApi
final StartExperimentResult executeStartExperiment(StartExperimentRequest startExperimentRequest) {
ExecutionContext executionContext = createExecutionContext(startExperimentRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new StartExperimentRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(startExperimentRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StartExperiment");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StartExperimentResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Stops the specified experiment.
*
*
* @param stopExperimentRequest
* @return Result of the StopExperiment operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @sample AWSFIS.StopExperiment
* @see AWS API
* Documentation
*/
@Override
public StopExperimentResult stopExperiment(StopExperimentRequest request) {
request = beforeClientExecution(request);
return executeStopExperiment(request);
}
@SdkInternalApi
final StopExperimentResult executeStopExperiment(StopExperimentRequest stopExperimentRequest) {
ExecutionContext executionContext = createExecutionContext(stopExperimentRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new StopExperimentRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(stopExperimentRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StopExperiment");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StopExperimentResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Applies the specified tags to the specified resource.
*
*
* @param tagResourceRequest
* @return Result of the TagResource operation returned by the service.
* @sample AWSFIS.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, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TagResource");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TagResourceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Removes the specified tags from the specified resource.
*
*
* @param untagResourceRequest
* @return Result of the UntagResource operation returned by the service.
* @sample AWSFIS.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, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UntagResource");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UntagResourceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Updates the specified experiment template.
*
*
* @param updateExperimentTemplateRequest
* @return Result of the UpdateExperimentTemplate operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @throws ServiceQuotaExceededException
* You have exceeded your service quota.
* @sample AWSFIS.UpdateExperimentTemplate
* @see AWS
* API Documentation
*/
@Override
public UpdateExperimentTemplateResult updateExperimentTemplate(UpdateExperimentTemplateRequest request) {
request = beforeClientExecution(request);
return executeUpdateExperimentTemplate(request);
}
@SdkInternalApi
final UpdateExperimentTemplateResult executeUpdateExperimentTemplate(UpdateExperimentTemplateRequest updateExperimentTemplateRequest) {
ExecutionContext executionContext = createExecutionContext(updateExperimentTemplateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateExperimentTemplateRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(updateExperimentTemplateRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateExperimentTemplate");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new UpdateExperimentTemplateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Updates the target account configuration for the specified experiment template.
*
*
* @param updateTargetAccountConfigurationRequest
* @return Result of the UpdateTargetAccountConfiguration operation returned by the service.
* @throws ValidationException
* The specified input is not valid, or fails to satisfy the constraints for the request.
* @throws ResourceNotFoundException
* The specified resource cannot be found.
* @sample AWSFIS.UpdateTargetAccountConfiguration
* @see AWS API Documentation
*/
@Override
public UpdateTargetAccountConfigurationResult updateTargetAccountConfiguration(UpdateTargetAccountConfigurationRequest request) {
request = beforeClientExecution(request);
return executeUpdateTargetAccountConfiguration(request);
}
@SdkInternalApi
final UpdateTargetAccountConfigurationResult executeUpdateTargetAccountConfiguration(
UpdateTargetAccountConfigurationRequest updateTargetAccountConfigurationRequest) {
ExecutionContext executionContext = createExecutionContext(updateTargetAccountConfigurationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateTargetAccountConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(updateTargetAccountConfigurationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "fis");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateTargetAccountConfiguration");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new UpdateTargetAccountConfigurationResultJsonUnmarshaller());
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();
}
}