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

com.amazonaws.services.storagegateway.AWSStorageGatewayClient Maven / Gradle / Ivy

Go to download

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

The newest version!
/*
 * Copyright 2010-2016 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.storagegateway;

import org.w3c.dom.*;

import java.net.*;
import java.util.*;
import java.util.Map.Entry;

import org.apache.commons.logging.*;

import com.amazonaws.*;
import com.amazonaws.auth.*;
import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
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.services.storagegateway.model.*;
import com.amazonaws.services.storagegateway.model.transform.*;

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

* AWS Storage Gateway Service *

* AWS Storage Gateway is the service that connects an on-premises software * appliance with cloud-based storage to provide seamless and secure integration * between an organization's on-premises IT environment and AWS's storage * infrastructure. The service enables you to securely upload data to the AWS * cloud for cost effective backup and rapid disaster recovery. *

*

* Use the following links to get started using the AWS Storage Gateway * Service API Reference: *

*
    *
  • *

    * AWS Storage Gateway Required Request Headers: Describes the required * headers that you must send with every POST request to AWS Storage Gateway. *

    *
  • *
  • *

    * Signing Requests: AWS Storage Gateway requires that you authenticate * every request you send; this topic describes how sign such a request. *

    *
  • *
  • *

    * Error Responses: Provides reference information about AWS Storage * Gateway errors. *

    *
  • *
  • *

    * Operations in AWS Storage Gateway: Contains detailed descriptions of all * AWS Storage Gateway operations, their request parameters, response elements, * possible errors, and examples of requests and responses. *

    *
  • *
  • *

    * * AWS Storage Gateway Regions and Endpoints: Provides a list of each of the * s and endpoints available for use with AWS Storage Gateway. *

    *
  • *
* *

* AWS Storage Gateway resource IDs are in uppercase. When you use these * resource IDs with the Amazon EC2 API, EC2 expects resource IDs in lowercase. * You must change your resource ID to lowercase to use it with the EC2 API. For * example, in Storage Gateway the ID for a volume might be * vol-1122AABB. When you use this ID with the EC2 API, you must * change it to vol-1122aabb. Otherwise, the EC2 API might not * behave as expected. *

*
*

* IDs for Storage Gateway volumes and Amazon EBS snapshots created from gateway * volumes are changing to a longer format. Starting in December 2016, all new * volumes and snapshots will be created with a 17-character string. Starting in * April 2016, you will be able to use these longer IDs so you can test your * systems with the new format. For more information, see Longer EC2 and EBS * Resource IDs. *

*

* For example, a volume ARN with the longer volume ID format will look like * this: *

*

* arn:aws:storagegateway:us-west-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABBCCDDEEFFG * . *

*

* A snapshot ID with the longer ID format will look like this: * snap-78e226633445566ee. *

*

* For more information, see Announcement: * Heads-up – Longer AWS Storage Gateway volume and snapshot IDs coming in * 2016. *

*
*/ @ThreadSafe public class AWSStorageGatewayClient extends AmazonWebServiceClient implements AWSStorageGateway { /** Provider for AWS credentials. */ private AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AWSStorageGateway.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "storagegateway"; /** The region metadata service name for computing region endpoints. */ private static final String DEFAULT_ENDPOINT_PREFIX = "storagegateway"; /** * Client configuration factory providing ClientConfigurations tailored to * this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final SdkJsonProtocolFactory protocolFactory = new SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "InvalidGatewayRequestException") .withModeledClass( com.amazonaws.services.storagegateway.model.InvalidGatewayRequestException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("InternalServerError") .withModeledClass( com.amazonaws.services.storagegateway.model.InternalServerErrorException.class))); /** * Constructs a new client to invoke service methods on AWS Storage Gateway. * 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 */ public AWSStorageGatewayClient() { this(new DefaultAWSCredentialsProviderChain(), configFactory .getConfig()); } /** * Constructs a new client to invoke service methods on AWS Storage Gateway. * 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 AWS Storage Gateway (ex: proxy settings, retry counts, * etc.). * * @see DefaultAWSCredentialsProviderChain */ public AWSStorageGatewayClient(ClientConfiguration clientConfiguration) { this(new DefaultAWSCredentialsProviderChain(), clientConfiguration); } /** * Constructs a new client to invoke service methods on AWS Storage Gateway * 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. */ public AWSStorageGatewayClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on AWS Storage Gateway * 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 AWS Storage Gateway (ex: proxy settings, retry counts, * etc.). */ public AWSStorageGatewayClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider( awsCredentials); init(); } /** * Constructs a new client to invoke service methods on AWS Storage Gateway * 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. */ public AWSStorageGatewayClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on AWS Storage Gateway * 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 AWS Storage Gateway (ex: proxy settings, retry counts, * etc.). */ public AWSStorageGatewayClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on AWS Storage Gateway * 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 AWS Storage Gateway (ex: proxy settings, retry counts, * etc.). * @param requestMetricCollector * optional request metric collector */ public AWSStorageGatewayClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(DEFAULT_ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("https://storagegateway.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s .addAll(chainFactory .newRequestHandlerChain("/com/amazonaws/services/storagegateway/request.handlers")); requestHandler2s .addAll(chainFactory .newRequestHandler2Chain("/com/amazonaws/services/storagegateway/request.handler2s")); } /** *

* Activates the gateway you previously deployed on your host. For more * information, see Activate the AWS Storage Gateway. In the activation process, you * specify information such as the you want to use for storing snapshots, * the time zone for scheduled snapshots the gateway snapshot schedule * window, an activation key, and a name for your gateway. The activation * process also associates your gateway with your account; for more * information, see UpdateGatewayInformation. *

* *

* You must turn on the gateway VM before you can activate your gateway. *

*
* * @param activateGatewayRequest * A JSON object containing one or more of the following fields:

*
    *
  • *

    * ActivateGatewayInput$ActivationKey *

    *
  • *
  • *

    * ActivateGatewayInput$GatewayName *

    *
  • *
  • *

    * ActivateGatewayInput$GatewayRegion *

    *
  • *
  • *

    * ActivateGatewayInput$GatewayTimezone *

    *
  • *
  • *

    * ActivateGatewayInput$GatewayType *

    *
  • *
  • *

    * ActivateGatewayInput$TapeDriveType *

    *
  • *
  • *

    * ActivateGatewayInput$MediumChangerType *

    *
  • * @return Result of the ActivateGateway operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.ActivateGateway */ @Override public ActivateGatewayResult activateGateway( ActivateGatewayRequest activateGatewayRequest) { ExecutionContext executionContext = createExecutionContext(activateGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ActivateGatewayRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(activateGatewayRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ActivateGatewayResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

    * Configures one or more gateway local disks as cache for a cached-volume * gateway. This operation is supported only for the gateway-cached volume * architecture (see Storage Gateway Concepts). *

    *

    * In the request, you specify the gateway Amazon Resource Name (ARN) to * which you want to add cache, and one or more disk IDs that you want to * configure as cache. *

    * * @param addCacheRequest * @return Result of the AddCache operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.AddCache */ @Override public AddCacheResult addCache(AddCacheRequest addCacheRequest) { ExecutionContext executionContext = createExecutionContext(addCacheRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AddCacheRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(addCacheRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new AddCacheResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

    * Adds one or more tags to the specified resource. You use tags to add * metadata to resources, which you can use to categorize these resources. * For example, you can categorize resources by purpose, owner, environment, * or team. Each tag consists of a key and a value, which you define. You * can add tags to the following AWS Storage Gateway resources: *

    *
      *
    • *

      * Storage gateways of all types *

      *
    • *
    *
      *
    • *

      * Storage Volumes *

      *
    • *
    *
      *
    • *

      * Virtual Tapes *

      *
    • *
    *

    * You can create a maximum of 10 tags for each resource. Virtual tapes and * storage volumes that are recovered to a new gateway maintain their tags. *

    * * @param addTagsToResourceRequest * AddTagsToResourceInput * @return Result of the AddTagsToResource operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.AddTagsToResource */ @Override public AddTagsToResourceResult addTagsToResource( AddTagsToResourceRequest addTagsToResourceRequest) { ExecutionContext executionContext = createExecutionContext(addTagsToResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AddTagsToResourceRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(addTagsToResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new AddTagsToResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

    * Configures one or more gateway local disks as upload buffer for a * specified gateway. This operation is supported for both the * gateway-stored and gateway-cached volume architectures. *

    *

    * In the request, you specify the gateway Amazon Resource Name (ARN) to * which you want to add upload buffer, and one or more disk IDs that you * want to configure as upload buffer. *

    * * @param addUploadBufferRequest * @return Result of the AddUploadBuffer operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.AddUploadBuffer */ @Override public AddUploadBufferResult addUploadBuffer( AddUploadBufferRequest addUploadBufferRequest) { ExecutionContext executionContext = createExecutionContext(addUploadBufferRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AddUploadBufferRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(addUploadBufferRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new AddUploadBufferResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

    * Configures one or more gateway local disks as working storage for a * gateway. This operation is supported only for the gateway-stored volume * architecture. This operation is deprecated in cached-volumes API version * 20120630. Use AddUploadBuffer instead. *

    * *

    * Working storage is also referred to as upload buffer. You can also use * the AddUploadBuffer operation to add upload buffer to a * stored-volume gateway. *

    *
    *

    * In the request, you specify the gateway Amazon Resource Name (ARN) to * which you want to add working storage, and one or more disk IDs that you * want to configure as working storage. *

    * * @param addWorkingStorageRequest * A JSON object containing one or more of the following fields:

    *
      *
    • *

      * AddWorkingStorageInput$DiskIds *

      *
    • * @return Result of the AddWorkingStorage operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.AddWorkingStorage */ @Override public AddWorkingStorageResult addWorkingStorage( AddWorkingStorageRequest addWorkingStorageRequest) { ExecutionContext executionContext = createExecutionContext(addWorkingStorageRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AddWorkingStorageRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(addWorkingStorageRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new AddWorkingStorageResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

      * Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after * the archiving process is initiated. *

      * * @param cancelArchivalRequest * CancelArchivalInput * @return Result of the CancelArchival operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.CancelArchival */ @Override public CancelArchivalResult cancelArchival( CancelArchivalRequest cancelArchivalRequest) { ExecutionContext executionContext = createExecutionContext(cancelArchivalRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CancelArchivalRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(cancelArchivalRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CancelArchivalResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

      * Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to * a gateway after the retrieval process is initiated. The virtual tape is * returned to the VTS. *

      * * @param cancelRetrievalRequest * CancelRetrievalInput * @return Result of the CancelRetrieval operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.CancelRetrieval */ @Override public CancelRetrievalResult cancelRetrieval( CancelRetrievalRequest cancelRetrievalRequest) { ExecutionContext executionContext = createExecutionContext(cancelRetrievalRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CancelRetrievalRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(cancelRetrievalRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CancelRetrievalResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

      * Creates a cached volume on a specified cached gateway. This operation is * supported only for the gateway-cached volume architecture. *

      * *

      * Cache storage must be allocated to the gateway before you can create a * cached volume. Use the AddCache operation to add cache storage to * a gateway. *

      *
      *

      * In the request, you must specify the gateway, size of the volume in * bytes, the iSCSI target name, an IP address on which to expose the * target, and a unique client token. In response, AWS Storage Gateway * creates the volume and returns information about it such as the volume * Amazon Resource Name (ARN), its size, and the iSCSI target ARN that * initiators can use to connect to the volume target. *

      * * @param createCachediSCSIVolumeRequest * @return Result of the CreateCachediSCSIVolume operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.CreateCachediSCSIVolume */ @Override public CreateCachediSCSIVolumeResult createCachediSCSIVolume( CreateCachediSCSIVolumeRequest createCachediSCSIVolumeRequest) { ExecutionContext executionContext = createExecutionContext(createCachediSCSIVolumeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateCachediSCSIVolumeRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(createCachediSCSIVolumeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CreateCachediSCSIVolumeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

      * Initiates a snapshot of a volume. *

      *

      * AWS Storage Gateway provides the ability to back up point-in-time * snapshots of your data to Amazon Simple Storage (S3) for durable off-site * recovery, as well as import the data to an Amazon Elastic Block Store * (EBS) volume in Amazon Elastic Compute Cloud (EC2). You can take * snapshots of your gateway volume on a scheduled or ad-hoc basis. This API * enables you to take ad-hoc snapshot. For more information, see Working With Snapshots in the AWS Storage Gateway Console. *

      *

      * In the CreateSnapshot request you identify the volume by providing its * Amazon Resource Name (ARN). You must also provide description for the * snapshot. When AWS Storage Gateway takes the snapshot of specified * volume, the snapshot and description appears in the AWS Storage Gateway * Console. In response, AWS Storage Gateway returns you a snapshot ID. You * can use this snapshot ID to check the snapshot progress or later use it * when you want to create a volume from a snapshot. *

      * *

      * To list or delete a snapshot, you must use the Amazon EC2 API. For more * information, see DescribeSnapshots or DeleteSnapshot in the EC2 API reference. *

      *
      *

      * Volume and snapshot IDs are changing to a longer length ID format. For * more information, see the important note on the Welcome page. *

      *
      * * @param createSnapshotRequest * A JSON object containing one or more of the following fields:

      *
        *
      • *

        * CreateSnapshotInput$SnapshotDescription *

        *
      • *
      • *

        * CreateSnapshotInput$VolumeARN *

        *
      • * @return Result of the CreateSnapshot operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.CreateSnapshot */ @Override public CreateSnapshotResult createSnapshot( CreateSnapshotRequest createSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(createSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateSnapshotRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(createSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CreateSnapshotResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

        * Initiates a snapshot of a gateway from a volume recovery point. This * operation is supported only for the gateway-cached volume architecture. *

        *

        * A volume recovery point is a point in time at which all data of the * volume is consistent and from which you can create a snapshot. To get a * list of volume recovery point for gateway-cached volumes, use * ListVolumeRecoveryPoints. *

        *

        * In the CreateSnapshotFromVolumeRecoveryPoint request, you * identify the volume by providing its Amazon Resource Name (ARN). You must * also provide a description for the snapshot. When AWS Storage Gateway * takes a snapshot of the specified volume, the snapshot and its * description appear in the AWS Storage Gateway console. In response, AWS * Storage Gateway returns you a snapshot ID. You can use this snapshot ID * to check the snapshot progress or later use it when you want to create a * volume from a snapshot. *

        * *

        * To list or delete a snapshot, you must use the Amazon EC2 API. For more * information, in Amazon Elastic Compute Cloud API Reference. *

        *
        * * @param createSnapshotFromVolumeRecoveryPointRequest * @return Result of the CreateSnapshotFromVolumeRecoveryPoint operation * returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.CreateSnapshotFromVolumeRecoveryPoint */ @Override public CreateSnapshotFromVolumeRecoveryPointResult createSnapshotFromVolumeRecoveryPoint( CreateSnapshotFromVolumeRecoveryPointRequest createSnapshotFromVolumeRecoveryPointRequest) { ExecutionContext executionContext = createExecutionContext(createSnapshotFromVolumeRecoveryPointRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateSnapshotFromVolumeRecoveryPointRequestMarshaller( protocolFactory) .marshall(super .beforeMarshalling(createSnapshotFromVolumeRecoveryPointRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CreateSnapshotFromVolumeRecoveryPointResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

        * Creates a volume on a specified gateway. This operation is supported only * for the gateway-stored volume architecture. *

        *

        * The size of the volume to create is inferred from the disk size. You can * choose to preserve existing data on the disk, create volume from an * existing snapshot, or create an empty volume. If you choose to create an * empty gateway volume, then any existing data on the disk is erased. *

        *

        * In the request you must specify the gateway and the disk information on * which you are creating the volume. In response, AWS Storage Gateway * creates the volume and returns volume information such as the volume * Amazon Resource Name (ARN), its size, and the iSCSI target ARN that * initiators can use to connect to the volume target. *

        * * @param createStorediSCSIVolumeRequest * A JSON object containing one or more of the following fields:

        *
          *
        • *

          * CreateStorediSCSIVolumeInput$DiskId *

          *
        • *
        • *

          * CreateStorediSCSIVolumeInput$NetworkInterfaceId *

          *
        • *
        • *

          * CreateStorediSCSIVolumeInput$PreserveExistingData *

          *
        • *
        • *

          * CreateStorediSCSIVolumeInput$SnapshotId *

          *
        • *
        • *

          * CreateStorediSCSIVolumeInput$TargetName *

          *
        • * @return Result of the CreateStorediSCSIVolume operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.CreateStorediSCSIVolume */ @Override public CreateStorediSCSIVolumeResult createStorediSCSIVolume( CreateStorediSCSIVolumeRequest createStorediSCSIVolumeRequest) { ExecutionContext executionContext = createExecutionContext(createStorediSCSIVolumeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateStorediSCSIVolumeRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(createStorediSCSIVolumeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CreateStorediSCSIVolumeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

          * Creates a virtual tape by using your own barcode. You write data to the * virtual tape and then archive the tape. *

          * *

          * Cache storage must be allocated to the gateway before you can create a * virtual tape. Use the AddCache operation to add cache storage to a * gateway. *

          *
          * * @param createTapeWithBarcodeRequest * CreateTapeWithBarcodeInput * @return Result of the CreateTapeWithBarcode operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.CreateTapeWithBarcode */ @Override public CreateTapeWithBarcodeResult createTapeWithBarcode( CreateTapeWithBarcodeRequest createTapeWithBarcodeRequest) { ExecutionContext executionContext = createExecutionContext(createTapeWithBarcodeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateTapeWithBarcodeRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(createTapeWithBarcodeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CreateTapeWithBarcodeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

          * Creates one or more virtual tapes. You write data to the virtual tapes * and then archive the tapes. *

          * *

          * Cache storage must be allocated to the gateway before you can create * virtual tapes. Use the AddCache operation to add cache storage to * a gateway. *

          *
          * * @param createTapesRequest * CreateTapesInput * @return Result of the CreateTapes operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.CreateTapes */ @Override public CreateTapesResult createTapes(CreateTapesRequest createTapesRequest) { ExecutionContext executionContext = createExecutionContext(createTapesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateTapesRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(createTapesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CreateTapesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

          * Deletes the bandwidth rate limits of a gateway. You can delete either the * upload and download bandwidth rate limit, or you can delete both. If you * delete only one of the limits, the other limit remains unchanged. To * specify which gateway to work with, use the Amazon Resource Name (ARN) of * the gateway in your request. *

          * * @param deleteBandwidthRateLimitRequest * @return Result of the DeleteBandwidthRateLimit operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DeleteBandwidthRateLimit */ @Override public DeleteBandwidthRateLimitResult deleteBandwidthRateLimit( DeleteBandwidthRateLimitRequest deleteBandwidthRateLimitRequest) { ExecutionContext executionContext = createExecutionContext(deleteBandwidthRateLimitRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteBandwidthRateLimitRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(deleteBandwidthRateLimitRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteBandwidthRateLimitResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

          * Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials * for a specified iSCSI target and initiator pair. *

          * * @param deleteChapCredentialsRequest * A JSON object containing one or more of the following fields:

          *
            *
          • *

            * DeleteChapCredentialsInput$InitiatorName *

            *
          • *
          • *

            * DeleteChapCredentialsInput$TargetARN *

            *
          • * @return Result of the DeleteChapCredentials operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DeleteChapCredentials */ @Override public DeleteChapCredentialsResult deleteChapCredentials( DeleteChapCredentialsRequest deleteChapCredentialsRequest) { ExecutionContext executionContext = createExecutionContext(deleteChapCredentialsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteChapCredentialsRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(deleteChapCredentialsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteChapCredentialsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Deletes a gateway. To specify which gateway to delete, use the Amazon * Resource Name (ARN) of the gateway in your request. The operation deletes * the gateway; however, it does not delete the gateway virtual machine (VM) * from your host computer. *

            *

            * After you delete a gateway, you cannot reactivate it. Completed snapshots * of the gateway volumes are not deleted upon deleting the gateway, * however, pending snapshots will not complete. After you delete a gateway, * your next step is to remove it from your environment. *

            * *

            * You no longer pay software charges after the gateway is deleted; however, * your existing Amazon EBS snapshots persist and you will continue to be * billed for these snapshots. You can choose to remove all remaining Amazon * EBS snapshots by canceling your Amazon EC2 subscription.  If you prefer * not to cancel your Amazon EC2 subscription, you can delete your snapshots * using the Amazon EC2 console. For more information, see the AWS Storage Gateway Detail * Page. *

            *
            * * @param deleteGatewayRequest * A JSON object containing the id of the gateway to delete. * @return Result of the DeleteGateway operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DeleteGateway */ @Override public DeleteGatewayResult deleteGateway( DeleteGatewayRequest deleteGatewayRequest) { ExecutionContext executionContext = createExecutionContext(deleteGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteGatewayRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(deleteGatewayRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteGatewayResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Deletes a snapshot of a volume. *

            *

            * You can take snapshots of your gateway volumes on a scheduled or ad hoc * basis. This API action enables you to delete a snapshot schedule for a * volume. For more information, see Working with Snapshots. In the DeleteSnapshotSchedule * request, you identify the volume by providing its Amazon Resource Name * (ARN). *

            * *

            * To list or delete a snapshot, you must use the Amazon EC2 API. in * Amazon Elastic Compute Cloud API Reference. *

            *
            * * @param deleteSnapshotScheduleRequest * @return Result of the DeleteSnapshotSchedule operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DeleteSnapshotSchedule */ @Override public DeleteSnapshotScheduleResult deleteSnapshotSchedule( DeleteSnapshotScheduleRequest deleteSnapshotScheduleRequest) { ExecutionContext executionContext = createExecutionContext(deleteSnapshotScheduleRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteSnapshotScheduleRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(deleteSnapshotScheduleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteSnapshotScheduleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Deletes the specified virtual tape. *

            * * @param deleteTapeRequest * DeleteTapeInput * @return Result of the DeleteTape operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DeleteTape */ @Override public DeleteTapeResult deleteTape(DeleteTapeRequest deleteTapeRequest) { ExecutionContext executionContext = createExecutionContext(deleteTapeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteTapeRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(deleteTapeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteTapeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Deletes the specified virtual tape from the virtual tape shelf (VTS). *

            * * @param deleteTapeArchiveRequest * DeleteTapeArchiveInput * @return Result of the DeleteTapeArchive operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DeleteTapeArchive */ @Override public DeleteTapeArchiveResult deleteTapeArchive( DeleteTapeArchiveRequest deleteTapeArchiveRequest) { ExecutionContext executionContext = createExecutionContext(deleteTapeArchiveRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteTapeArchiveRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(deleteTapeArchiveRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteTapeArchiveResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Deletes the specified gateway volume that you previously created using * the CreateCachediSCSIVolume or CreateStorediSCSIVolume API. * For gateway-stored volumes, the local disk that was configured as the * storage volume is not deleted. You can reuse the local disk to create * another storage volume. *

            *

            * Before you delete a gateway volume, make sure there are no iSCSI * connections to the volume you are deleting. You should also make sure * there is no snapshot in progress. You can use the Amazon Elastic Compute * Cloud (Amazon EC2) API to query snapshots on the volume you are deleting * and check the snapshot status. For more information, go to DescribeSnapshots in the Amazon Elastic Compute Cloud API * Reference. *

            *

            * In the request, you must provide the Amazon Resource Name (ARN) of the * storage volume you want to delete. *

            * * @param deleteVolumeRequest * A JSON object containing the DeleteVolumeInput$VolumeARN to * delete. * @return Result of the DeleteVolume operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DeleteVolume */ @Override public DeleteVolumeResult deleteVolume( DeleteVolumeRequest deleteVolumeRequest) { ExecutionContext executionContext = createExecutionContext(deleteVolumeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteVolumeRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(deleteVolumeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteVolumeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns the bandwidth rate limits of a gateway. By default, these limits * are not set, which means no bandwidth rate limiting is in effect. *

            *

            * This operation only returns a value for a bandwidth rate limit only if * the limit is set. If no limits are set for the gateway, then this * operation returns only the gateway ARN in the response body. To specify * which gateway to describe, use the Amazon Resource Name (ARN) of the * gateway in your request. *

            * * @param describeBandwidthRateLimitRequest * A JSON object containing the of the gateway. * @return Result of the DescribeBandwidthRateLimit operation returned by * the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeBandwidthRateLimit */ @Override public DescribeBandwidthRateLimitResult describeBandwidthRateLimit( DescribeBandwidthRateLimitRequest describeBandwidthRateLimitRequest) { ExecutionContext executionContext = createExecutionContext(describeBandwidthRateLimitRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeBandwidthRateLimitRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeBandwidthRateLimitRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeBandwidthRateLimitResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns information about the cache of a gateway. This operation is * supported only for the gateway-cached volume architecture. *

            *

            * The response includes disk IDs that are configured as cache, and it * includes the amount of cache allocated and used. *

            * * @param describeCacheRequest * @return Result of the DescribeCache operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeCache */ @Override public DescribeCacheResult describeCache( DescribeCacheRequest describeCacheRequest) { ExecutionContext executionContext = createExecutionContext(describeCacheRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeCacheRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(describeCacheRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeCacheResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns a description of the gateway volumes specified in the request. * This operation is supported only for the gateway-cached volume * architecture. *

            *

            * The list of gateway volumes in the request must be from one gateway. In * the response Amazon Storage Gateway returns volume information sorted by * volume Amazon Resource Name (ARN). *

            * * @param describeCachediSCSIVolumesRequest * @return Result of the DescribeCachediSCSIVolumes operation returned by * the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeCachediSCSIVolumes */ @Override public DescribeCachediSCSIVolumesResult describeCachediSCSIVolumes( DescribeCachediSCSIVolumesRequest describeCachediSCSIVolumesRequest) { ExecutionContext executionContext = createExecutionContext(describeCachediSCSIVolumesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeCachediSCSIVolumesRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeCachediSCSIVolumesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeCachediSCSIVolumesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns an array of Challenge-Handshake Authentication Protocol (CHAP) * credentials information for a specified iSCSI target, one for each * target-initiator pair. *

            * * @param describeChapCredentialsRequest * A JSON object containing the Amazon Resource Name (ARN) of the * iSCSI volume target. * @return Result of the DescribeChapCredentials operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeChapCredentials */ @Override public DescribeChapCredentialsResult describeChapCredentials( DescribeChapCredentialsRequest describeChapCredentialsRequest) { ExecutionContext executionContext = createExecutionContext(describeChapCredentialsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeChapCredentialsRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeChapCredentialsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeChapCredentialsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns metadata about a gateway such as its name, network interfaces, * configured time zone, and the state (whether the gateway is running or * not). To specify which gateway to describe, use the Amazon Resource Name * (ARN) of the gateway in your request. *

            * * @param describeGatewayInformationRequest * A JSON object containing the id of the gateway. * @return Result of the DescribeGatewayInformation operation returned by * the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeGatewayInformation */ @Override public DescribeGatewayInformationResult describeGatewayInformation( DescribeGatewayInformationRequest describeGatewayInformationRequest) { ExecutionContext executionContext = createExecutionContext(describeGatewayInformationRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeGatewayInformationRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeGatewayInformationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeGatewayInformationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns your gateway's weekly maintenance start time including the day * and time of the week. Note that values are in terms of the gateway's time * zone. *

            * * @param describeMaintenanceStartTimeRequest * A JSON object containing the of the gateway. * @return Result of the DescribeMaintenanceStartTime operation returned by * the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeMaintenanceStartTime */ @Override public DescribeMaintenanceStartTimeResult describeMaintenanceStartTime( DescribeMaintenanceStartTimeRequest describeMaintenanceStartTimeRequest) { ExecutionContext executionContext = createExecutionContext(describeMaintenanceStartTimeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeMaintenanceStartTimeRequestMarshaller( protocolFactory) .marshall(super .beforeMarshalling(describeMaintenanceStartTimeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeMaintenanceStartTimeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Describes the snapshot schedule for the specified gateway volume. The * snapshot schedule information includes intervals at which snapshots are * automatically initiated on the volume. *

            * * @param describeSnapshotScheduleRequest * A JSON object containing the * DescribeSnapshotScheduleInput$VolumeARN of the volume. * @return Result of the DescribeSnapshotSchedule operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeSnapshotSchedule */ @Override public DescribeSnapshotScheduleResult describeSnapshotSchedule( DescribeSnapshotScheduleRequest describeSnapshotScheduleRequest) { ExecutionContext executionContext = createExecutionContext(describeSnapshotScheduleRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeSnapshotScheduleRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeSnapshotScheduleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeSnapshotScheduleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns the description of the gateway volumes specified in the request. * The list of gateway volumes in the request must be from one gateway. In * the response Amazon Storage Gateway returns volume information sorted by * volume ARNs. *

            * * @param describeStorediSCSIVolumesRequest * A JSON object containing a list of * DescribeStorediSCSIVolumesInput$VolumeARNs. * @return Result of the DescribeStorediSCSIVolumes operation returned by * the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeStorediSCSIVolumes */ @Override public DescribeStorediSCSIVolumesResult describeStorediSCSIVolumes( DescribeStorediSCSIVolumesRequest describeStorediSCSIVolumesRequest) { ExecutionContext executionContext = createExecutionContext(describeStorediSCSIVolumesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeStorediSCSIVolumesRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeStorediSCSIVolumesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeStorediSCSIVolumesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns a description of specified virtual tapes in the virtual tape * shelf (VTS). *

            *

            * If a specific TapeARN is not specified, AWS Storage Gateway * returns a description of all virtual tapes found in the VTS associated * with your account. *

            * * @param describeTapeArchivesRequest * DescribeTapeArchivesInput * @return Result of the DescribeTapeArchives operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeTapeArchives */ @Override public DescribeTapeArchivesResult describeTapeArchives( DescribeTapeArchivesRequest describeTapeArchivesRequest) { ExecutionContext executionContext = createExecutionContext(describeTapeArchivesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeTapeArchivesRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeTapeArchivesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeTapeArchivesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeTapeArchivesResult describeTapeArchives() { return describeTapeArchives(new DescribeTapeArchivesRequest()); } /** *

            * Returns a list of virtual tape recovery points that are available for the * specified gateway-VTL. *

            *

            * A recovery point is a point-in-time view of a virtual tape at which all * the data on the virtual tape is consistent. If your gateway crashes, * virtual tapes that have recovery points can be recovered to a new * gateway. *

            * * @param describeTapeRecoveryPointsRequest * DescribeTapeRecoveryPointsInput * @return Result of the DescribeTapeRecoveryPoints operation returned by * the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeTapeRecoveryPoints */ @Override public DescribeTapeRecoveryPointsResult describeTapeRecoveryPoints( DescribeTapeRecoveryPointsRequest describeTapeRecoveryPointsRequest) { ExecutionContext executionContext = createExecutionContext(describeTapeRecoveryPointsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeTapeRecoveryPointsRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeTapeRecoveryPointsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeTapeRecoveryPointsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns a description of the specified Amazon Resource Name (ARN) of * virtual tapes. If a TapeARN is not specified, returns a * description of all virtual tapes associated with the specified gateway. *

            * * @param describeTapesRequest * DescribeTapesInput * @return Result of the DescribeTapes operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeTapes */ @Override public DescribeTapesResult describeTapes( DescribeTapesRequest describeTapesRequest) { ExecutionContext executionContext = createExecutionContext(describeTapesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeTapesRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(describeTapesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeTapesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns information about the upload buffer of a gateway. This operation * is supported for both the gateway-stored and gateway-cached volume * architectures. *

            *

            * The response includes disk IDs that are configured as upload buffer * space, and it includes the amount of upload buffer space allocated and * used. *

            * * @param describeUploadBufferRequest * @return Result of the DescribeUploadBuffer operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeUploadBuffer */ @Override public DescribeUploadBufferResult describeUploadBuffer( DescribeUploadBufferRequest describeUploadBufferRequest) { ExecutionContext executionContext = createExecutionContext(describeUploadBufferRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeUploadBufferRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeUploadBufferRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeUploadBufferResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns a description of virtual tape library (VTL) devices for the * specified gateway. In the response, AWS Storage Gateway returns VTL * device information. *

            *

            * The list of VTL devices must be from one gateway. *

            * * @param describeVTLDevicesRequest * DescribeVTLDevicesInput * @return Result of the DescribeVTLDevices operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeVTLDevices */ @Override public DescribeVTLDevicesResult describeVTLDevices( DescribeVTLDevicesRequest describeVTLDevicesRequest) { ExecutionContext executionContext = createExecutionContext(describeVTLDevicesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeVTLDevicesRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeVTLDevicesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeVTLDevicesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Returns information about the working storage of a gateway. This * operation is supported only for the gateway-stored volume architecture. * This operation is deprecated in cached-volumes API version (20120630). * Use DescribeUploadBuffer instead. *

            * *

            * Working storage is also referred to as upload buffer. You can also use * the DescribeUploadBuffer operation to add upload buffer to a * stored-volume gateway. *

            *
            *

            * The response includes disk IDs that are configured as working storage, * and it includes the amount of working storage allocated and used. *

            * * @param describeWorkingStorageRequest * A JSON object containing the of the gateway. * @return Result of the DescribeWorkingStorage operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DescribeWorkingStorage */ @Override public DescribeWorkingStorageResult describeWorkingStorage( DescribeWorkingStorageRequest describeWorkingStorageRequest) { ExecutionContext executionContext = createExecutionContext(describeWorkingStorageRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeWorkingStorageRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeWorkingStorageRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeWorkingStorageResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Disables a gateway when the gateway is no longer functioning. For * example, if your gateway VM is damaged, you can disable the gateway so * you can recover virtual tapes. *

            *

            * Use this operation for a gateway-VTL that is not reachable or not * functioning. *

            * *

            * Once a gateway is disabled it cannot be enabled. *

            *
            * * @param disableGatewayRequest * DisableGatewayInput * @return Result of the DisableGateway operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.DisableGateway */ @Override public DisableGatewayResult disableGateway( DisableGatewayRequest disableGatewayRequest) { ExecutionContext executionContext = createExecutionContext(disableGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisableGatewayRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(disableGatewayRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DisableGatewayResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Lists gateways owned by an AWS account in a region specified in the * request. The returned list is ordered by gateway Amazon Resource Name * (ARN). *

            *

            * By default, the operation returns a maximum of 100 gateways. This * operation supports pagination that allows you to optionally reduce the * number of gateways returned in a response. *

            *

            * If you have more gateways than are returned in a response (that is, the * response returns only a truncated list of your gateways), the response * contains a marker that you can specify in your next request to fetch the * next page of gateways. *

            * * @param listGatewaysRequest * A JSON object containing zero or more of the following fields:

            *
              *
            • *

              * ListGatewaysInput$Limit *

              *
            • *
            • *

              * ListGatewaysInput$Marker *

              *
            • * @return Result of the ListGateways operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.ListGateways */ @Override public ListGatewaysResult listGateways( ListGatewaysRequest listGatewaysRequest) { ExecutionContext executionContext = createExecutionContext(listGatewaysRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListGatewaysRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(listGatewaysRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ListGatewaysResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListGatewaysResult listGateways() { return listGateways(new ListGatewaysRequest()); } /** *

              * Returns a list of the gateway's local disks. To specify which gateway to * describe, you use the Amazon Resource Name (ARN) of the gateway in the * body of the request. *

              *

              * The request returns a list of all disks, specifying which are configured * as working storage, cache storage, or stored volume or not configured at * all. The response includes a DiskStatus field. This field * can have a value of present (the disk is available to use), missing (the * disk is no longer connected to the gateway), or mismatch (the disk node * is occupied by a disk that has incorrect metadata or the disk content is * corrupted). *

              * * @param listLocalDisksRequest * A JSON object containing the of the gateway. * @return Result of the ListLocalDisks operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.ListLocalDisks */ @Override public ListLocalDisksResult listLocalDisks( ListLocalDisksRequest listLocalDisksRequest) { ExecutionContext executionContext = createExecutionContext(listLocalDisksRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListLocalDisksRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(listLocalDisksRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ListLocalDisksResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Lists the tags that have been added to the specified resource. *

              * * @param listTagsForResourceRequest * ListTagsForResourceInput * @return Result of the ListTagsForResource operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.ListTagsForResource */ @Override public ListTagsForResourceResult listTagsForResource( 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 ListTagsForResourceRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(listTagsForResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } 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); } } @Override public ListTagsForResourceResult listTagsForResource() { return listTagsForResource(new ListTagsForResourceRequest()); } /** *

              * Lists virtual tapes in your virtual tape library (VTL) and your virtual * tape shelf (VTS). You specify the tapes to list by specifying one or more * tape Amazon Resource Names (ARNs). If you don't specify a tape ARN, the * operation lists all virtual tapes in both your VTL and VTS. *

              *

              * This operation supports pagination. By default, the operation returns a * maximum of up to 100 tapes. You can optionally specify the * Limit parameter in the body to limit the number of tapes in * the response. If the number of tapes returned in the response is * truncated, the response includes a Marker element that you * can use in your subsequent request to retrieve the next set of tapes. *

              * * @param listTapesRequest * A JSON object that contains one or more of the following * fields:

              *
                *
              • *

                * ListTapesInput$Limit *

                *
              • *
              • *

                * ListTapesInput$Marker *

                *
              • *
              • *

                * ListTapesInput$TapeARNs *

                *
              • * @return Result of the ListTapes operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.ListTapes */ @Override public ListTapesResult listTapes(ListTapesRequest listTapesRequest) { ExecutionContext executionContext = createExecutionContext(listTapesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTapesRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(listTapesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ListTapesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                * Lists iSCSI initiators that are connected to a volume. You can use this * operation to determine whether a volume is being used or not. *

                * * @param listVolumeInitiatorsRequest * ListVolumeInitiatorsInput * @return Result of the ListVolumeInitiators operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.ListVolumeInitiators */ @Override public ListVolumeInitiatorsResult listVolumeInitiators( ListVolumeInitiatorsRequest listVolumeInitiatorsRequest) { ExecutionContext executionContext = createExecutionContext(listVolumeInitiatorsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListVolumeInitiatorsRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(listVolumeInitiatorsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ListVolumeInitiatorsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                * Lists the recovery points for a specified gateway. This operation is * supported only for the gateway-cached volume architecture. *

                *

                * Each gateway-cached volume has one recovery point. A volume recovery * point is a point in time at which all data of the volume is consistent * and from which you can create a snapshot. To create a snapshot from a * volume recovery point use the * CreateSnapshotFromVolumeRecoveryPoint operation. *

                * * @param listVolumeRecoveryPointsRequest * @return Result of the ListVolumeRecoveryPoints operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.ListVolumeRecoveryPoints */ @Override public ListVolumeRecoveryPointsResult listVolumeRecoveryPoints( ListVolumeRecoveryPointsRequest listVolumeRecoveryPointsRequest) { ExecutionContext executionContext = createExecutionContext(listVolumeRecoveryPointsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListVolumeRecoveryPointsRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(listVolumeRecoveryPointsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ListVolumeRecoveryPointsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                * Lists the iSCSI stored volumes of a gateway. Results are sorted by volume * ARN. The response includes only the volume ARNs. If you want additional * volume information, use the DescribeStorediSCSIVolumes API. *

                *

                * The operation supports pagination. By default, the operation returns a * maximum of up to 100 volumes. You can optionally specify the * Limit field in the body to limit the number of volumes in * the response. If the number of volumes returned in the response is * truncated, the response includes a Marker field. You can use this Marker * value in your subsequent request to retrieve the next set of volumes. *

                * * @param listVolumesRequest * A JSON object that contains one or more of the following * fields:

                *
                  *
                • *

                  * ListVolumesInput$Limit *

                  *
                • *
                • *

                  * ListVolumesInput$Marker *

                  *
                • * @return Result of the ListVolumes operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.ListVolumes */ @Override public ListVolumesResult listVolumes(ListVolumesRequest listVolumesRequest) { ExecutionContext executionContext = createExecutionContext(listVolumesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListVolumesRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(listVolumesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ListVolumesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                  * Removes one or more tags from the specified resource. *

                  * * @param removeTagsFromResourceRequest * RemoveTagsFromResourceInput * @return Result of the RemoveTagsFromResource operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.RemoveTagsFromResource */ @Override public RemoveTagsFromResourceResult removeTagsFromResource( RemoveTagsFromResourceRequest removeTagsFromResourceRequest) { ExecutionContext executionContext = createExecutionContext(removeTagsFromResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RemoveTagsFromResourceRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(removeTagsFromResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new RemoveTagsFromResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public RemoveTagsFromResourceResult removeTagsFromResource() { return removeTagsFromResource(new RemoveTagsFromResourceRequest()); } /** *

                  * Resets all cache disks that have encountered a error and makes the disks * available for reconfiguration as cache storage. If your cache disk * encounters a error, the gateway prevents read and write operations on * virtual tapes in the gateway. For example, an error can occur when a disk * is corrupted or removed from the gateway. When a cache is reset, the * gateway loses its cache storage. At this point you can reconfigure the * disks as cache disks. *

                  * *

                  * If the cache disk you are resetting contains data that has not been * uploaded to Amazon S3 yet, that data can be lost. After you reset cache * disks, there will be no configured cache disks left in the gateway, so * you must configure at least one new cache disk for your gateway to * function properly. *

                  *
                  * * @param resetCacheRequest * @return Result of the ResetCache operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.ResetCache */ @Override public ResetCacheResult resetCache(ResetCacheRequest resetCacheRequest) { ExecutionContext executionContext = createExecutionContext(resetCacheRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ResetCacheRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(resetCacheRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ResetCacheResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                  * Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a * gateway-VTL. Virtual tapes archived in the VTS are not associated with * any gateway. However after a tape is retrieved, it is associated with a * gateway, even though it is also listed in the VTS. *

                  *

                  * Once a tape is successfully retrieved to a gateway, it cannot be * retrieved again to another gateway. You must archive the tape again * before you can retrieve it to another gateway. *

                  * * @param retrieveTapeArchiveRequest * RetrieveTapeArchiveInput * @return Result of the RetrieveTapeArchive operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.RetrieveTapeArchive */ @Override public RetrieveTapeArchiveResult retrieveTapeArchive( RetrieveTapeArchiveRequest retrieveTapeArchiveRequest) { ExecutionContext executionContext = createExecutionContext(retrieveTapeArchiveRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RetrieveTapeArchiveRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(retrieveTapeArchiveRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new RetrieveTapeArchiveResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                  * Retrieves the recovery point for the specified virtual tape. *

                  *

                  * A recovery point is a point in time view of a virtual tape at which all * the data on the tape is consistent. If your gateway crashes, virtual * tapes that have recovery points can be recovered to a new gateway. *

                  * *

                  * The virtual tape can be retrieved to only one gateway. The retrieved tape * is read-only. The virtual tape can be retrieved to only a gateway-VTL. * There is no charge for retrieving recovery points. *

                  *
                  * * @param retrieveTapeRecoveryPointRequest * RetrieveTapeRecoveryPointInput * @return Result of the RetrieveTapeRecoveryPoint operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.RetrieveTapeRecoveryPoint */ @Override public RetrieveTapeRecoveryPointResult retrieveTapeRecoveryPoint( RetrieveTapeRecoveryPointRequest retrieveTapeRecoveryPointRequest) { ExecutionContext executionContext = createExecutionContext(retrieveTapeRecoveryPointRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RetrieveTapeRecoveryPointRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(retrieveTapeRecoveryPointRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new RetrieveTapeRecoveryPointResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                  * Sets the password for your VM local console. When you log in to the local * console for the first time, you log in to the VM with the default * credentials. We recommend that you set a new password. You don't need to * know the default password to set a new password. *

                  * * @param setLocalConsolePasswordRequest * SetLocalConsolePasswordInput * @return Result of the SetLocalConsolePassword operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.SetLocalConsolePassword */ @Override public SetLocalConsolePasswordResult setLocalConsolePassword( SetLocalConsolePasswordRequest setLocalConsolePasswordRequest) { ExecutionContext executionContext = createExecutionContext(setLocalConsolePasswordRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SetLocalConsolePasswordRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(setLocalConsolePasswordRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new SetLocalConsolePasswordResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                  * Shuts down a gateway. To specify which gateway to shut down, use the * Amazon Resource Name (ARN) of the gateway in the body of your request. *

                  *

                  * The operation shuts down the gateway service component running in the * storage gateway's virtual machine (VM) and not the VM. *

                  * *

                  * If you want to shut down the VM, it is recommended that you first shut * down the gateway component in the VM to avoid unpredictable conditions. *

                  *
                  *

                  * After the gateway is shutdown, you cannot call any other API except * StartGateway, DescribeGatewayInformation, and * ListGateways. For more information, see ActivateGateway. * Your applications cannot read from or write to the gateway's storage * volumes, and there are no snapshots taken. *

                  * *

                  * When you make a shutdown request, you will get a 200 OK * success response immediately. However, it might take some time for the * gateway to shut down. You can call the DescribeGatewayInformation * API to check the status. For more information, see * ActivateGateway. *

                  *
                  *

                  * If do not intend to use the gateway again, you must delete the gateway * (using DeleteGateway) to no longer pay software charges associated * with the gateway. *

                  * * @param shutdownGatewayRequest * A JSON object containing the of the gateway to shut down. * @return Result of the ShutdownGateway operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.ShutdownGateway */ @Override public ShutdownGatewayResult shutdownGateway( ShutdownGatewayRequest shutdownGatewayRequest) { ExecutionContext executionContext = createExecutionContext(shutdownGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ShutdownGatewayRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(shutdownGatewayRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ShutdownGatewayResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                  * Starts a gateway that you previously shut down (see * ShutdownGateway). After the gateway starts, you can then make * other API calls, your applications can read from or write to the * gateway's storage volumes and you will be able to take snapshot backups. *

                  * *

                  * When you make a request, you will get a 200 OK success response * immediately. However, it might take some time for the gateway to be * ready. You should call DescribeGatewayInformation and check the * status before making any additional API calls. For more information, see * ActivateGateway. *

                  *
                  *

                  * To specify which gateway to start, use the Amazon Resource Name (ARN) of * the gateway in your request. *

                  * * @param startGatewayRequest * A JSON object containing the of the gateway to start. * @return Result of the StartGateway operation returned by the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.StartGateway */ @Override public StartGatewayResult startGateway( StartGatewayRequest startGatewayRequest) { ExecutionContext executionContext = createExecutionContext(startGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new StartGatewayRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(startGatewayRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new StartGatewayResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                  * Updates the bandwidth rate limits of a gateway. You can update both the * upload and download bandwidth rate limit or specify only one of the two. * If you don't set a bandwidth rate limit, the existing rate limit remains. *

                  *

                  * By default, a gateway's bandwidth rate limits are not set. If you don't * set any limit, the gateway does not have any limitations on its bandwidth * usage and could potentially use the maximum available bandwidth. *

                  *

                  * To specify which gateway to update, use the Amazon Resource Name (ARN) of * the gateway in your request. *

                  * * @param updateBandwidthRateLimitRequest * A JSON object containing one or more of the following fields:

                  *
                    *
                  • *

                    * * UpdateBandwidthRateLimitInput$AverageDownloadRateLimitInBitsPerSec * *

                    *
                  • *
                  • *

                    * * UpdateBandwidthRateLimitInput$AverageUploadRateLimitInBitsPerSec * *

                    *
                  • * @return Result of the UpdateBandwidthRateLimit operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.UpdateBandwidthRateLimit */ @Override public UpdateBandwidthRateLimitResult updateBandwidthRateLimit( UpdateBandwidthRateLimitRequest updateBandwidthRateLimitRequest) { ExecutionContext executionContext = createExecutionContext(updateBandwidthRateLimitRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateBandwidthRateLimitRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(updateBandwidthRateLimitRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new UpdateBandwidthRateLimitResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                    * Updates the Challenge-Handshake Authentication Protocol (CHAP) * credentials for a specified iSCSI target. By default, a gateway does not * have CHAP enabled; however, for added security, you might use it. *

                    * *

                    * When you update CHAP credentials, all existing connections on the target * are closed and initiators must reconnect with the new credentials. *

                    *
                    * * @param updateChapCredentialsRequest * A JSON object containing one or more of the following fields:

                    *
                      *
                    • *

                      * UpdateChapCredentialsInput$InitiatorName *

                      *
                    • *
                    • *

                      * UpdateChapCredentialsInput$SecretToAuthenticateInitiator *

                      *
                    • *
                    • *

                      * UpdateChapCredentialsInput$SecretToAuthenticateTarget *

                      *
                    • *
                    • *

                      * UpdateChapCredentialsInput$TargetARN *

                      *
                    • * @return Result of the UpdateChapCredentials operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.UpdateChapCredentials */ @Override public UpdateChapCredentialsResult updateChapCredentials( UpdateChapCredentialsRequest updateChapCredentialsRequest) { ExecutionContext executionContext = createExecutionContext(updateChapCredentialsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateChapCredentialsRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(updateChapCredentialsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new UpdateChapCredentialsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                      * Updates a gateway's metadata, which includes the gateway's name and time * zone. To specify which gateway to update, use the Amazon Resource Name * (ARN) of the gateway in your request. *

                      * *

                      * For Gateways activated after September 2, 2015, the gateway's ARN * contains the gateway ID rather than the gateway name. However, changing * the name of the gateway has no effect on the gateway's ARN. *

                      *
                      * * @param updateGatewayInformationRequest * @return Result of the UpdateGatewayInformation operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.UpdateGatewayInformation */ @Override public UpdateGatewayInformationResult updateGatewayInformation( UpdateGatewayInformationRequest updateGatewayInformationRequest) { ExecutionContext executionContext = createExecutionContext(updateGatewayInformationRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateGatewayInformationRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(updateGatewayInformationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new UpdateGatewayInformationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                      * Updates the gateway virtual machine (VM) software. The request * immediately triggers the software update. *

                      * *

                      * When you make this request, you get a 200 OK success * response immediately. However, it might take some time for the update to * complete. You can call DescribeGatewayInformation to verify the * gateway is in the STATE_RUNNING state. *

                      *
                      *

                      * A software update forces a system restart of your gateway. You can * minimize the chance of any disruption to your applications by increasing * your iSCSI Initiators' timeouts. For more information about increasing * iSCSI Initiator timeouts for Windows and Linux, see Customizing Your Windows iSCSI Settings and Customizing Your Linux iSCSI Settings, respectively. *

                      *
                      * * @param updateGatewaySoftwareNowRequest * A JSON object containing the of the gateway to update. * @return Result of the UpdateGatewaySoftwareNow operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.UpdateGatewaySoftwareNow */ @Override public UpdateGatewaySoftwareNowResult updateGatewaySoftwareNow( UpdateGatewaySoftwareNowRequest updateGatewaySoftwareNowRequest) { ExecutionContext executionContext = createExecutionContext(updateGatewaySoftwareNowRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateGatewaySoftwareNowRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(updateGatewaySoftwareNowRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new UpdateGatewaySoftwareNowResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                      * Updates a gateway's weekly maintenance start time information, including * day and time of the week. The maintenance time is the time in your * gateway's time zone. *

                      * * @param updateMaintenanceStartTimeRequest * A JSON object containing the following fields:

                      *
                        *
                      • *

                        * UpdateMaintenanceStartTimeInput$DayOfWeek *

                        *
                      • *
                      • *

                        * UpdateMaintenanceStartTimeInput$HourOfDay *

                        *
                      • *
                      • *

                        * UpdateMaintenanceStartTimeInput$MinuteOfHour *

                        *
                      • * @return Result of the UpdateMaintenanceStartTime operation returned by * the service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.UpdateMaintenanceStartTime */ @Override public UpdateMaintenanceStartTimeResult updateMaintenanceStartTime( UpdateMaintenanceStartTimeRequest updateMaintenanceStartTimeRequest) { ExecutionContext executionContext = createExecutionContext(updateMaintenanceStartTimeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateMaintenanceStartTimeRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(updateMaintenanceStartTimeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new UpdateMaintenanceStartTimeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                        * Updates a snapshot schedule configured for a gateway volume. *

                        *

                        * The default snapshot schedule for volume is once every 24 hours, starting * at the creation time of the volume. You can use this API to change the * snapshot schedule configured for the volume. *

                        *

                        * In the request you must identify the gateway volume whose snapshot * schedule you want to update, and the schedule information, including when * you want the snapshot to begin on a day and the frequency (in hours) of * snapshots. *

                        * * @param updateSnapshotScheduleRequest * A JSON object containing one or more of the following fields:

                        *
                          *
                        • *

                          * UpdateSnapshotScheduleInput$Description *

                          *
                        • *
                        • *

                          * UpdateSnapshotScheduleInput$RecurrenceInHours *

                          *
                        • *
                        • *

                          * UpdateSnapshotScheduleInput$StartAt *

                          *
                        • *
                        • *

                          * UpdateSnapshotScheduleInput$VolumeARN *

                          *
                        • * @return Result of the UpdateSnapshotSchedule operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.UpdateSnapshotSchedule */ @Override public UpdateSnapshotScheduleResult updateSnapshotSchedule( UpdateSnapshotScheduleRequest updateSnapshotScheduleRequest) { ExecutionContext executionContext = createExecutionContext(updateSnapshotScheduleRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateSnapshotScheduleRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(updateSnapshotScheduleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new UpdateSnapshotScheduleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                          * Updates the type of medium changer in a gateway-VTL. When you activate a * gateway-VTL, you select a medium changer type for the gateway-VTL. This * operation enables you to select a different type of medium changer after * a gateway-VTL is activated. *

                          * * @param updateVTLDeviceTypeRequest * @return Result of the UpdateVTLDeviceType operation returned by the * service. * @throws InvalidGatewayRequestException * An exception occurred because an invalid gateway request was * issued to the service. For more information, see the error and * message fields. * @throws InternalServerErrorException * An internal server error has occurred during the request. For * more information, see the error and message fields. * @sample AWSStorageGateway.UpdateVTLDeviceType */ @Override public UpdateVTLDeviceTypeResult updateVTLDeviceType( UpdateVTLDeviceTypeRequest updateVTLDeviceTypeRequest) { ExecutionContext executionContext = createExecutionContext(updateVTLDeviceTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateVTLDeviceTypeRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(updateVTLDeviceTypeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new UpdateVTLDeviceTypeResultJsonUnmarshaller()); 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) { executionContext.setCredentialsProvider(CredentialUtils .getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext); } /** * 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); } /** * 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) { request.setEndpoint(endpoint); request.setTimeOffset(timeOffset); HttpResponseHandler errorResponseHandler = protocolFactory .createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy