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

software.amazon.awssdk.services.storagegateway.DefaultStorageGatewayClient Maven / Gradle / Ivy

/*
 * Copyright 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 software.amazon.awssdk.services.storagegateway;

import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.core.ApiName;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientOption;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
import software.amazon.awssdk.core.client.handler.SyncClientHandler;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.metrics.CoreMetric;
import software.amazon.awssdk.core.util.VersionInfo;
import software.amazon.awssdk.metrics.MetricCollector;
import software.amazon.awssdk.metrics.MetricPublisher;
import software.amazon.awssdk.metrics.NoOpMetricCollector;
import software.amazon.awssdk.protocols.core.ExceptionMetadata;
import software.amazon.awssdk.protocols.json.AwsJsonProtocol;
import software.amazon.awssdk.protocols.json.AwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.BaseAwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.JsonOperationMetadata;
import software.amazon.awssdk.services.storagegateway.model.ActivateGatewayRequest;
import software.amazon.awssdk.services.storagegateway.model.ActivateGatewayResponse;
import software.amazon.awssdk.services.storagegateway.model.AddCacheRequest;
import software.amazon.awssdk.services.storagegateway.model.AddCacheResponse;
import software.amazon.awssdk.services.storagegateway.model.AddTagsToResourceRequest;
import software.amazon.awssdk.services.storagegateway.model.AddTagsToResourceResponse;
import software.amazon.awssdk.services.storagegateway.model.AddUploadBufferRequest;
import software.amazon.awssdk.services.storagegateway.model.AddUploadBufferResponse;
import software.amazon.awssdk.services.storagegateway.model.AddWorkingStorageRequest;
import software.amazon.awssdk.services.storagegateway.model.AddWorkingStorageResponse;
import software.amazon.awssdk.services.storagegateway.model.AssignTapePoolRequest;
import software.amazon.awssdk.services.storagegateway.model.AssignTapePoolResponse;
import software.amazon.awssdk.services.storagegateway.model.AssociateFileSystemRequest;
import software.amazon.awssdk.services.storagegateway.model.AssociateFileSystemResponse;
import software.amazon.awssdk.services.storagegateway.model.AttachVolumeRequest;
import software.amazon.awssdk.services.storagegateway.model.AttachVolumeResponse;
import software.amazon.awssdk.services.storagegateway.model.CancelArchivalRequest;
import software.amazon.awssdk.services.storagegateway.model.CancelArchivalResponse;
import software.amazon.awssdk.services.storagegateway.model.CancelRetrievalRequest;
import software.amazon.awssdk.services.storagegateway.model.CancelRetrievalResponse;
import software.amazon.awssdk.services.storagegateway.model.CreateCachediScsiVolumeRequest;
import software.amazon.awssdk.services.storagegateway.model.CreateCachediScsiVolumeResponse;
import software.amazon.awssdk.services.storagegateway.model.CreateNfsFileShareRequest;
import software.amazon.awssdk.services.storagegateway.model.CreateNfsFileShareResponse;
import software.amazon.awssdk.services.storagegateway.model.CreateSmbFileShareRequest;
import software.amazon.awssdk.services.storagegateway.model.CreateSmbFileShareResponse;
import software.amazon.awssdk.services.storagegateway.model.CreateSnapshotFromVolumeRecoveryPointRequest;
import software.amazon.awssdk.services.storagegateway.model.CreateSnapshotFromVolumeRecoveryPointResponse;
import software.amazon.awssdk.services.storagegateway.model.CreateSnapshotRequest;
import software.amazon.awssdk.services.storagegateway.model.CreateSnapshotResponse;
import software.amazon.awssdk.services.storagegateway.model.CreateStorediScsiVolumeRequest;
import software.amazon.awssdk.services.storagegateway.model.CreateStorediScsiVolumeResponse;
import software.amazon.awssdk.services.storagegateway.model.CreateTapePoolRequest;
import software.amazon.awssdk.services.storagegateway.model.CreateTapePoolResponse;
import software.amazon.awssdk.services.storagegateway.model.CreateTapeWithBarcodeRequest;
import software.amazon.awssdk.services.storagegateway.model.CreateTapeWithBarcodeResponse;
import software.amazon.awssdk.services.storagegateway.model.CreateTapesRequest;
import software.amazon.awssdk.services.storagegateway.model.CreateTapesResponse;
import software.amazon.awssdk.services.storagegateway.model.DeleteAutomaticTapeCreationPolicyRequest;
import software.amazon.awssdk.services.storagegateway.model.DeleteAutomaticTapeCreationPolicyResponse;
import software.amazon.awssdk.services.storagegateway.model.DeleteBandwidthRateLimitRequest;
import software.amazon.awssdk.services.storagegateway.model.DeleteBandwidthRateLimitResponse;
import software.amazon.awssdk.services.storagegateway.model.DeleteChapCredentialsRequest;
import software.amazon.awssdk.services.storagegateway.model.DeleteChapCredentialsResponse;
import software.amazon.awssdk.services.storagegateway.model.DeleteFileShareRequest;
import software.amazon.awssdk.services.storagegateway.model.DeleteFileShareResponse;
import software.amazon.awssdk.services.storagegateway.model.DeleteGatewayRequest;
import software.amazon.awssdk.services.storagegateway.model.DeleteGatewayResponse;
import software.amazon.awssdk.services.storagegateway.model.DeleteSnapshotScheduleRequest;
import software.amazon.awssdk.services.storagegateway.model.DeleteSnapshotScheduleResponse;
import software.amazon.awssdk.services.storagegateway.model.DeleteTapeArchiveRequest;
import software.amazon.awssdk.services.storagegateway.model.DeleteTapeArchiveResponse;
import software.amazon.awssdk.services.storagegateway.model.DeleteTapePoolRequest;
import software.amazon.awssdk.services.storagegateway.model.DeleteTapePoolResponse;
import software.amazon.awssdk.services.storagegateway.model.DeleteTapeRequest;
import software.amazon.awssdk.services.storagegateway.model.DeleteTapeResponse;
import software.amazon.awssdk.services.storagegateway.model.DeleteVolumeRequest;
import software.amazon.awssdk.services.storagegateway.model.DeleteVolumeResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeAvailabilityMonitorTestRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeAvailabilityMonitorTestResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeBandwidthRateLimitRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeBandwidthRateLimitResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeBandwidthRateLimitScheduleRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeBandwidthRateLimitScheduleResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeCacheRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeCacheResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeCachediScsiVolumesRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeCachediScsiVolumesResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeChapCredentialsRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeChapCredentialsResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeFileSystemAssociationsRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeFileSystemAssociationsResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeGatewayInformationRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeGatewayInformationResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeMaintenanceStartTimeRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeMaintenanceStartTimeResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeNfsFileSharesRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeNfsFileSharesResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeSmbFileSharesRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeSmbFileSharesResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeSmbSettingsRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeSmbSettingsResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeSnapshotScheduleRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeSnapshotScheduleResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeStorediScsiVolumesRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeStorediScsiVolumesResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeTapeArchivesRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeTapeArchivesResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeTapeRecoveryPointsRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeTapeRecoveryPointsResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeTapesRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeTapesResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeUploadBufferRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeUploadBufferResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeVtlDevicesRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeVtlDevicesResponse;
import software.amazon.awssdk.services.storagegateway.model.DescribeWorkingStorageRequest;
import software.amazon.awssdk.services.storagegateway.model.DescribeWorkingStorageResponse;
import software.amazon.awssdk.services.storagegateway.model.DetachVolumeRequest;
import software.amazon.awssdk.services.storagegateway.model.DetachVolumeResponse;
import software.amazon.awssdk.services.storagegateway.model.DisableGatewayRequest;
import software.amazon.awssdk.services.storagegateway.model.DisableGatewayResponse;
import software.amazon.awssdk.services.storagegateway.model.DisassociateFileSystemRequest;
import software.amazon.awssdk.services.storagegateway.model.DisassociateFileSystemResponse;
import software.amazon.awssdk.services.storagegateway.model.InternalServerErrorException;
import software.amazon.awssdk.services.storagegateway.model.InvalidGatewayRequestException;
import software.amazon.awssdk.services.storagegateway.model.JoinDomainRequest;
import software.amazon.awssdk.services.storagegateway.model.JoinDomainResponse;
import software.amazon.awssdk.services.storagegateway.model.ListAutomaticTapeCreationPoliciesRequest;
import software.amazon.awssdk.services.storagegateway.model.ListAutomaticTapeCreationPoliciesResponse;
import software.amazon.awssdk.services.storagegateway.model.ListFileSharesRequest;
import software.amazon.awssdk.services.storagegateway.model.ListFileSharesResponse;
import software.amazon.awssdk.services.storagegateway.model.ListFileSystemAssociationsRequest;
import software.amazon.awssdk.services.storagegateway.model.ListFileSystemAssociationsResponse;
import software.amazon.awssdk.services.storagegateway.model.ListGatewaysRequest;
import software.amazon.awssdk.services.storagegateway.model.ListGatewaysResponse;
import software.amazon.awssdk.services.storagegateway.model.ListLocalDisksRequest;
import software.amazon.awssdk.services.storagegateway.model.ListLocalDisksResponse;
import software.amazon.awssdk.services.storagegateway.model.ListTagsForResourceRequest;
import software.amazon.awssdk.services.storagegateway.model.ListTagsForResourceResponse;
import software.amazon.awssdk.services.storagegateway.model.ListTapePoolsRequest;
import software.amazon.awssdk.services.storagegateway.model.ListTapePoolsResponse;
import software.amazon.awssdk.services.storagegateway.model.ListTapesRequest;
import software.amazon.awssdk.services.storagegateway.model.ListTapesResponse;
import software.amazon.awssdk.services.storagegateway.model.ListVolumeInitiatorsRequest;
import software.amazon.awssdk.services.storagegateway.model.ListVolumeInitiatorsResponse;
import software.amazon.awssdk.services.storagegateway.model.ListVolumeRecoveryPointsRequest;
import software.amazon.awssdk.services.storagegateway.model.ListVolumeRecoveryPointsResponse;
import software.amazon.awssdk.services.storagegateway.model.ListVolumesRequest;
import software.amazon.awssdk.services.storagegateway.model.ListVolumesResponse;
import software.amazon.awssdk.services.storagegateway.model.NotifyWhenUploadedRequest;
import software.amazon.awssdk.services.storagegateway.model.NotifyWhenUploadedResponse;
import software.amazon.awssdk.services.storagegateway.model.RefreshCacheRequest;
import software.amazon.awssdk.services.storagegateway.model.RefreshCacheResponse;
import software.amazon.awssdk.services.storagegateway.model.RemoveTagsFromResourceRequest;
import software.amazon.awssdk.services.storagegateway.model.RemoveTagsFromResourceResponse;
import software.amazon.awssdk.services.storagegateway.model.ResetCacheRequest;
import software.amazon.awssdk.services.storagegateway.model.ResetCacheResponse;
import software.amazon.awssdk.services.storagegateway.model.RetrieveTapeArchiveRequest;
import software.amazon.awssdk.services.storagegateway.model.RetrieveTapeArchiveResponse;
import software.amazon.awssdk.services.storagegateway.model.RetrieveTapeRecoveryPointRequest;
import software.amazon.awssdk.services.storagegateway.model.RetrieveTapeRecoveryPointResponse;
import software.amazon.awssdk.services.storagegateway.model.ServiceUnavailableErrorException;
import software.amazon.awssdk.services.storagegateway.model.SetLocalConsolePasswordRequest;
import software.amazon.awssdk.services.storagegateway.model.SetLocalConsolePasswordResponse;
import software.amazon.awssdk.services.storagegateway.model.SetSmbGuestPasswordRequest;
import software.amazon.awssdk.services.storagegateway.model.SetSmbGuestPasswordResponse;
import software.amazon.awssdk.services.storagegateway.model.ShutdownGatewayRequest;
import software.amazon.awssdk.services.storagegateway.model.ShutdownGatewayResponse;
import software.amazon.awssdk.services.storagegateway.model.StartAvailabilityMonitorTestRequest;
import software.amazon.awssdk.services.storagegateway.model.StartAvailabilityMonitorTestResponse;
import software.amazon.awssdk.services.storagegateway.model.StartGatewayRequest;
import software.amazon.awssdk.services.storagegateway.model.StartGatewayResponse;
import software.amazon.awssdk.services.storagegateway.model.StorageGatewayException;
import software.amazon.awssdk.services.storagegateway.model.StorageGatewayRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateAutomaticTapeCreationPolicyRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateAutomaticTapeCreationPolicyResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateBandwidthRateLimitRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateBandwidthRateLimitResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateBandwidthRateLimitScheduleRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateBandwidthRateLimitScheduleResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateChapCredentialsRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateChapCredentialsResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateFileSystemAssociationRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateFileSystemAssociationResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateGatewayInformationRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateGatewayInformationResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateGatewaySoftwareNowRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateGatewaySoftwareNowResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateMaintenanceStartTimeRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateMaintenanceStartTimeResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateNfsFileShareRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateNfsFileShareResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateSmbFileShareRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateSmbFileShareResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateSmbFileShareVisibilityRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateSmbFileShareVisibilityResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateSmbLocalGroupsRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateSmbLocalGroupsResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateSmbSecurityStrategyRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateSmbSecurityStrategyResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateSnapshotScheduleRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateSnapshotScheduleResponse;
import software.amazon.awssdk.services.storagegateway.model.UpdateVtlDeviceTypeRequest;
import software.amazon.awssdk.services.storagegateway.model.UpdateVtlDeviceTypeResponse;
import software.amazon.awssdk.services.storagegateway.paginators.DescribeTapeArchivesIterable;
import software.amazon.awssdk.services.storagegateway.paginators.DescribeTapeRecoveryPointsIterable;
import software.amazon.awssdk.services.storagegateway.paginators.DescribeTapesIterable;
import software.amazon.awssdk.services.storagegateway.paginators.DescribeVTLDevicesIterable;
import software.amazon.awssdk.services.storagegateway.paginators.ListFileSharesIterable;
import software.amazon.awssdk.services.storagegateway.paginators.ListFileSystemAssociationsIterable;
import software.amazon.awssdk.services.storagegateway.paginators.ListGatewaysIterable;
import software.amazon.awssdk.services.storagegateway.paginators.ListTagsForResourceIterable;
import software.amazon.awssdk.services.storagegateway.paginators.ListTapePoolsIterable;
import software.amazon.awssdk.services.storagegateway.paginators.ListTapesIterable;
import software.amazon.awssdk.services.storagegateway.paginators.ListVolumesIterable;
import software.amazon.awssdk.services.storagegateway.transform.ActivateGatewayRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.AddCacheRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.AddTagsToResourceRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.AddUploadBufferRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.AddWorkingStorageRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.AssignTapePoolRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.AssociateFileSystemRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.AttachVolumeRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.CancelArchivalRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.CancelRetrievalRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.CreateCachediScsiVolumeRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.CreateNfsFileShareRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.CreateSmbFileShareRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.CreateSnapshotFromVolumeRecoveryPointRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.CreateSnapshotRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.CreateStorediScsiVolumeRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.CreateTapePoolRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.CreateTapeWithBarcodeRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.CreateTapesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DeleteAutomaticTapeCreationPolicyRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DeleteBandwidthRateLimitRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DeleteChapCredentialsRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DeleteFileShareRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DeleteGatewayRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DeleteSnapshotScheduleRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DeleteTapeArchiveRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DeleteTapePoolRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DeleteTapeRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DeleteVolumeRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeAvailabilityMonitorTestRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeBandwidthRateLimitRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeBandwidthRateLimitScheduleRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeCacheRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeCachediScsiVolumesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeChapCredentialsRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeFileSystemAssociationsRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeGatewayInformationRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeMaintenanceStartTimeRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeNfsFileSharesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeSmbFileSharesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeSmbSettingsRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeSnapshotScheduleRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeStorediScsiVolumesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeTapeArchivesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeTapeRecoveryPointsRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeTapesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeUploadBufferRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeVtlDevicesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DescribeWorkingStorageRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DetachVolumeRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DisableGatewayRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.DisassociateFileSystemRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.JoinDomainRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ListAutomaticTapeCreationPoliciesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ListFileSharesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ListFileSystemAssociationsRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ListGatewaysRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ListLocalDisksRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ListTagsForResourceRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ListTapePoolsRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ListTapesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ListVolumeInitiatorsRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ListVolumeRecoveryPointsRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ListVolumesRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.NotifyWhenUploadedRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.RefreshCacheRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.RemoveTagsFromResourceRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ResetCacheRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.RetrieveTapeArchiveRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.RetrieveTapeRecoveryPointRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.SetLocalConsolePasswordRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.SetSmbGuestPasswordRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.ShutdownGatewayRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.StartAvailabilityMonitorTestRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.StartGatewayRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateAutomaticTapeCreationPolicyRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateBandwidthRateLimitRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateBandwidthRateLimitScheduleRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateChapCredentialsRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateFileSystemAssociationRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateGatewayInformationRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateGatewaySoftwareNowRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateMaintenanceStartTimeRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateNfsFileShareRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateSmbFileShareRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateSmbFileShareVisibilityRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateSmbLocalGroupsRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateSmbSecurityStrategyRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateSnapshotScheduleRequestMarshaller;
import software.amazon.awssdk.services.storagegateway.transform.UpdateVtlDeviceTypeRequestMarshaller;
import software.amazon.awssdk.utils.Logger;

/**
 * Internal implementation of {@link StorageGatewayClient}.
 *
 * @see StorageGatewayClient#builder()
 */
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultStorageGatewayClient implements StorageGatewayClient {
    private static final Logger log = Logger.loggerFor(DefaultStorageGatewayClient.class);

    private final SyncClientHandler clientHandler;

    private final AwsJsonProtocolFactory protocolFactory;

    private final SdkClientConfiguration clientConfiguration;

    protected DefaultStorageGatewayClient(SdkClientConfiguration clientConfiguration) {
        this.clientHandler = new AwsSyncClientHandler(clientConfiguration);
        this.clientConfiguration = clientConfiguration;
        this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build();
    }

    @Override
    public final String serviceName() {
        return SERVICE_NAME;
    }

    /**
     * 

* Activates the gateway you previously deployed on your host. In the activation process, you specify information * such as the Amazon Web Services Region that you want to use for storing snapshots or tapes, 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$MediumChangerType *

    *
  • *
  • *

    * ActivateGatewayInput$TapeDriveType *

    *
  • * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ActivateGateway * @see AWS API Documentation */ @Override public ActivateGatewayResponse activateGateway(ActivateGatewayRequest activateGatewayRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, ActivateGatewayResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, activateGatewayRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ActivateGateway"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ActivateGateway").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(activateGatewayRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ActivateGatewayRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

    * Configures one or more gateway local disks as cache for a gateway. This operation is only supported in the cached * volume, tape, and file gateway type (see How Storage * Gateway works (architecture). *

    *

    * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.AddCache * @see AWS API * Documentation */ @Override public AddCacheResponse addCache(AddCacheRequest addCacheRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, AddCacheResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, addCacheRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AddCache"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("AddCache").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(addCacheRequest) .withMetricCollector(apiCallMetricCollector).withMarshaller(new AddCacheRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

    * 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 Storage Gateway * resources: *

    *
      *
    • *

      * Storage gateways of all types *

      *
    • *
    • *

      * Storage volumes *

      *
    • *
    • *

      * Virtual tapes *

      *
    • *
    • *

      * NFS and SMB file shares *

      *
    • *
    • *

      * File System associations *

      *
    • *
    *

    * You can create a maximum of 50 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.AddTagsToResource * @see AWS API Documentation */ @Override public AddTagsToResourceResponse addTagsToResource(AddTagsToResourceRequest addTagsToResourceRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, AddTagsToResourceResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, addTagsToResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AddTagsToResource"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("AddTagsToResource").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(addTagsToResourceRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new AddTagsToResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

    *

    * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.AddUploadBuffer * @see AWS API Documentation */ @Override public AddUploadBufferResponse addUploadBuffer(AddUploadBufferRequest addUploadBufferRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, AddUploadBufferResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, addUploadBufferRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AddUploadBuffer"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("AddUploadBuffer").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(addUploadBufferRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new AddUploadBufferRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

    * Configures one or more gateway local disks as working storage for a gateway. This operation is only supported in * the stored volume gateway type. This operation is deprecated in cached volume 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.AddWorkingStorage * @see AWS API Documentation */ @Override public AddWorkingStorageResponse addWorkingStorage(AddWorkingStorageRequest addWorkingStorageRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, AddWorkingStorageResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, addWorkingStorageRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AddWorkingStorage"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("AddWorkingStorage").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(addWorkingStorageRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new AddWorkingStorageRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

      * Assigns a tape to a tape pool for archiving. The tape assigned to a pool is archived in the S3 storage class that * is associated with the pool. When you use your backup application to eject the tape, the tape is archived * directly into the S3 storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool. *

      *

      * Valid Values: GLACIER | DEEP_ARCHIVE *

      * * @param assignTapePoolRequest * @return Result of the AssignTapePool 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.AssignTapePool * @see AWS * API Documentation */ @Override public AssignTapePoolResponse assignTapePool(AssignTapePoolRequest assignTapePoolRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, AssignTapePoolResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, assignTapePoolRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AssignTapePool"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("AssignTapePool").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(assignTapePoolRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new AssignTapePoolRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

      * Associate an Amazon FSx file system with the FSx File Gateway. After the association process is complete, the * file shares on the Amazon FSx file system are available for access through the gateway. This operation only * supports the FSx File Gateway type. *

      * * @param associateFileSystemRequest * @return Result of the AssociateFileSystem 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.AssociateFileSystem * @see AWS API Documentation */ @Override public AssociateFileSystemResponse associateFileSystem(AssociateFileSystemRequest associateFileSystemRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, AssociateFileSystemResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, associateFileSystemRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AssociateFileSystem"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("AssociateFileSystem").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(associateFileSystemRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new AssociateFileSystemRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

      * Connects a volume to an iSCSI connection and then attaches the volume to the specified gateway. Detaching and * attaching a volume enables you to recover your data from one gateway to a different gateway without creating a * snapshot. It also makes it easier to move your volumes from an on-premises gateway to a gateway hosted on an * Amazon EC2 instance. *

      * * @param attachVolumeRequest * AttachVolumeInput * @return Result of the AttachVolume 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.AttachVolume * @see AWS * API Documentation */ @Override public AttachVolumeResponse attachVolume(AttachVolumeRequest attachVolumeRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, AttachVolumeResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, attachVolumeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AttachVolume"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("AttachVolume").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(attachVolumeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new AttachVolumeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

      * Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after the archiving process is initiated. * This operation is only supported in the tape gateway type. *

      * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.CancelArchival * @see AWS * API Documentation */ @Override public CancelArchivalResponse cancelArchival(CancelArchivalRequest cancelArchivalRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, CancelArchivalResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, cancelArchivalRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CancelArchival"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CancelArchival").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(cancelArchivalRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CancelArchivalRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

      * 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. This operation is only supported in the tape gateway type. *

      * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.CancelRetrieval * @see AWS API Documentation */ @Override public CancelRetrievalResponse cancelRetrieval(CancelRetrievalRequest cancelRetrievalRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, CancelRetrievalResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, cancelRetrievalRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CancelRetrieval"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CancelRetrieval").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(cancelRetrievalRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CancelRetrievalRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

      * Creates a cached volume on a specified cached volume gateway. This operation is only supported in the cached * volume gateway type. *

      * *

      * 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, the gateway creates the volume and returns * information about it. This information includes the volume Amazon Resource Name (ARN), its size, and the iSCSI * target ARN that initiators can use to connect to the volume target. *

      *

      * Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN for this cached * volume, which creates an exact copy of the existing volume’s latest recovery point. The * VolumeSizeInBytes value must be equal to or larger than the size of the copied volume, in bytes. *

      * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.CreateCachediSCSIVolume * @see AWS API Documentation */ @Override public CreateCachediScsiVolumeResponse createCachediSCSIVolume(CreateCachediScsiVolumeRequest createCachediScsiVolumeRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, CreateCachediScsiVolumeResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createCachediScsiVolumeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateCachediSCSIVolume"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateCachediSCSIVolume").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createCachediScsiVolumeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateCachediScsiVolumeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

      * Creates a Network File System (NFS) file share on an existing S3 File Gateway. In Storage Gateway, a file share * is a file system mount point backed by Amazon S3 cloud storage. Storage Gateway exposes file shares using an NFS * interface. This operation is only supported for S3 File Gateways. *

      * *

      * S3 File gateway requires Security Token Service (Amazon Web Services STS) to be activated to enable you to create * a file share. Make sure Amazon Web Services STS is activated in the Amazon Web Services Region you are creating * your S3 File Gateway in. If Amazon Web Services STS is not activated in the Amazon Web Services Region, activate * it. For information about how to activate Amazon Web Services STS, see Activating and * deactivating Amazon Web Services STS in an Amazon Web Services Region in the Identity and Access * Management User Guide. *

      *

      * S3 File Gateways do not support creating hard or symbolic links on a file share. *

      *
      * * @param createNfsFileShareRequest * CreateNFSFileShareInput * @return Result of the CreateNFSFileShare 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.CreateNFSFileShare * @see AWS API Documentation */ @Override public CreateNfsFileShareResponse createNFSFileShare(CreateNfsFileShareRequest createNfsFileShareRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, CreateNfsFileShareResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createNfsFileShareRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateNFSFileShare"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateNFSFileShare").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createNfsFileShareRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateNfsFileShareRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

      * Creates a Server Message Block (SMB) file share on an existing S3 File Gateway. In Storage Gateway, a file share * is a file system mount point backed by Amazon S3 cloud storage. Storage Gateway exposes file shares using an SMB * interface. This operation is only supported for S3 File Gateways. *

      * *

      * S3 File Gateways require Security Token Service (Amazon Web Services STS) to be activated to enable you to create * a file share. Make sure that Amazon Web Services STS is activated in the Amazon Web Services Region you are * creating your S3 File Gateway in. If Amazon Web Services STS is not activated in this Amazon Web Services Region, * activate it. For information about how to activate Amazon Web Services STS, see Activating and * deactivating Amazon Web Services STS in an Amazon Web Services Region in the Identity and Access * Management User Guide. *

      *

      * File gateways don't support creating hard or symbolic links on a file share. *

      *
      * * @param createSmbFileShareRequest * CreateSMBFileShareInput * @return Result of the CreateSMBFileShare 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.CreateSMBFileShare * @see AWS API Documentation */ @Override public CreateSmbFileShareResponse createSMBFileShare(CreateSmbFileShareRequest createSmbFileShareRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, CreateSmbFileShareResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createSmbFileShareRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateSMBFileShare"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateSMBFileShare").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createSmbFileShareRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateSmbFileShareRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

      * Initiates a snapshot of a volume. *

      *

      * Storage Gateway provides the ability to back up point-in-time snapshots of your data to Amazon Simple Storage * (Amazon S3) for durable off-site recovery, and also 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 an ad hoc snapshot. For more information, see Editing a snapshot schedule. *

      *

      * In the CreateSnapshot request, you identify the volume by providing its Amazon Resource Name (ARN). * You must also provide description for the snapshot. When Storage Gateway takes the snapshot of specified volume, * the snapshot and description appears in the Storage Gateway console. In response, 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. This operation is only supported in stored and cached volume gateway type. *

      * *

      * To list or delete a snapshot, you must use the Amazon EC2 API. For more information, see DescribeSnapshots or * DeleteSnapshot in * the Amazon Elastic Compute Cloud 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. * @throws ServiceUnavailableErrorException * An internal server error has occurred because the service is unavailable. For more information, see the * error and message fields. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.CreateSnapshot * @see AWS * API Documentation */ @Override public CreateSnapshotResponse createSnapshot(CreateSnapshotRequest createSnapshotRequest) throws InvalidGatewayRequestException, InternalServerErrorException, ServiceUnavailableErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, CreateSnapshotResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createSnapshotRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateSnapshot"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateSnapshot").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createSnapshotRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateSnapshotRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

        * Initiates a snapshot of a gateway from a volume recovery point. This operation is only supported in the cached * volume gateway type. *

        *

        * 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 cached volume gateway, 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 the gateway takes a * snapshot of the specified volume, the snapshot and its description appear in the Storage Gateway console. In * response, the 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 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. * @throws ServiceUnavailableErrorException * An internal server error has occurred because the service is unavailable. For more information, see the * error and message fields. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.CreateSnapshotFromVolumeRecoveryPoint * @see AWS API Documentation */ @Override public CreateSnapshotFromVolumeRecoveryPointResponse createSnapshotFromVolumeRecoveryPoint( CreateSnapshotFromVolumeRecoveryPointRequest createSnapshotFromVolumeRecoveryPointRequest) throws InvalidGatewayRequestException, InternalServerErrorException, ServiceUnavailableErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(operationMetadata, CreateSnapshotFromVolumeRecoveryPointResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createSnapshotFromVolumeRecoveryPointRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateSnapshotFromVolumeRecoveryPoint"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateSnapshotFromVolumeRecoveryPoint").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler) .withInput(createSnapshotFromVolumeRecoveryPointRequest).withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateSnapshotFromVolumeRecoveryPointRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

        * Creates a volume on a specified gateway. This operation is only supported in the stored volume gateway type. *

        *

        * 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, the 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.CreateStorediSCSIVolume * @see AWS API Documentation */ @Override public CreateStorediScsiVolumeResponse createStorediSCSIVolume(CreateStorediScsiVolumeRequest createStorediScsiVolumeRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, CreateStorediScsiVolumeResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createStorediScsiVolumeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateStorediSCSIVolume"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateStorediSCSIVolume").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createStorediScsiVolumeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateStorediScsiVolumeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Creates a new custom tape pool. You can use custom tape pool to enable tape retention lock on tapes that are * archived in the custom pool. *

          * * @param createTapePoolRequest * @return Result of the CreateTapePool 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.CreateTapePool * @see AWS * API Documentation */ @Override public CreateTapePoolResponse createTapePool(CreateTapePoolRequest createTapePoolRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, CreateTapePoolResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createTapePoolRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateTapePool"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateTapePool").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createTapePoolRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateTapePoolRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Creates a virtual tape by using your own barcode. You write data to the virtual tape and then archive the tape. A * barcode is unique and cannot be reused if it has already been used on a tape. This applies to barcodes used on * deleted tapes. This operation is only supported in the tape gateway type. *

          * *

          * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.CreateTapeWithBarcode * @see AWS API Documentation */ @Override public CreateTapeWithBarcodeResponse createTapeWithBarcode(CreateTapeWithBarcodeRequest createTapeWithBarcodeRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, CreateTapeWithBarcodeResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createTapeWithBarcodeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateTapeWithBarcode"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateTapeWithBarcode").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createTapeWithBarcodeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateTapeWithBarcodeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Creates one or more virtual tapes. You write data to the virtual tapes and then archive the tapes. This operation * is only supported in the tape gateway type. *

          * *

          * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.CreateTapes * @see AWS * API Documentation */ @Override public CreateTapesResponse createTapes(CreateTapesRequest createTapesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, CreateTapesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createTapesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateTapes"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateTapes").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createTapesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateTapesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Deletes the automatic tape creation policy of a gateway. If you delete this policy, new virtual tapes must be * created manually. Use the Amazon Resource Name (ARN) of the gateway in your request to remove the policy. *

          * * @param deleteAutomaticTapeCreationPolicyRequest * @return Result of the DeleteAutomaticTapeCreationPolicy 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DeleteAutomaticTapeCreationPolicy * @see AWS API Documentation */ @Override public DeleteAutomaticTapeCreationPolicyResponse deleteAutomaticTapeCreationPolicy( DeleteAutomaticTapeCreationPolicyRequest deleteAutomaticTapeCreationPolicyRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DeleteAutomaticTapeCreationPolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteAutomaticTapeCreationPolicyRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteAutomaticTapeCreationPolicy"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteAutomaticTapeCreationPolicy").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteAutomaticTapeCreationPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteAutomaticTapeCreationPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * 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. This * operation is supported for the stored volume, cached volume and tape gateway types. *

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

          *
            *
          • *

            * DeleteBandwidthRateLimitInput$BandwidthType *

            *
          • * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DeleteBandwidthRateLimit * @see AWS API Documentation */ @Override public DeleteBandwidthRateLimitResponse deleteBandwidthRateLimit( DeleteBandwidthRateLimitRequest deleteBandwidthRateLimitRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DeleteBandwidthRateLimitResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteBandwidthRateLimitRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteBandwidthRateLimit"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteBandwidthRateLimit").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteBandwidthRateLimitRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteBandwidthRateLimitRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

            * Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target and initiator * pair. This operation is supported in volume and tape gateway types. *

            * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DeleteChapCredentials * @see AWS API Documentation */ @Override public DeleteChapCredentialsResponse deleteChapCredentials(DeleteChapCredentialsRequest deleteChapCredentialsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DeleteChapCredentialsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteChapCredentialsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteChapCredentials"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteChapCredentials").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteChapCredentialsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteChapCredentialsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Deletes a file share from an S3 File Gateway. This operation is only supported for S3 File Gateways. *

              * * @param deleteFileShareRequest * DeleteFileShareInput * @return Result of the DeleteFileShare 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DeleteFileShare * @see AWS API Documentation */ @Override public DeleteFileShareResponse deleteFileShare(DeleteFileShareRequest deleteFileShareRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DeleteFileShareResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteFileShareRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteFileShare"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteFileShare").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteFileShareRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteFileShareRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * 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 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DeleteGateway * @see AWS * API Documentation */ @Override public DeleteGatewayResponse deleteGateway(DeleteGatewayRequest deleteGatewayRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DeleteGatewayResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteGatewayRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteGateway"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteGateway").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteGatewayRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteGatewayRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * 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 Backing up your * volumes. In the DeleteSnapshotSchedule request, you identify the volume by providing its Amazon * Resource Name (ARN). This operation is only supported in stored and cached volume gateway types. *

              * *

              * To list or delete a snapshot, you must use the Amazon EC2 API. For more information, go to DescribeSnapshots in * the 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DeleteSnapshotSchedule * @see AWS API Documentation */ @Override public DeleteSnapshotScheduleResponse deleteSnapshotSchedule(DeleteSnapshotScheduleRequest deleteSnapshotScheduleRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DeleteSnapshotScheduleResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteSnapshotScheduleRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteSnapshotSchedule"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteSnapshotSchedule").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteSnapshotScheduleRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteSnapshotScheduleRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Deletes the specified virtual tape. This operation is only supported in the tape gateway type. *

              * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DeleteTape * @see AWS API * Documentation */ @Override public DeleteTapeResponse deleteTape(DeleteTapeRequest deleteTapeRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DeleteTapeResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteTapeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteTape"); return clientHandler .execute(new ClientExecutionParams().withOperationName("DeleteTape") .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withInput(deleteTapeRequest).withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteTapeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Deletes the specified virtual tape from the virtual tape shelf (VTS). This operation is only supported in the * tape gateway type. *

              * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DeleteTapeArchive * @see AWS API Documentation */ @Override public DeleteTapeArchiveResponse deleteTapeArchive(DeleteTapeArchiveRequest deleteTapeArchiveRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DeleteTapeArchiveResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteTapeArchiveRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteTapeArchive"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteTapeArchive").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteTapeArchiveRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteTapeArchiveRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Delete a custom tape pool. A custom tape pool can only be deleted if there are no tapes in the pool and if there * are no automatic tape creation policies that reference the custom tape pool. *

              * * @param deleteTapePoolRequest * @return Result of the DeleteTapePool 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DeleteTapePool * @see AWS * API Documentation */ @Override public DeleteTapePoolResponse deleteTapePool(DeleteTapePoolRequest deleteTapePoolRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DeleteTapePoolResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteTapePoolRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteTapePool"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteTapePool").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteTapePoolRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteTapePoolRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Deletes the specified storage volume that you previously created using the CreateCachediSCSIVolume or * CreateStorediSCSIVolume API. This operation is only supported in the cached volume and stored volume * types. For stored volume gateways, 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 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DeleteVolume * @see AWS * API Documentation */ @Override public DeleteVolumeResponse deleteVolume(DeleteVolumeRequest deleteVolumeRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DeleteVolumeResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteVolumeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteVolume"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteVolume").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteVolumeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteVolumeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Returns information about the most recent high availability monitoring test that was performed on the host in a * cluster. If a test isn't performed, the status and start time in the response would be null. *

              * * @param describeAvailabilityMonitorTestRequest * @return Result of the DescribeAvailabilityMonitorTest 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeAvailabilityMonitorTest * @see AWS API Documentation */ @Override public DescribeAvailabilityMonitorTestResponse describeAvailabilityMonitorTest( DescribeAvailabilityMonitorTestRequest describeAvailabilityMonitorTestRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeAvailabilityMonitorTestResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeAvailabilityMonitorTestRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeAvailabilityMonitorTest"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeAvailabilityMonitorTest").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeAvailabilityMonitorTestRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeAvailabilityMonitorTestRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * 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 is supported for the stored volume, cached volume, and tape gateway * types. *

              *

              * 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 Amazon Resource Name (ARN) 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeBandwidthRateLimit * @see AWS API Documentation */ @Override public DescribeBandwidthRateLimitResponse describeBandwidthRateLimit( DescribeBandwidthRateLimitRequest describeBandwidthRateLimitRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeBandwidthRateLimitResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeBandwidthRateLimitRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeBandwidthRateLimit"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeBandwidthRateLimit").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeBandwidthRateLimitRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeBandwidthRateLimitRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Returns information about the bandwidth rate limit schedule of a gateway. By default, gateways do not have * bandwidth rate limit schedules, which means no bandwidth rate limiting is in effect. This operation is supported * only in the volume and tape gateway types. *

              *

              * This operation returns information about a gateway's bandwidth rate limit schedule. A bandwidth rate limit * schedule consists of one or more bandwidth rate limit intervals. A bandwidth rate limit interval defines a period * of time on one or more days of the week, during which bandwidth rate limits are specified for uploading, * downloading, or both. *

              *

              * A bandwidth rate limit interval consists of one or more days of the week, a start hour and minute, an ending hour * and minute, and bandwidth rate limits for uploading and downloading *

              *

              * If no bandwidth rate limit schedule intervals are set for the gateway, this operation returns an empty response. * To specify which gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request. *

              * * @param describeBandwidthRateLimitScheduleRequest * @return Result of the DescribeBandwidthRateLimitSchedule 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeBandwidthRateLimitSchedule * @see AWS API Documentation */ @Override public DescribeBandwidthRateLimitScheduleResponse describeBandwidthRateLimitSchedule( DescribeBandwidthRateLimitScheduleRequest describeBandwidthRateLimitScheduleRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeBandwidthRateLimitScheduleResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeBandwidthRateLimitScheduleRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeBandwidthRateLimitSchedule"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeBandwidthRateLimitSchedule").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeBandwidthRateLimitScheduleRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeBandwidthRateLimitScheduleRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Returns information about the cache of a gateway. This operation is only supported in the cached volume, tape, * and file gateway types. *

              *

              * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeCache * @see AWS * API Documentation */ @Override public DescribeCacheResponse describeCache(DescribeCacheRequest describeCacheRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DescribeCacheResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeCacheRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeCache"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeCache").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeCacheRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeCacheRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

              *

              * The list of gateway volumes in the request must be from one gateway. In the response, 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeCachediSCSIVolumes * @see AWS API Documentation */ @Override public DescribeCachediScsiVolumesResponse describeCachediSCSIVolumes( DescribeCachediScsiVolumesRequest describeCachediScsiVolumesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeCachediScsiVolumesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeCachediScsiVolumesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeCachediSCSIVolumes"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeCachediSCSIVolumes").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeCachediScsiVolumesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeCachediScsiVolumesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Returns an array of Challenge-Handshake Authentication Protocol (CHAP) credentials information for a specified * iSCSI target, one for each target-initiator pair. This operation is supported in the volume and tape gateway * types. *

              * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeChapCredentials * @see AWS API Documentation */ @Override public DescribeChapCredentialsResponse describeChapCredentials(DescribeChapCredentialsRequest describeChapCredentialsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeChapCredentialsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeChapCredentialsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeChapCredentials"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeChapCredentials").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeChapCredentialsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeChapCredentialsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Gets the file system association information. This operation is only supported for FSx File Gateways. *

              * * @param describeFileSystemAssociationsRequest * @return Result of the DescribeFileSystemAssociations 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeFileSystemAssociations * @see AWS API Documentation */ @Override public DescribeFileSystemAssociationsResponse describeFileSystemAssociations( DescribeFileSystemAssociationsRequest describeFileSystemAssociationsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeFileSystemAssociationsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeFileSystemAssociationsRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeFileSystemAssociations"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeFileSystemAssociations").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeFileSystemAssociationsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeFileSystemAssociationsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeGatewayInformation * @see AWS API Documentation */ @Override public DescribeGatewayInformationResponse describeGatewayInformation( DescribeGatewayInformationRequest describeGatewayInformationRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeGatewayInformationResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeGatewayInformationRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeGatewayInformation"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeGatewayInformation").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeGatewayInformationRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeGatewayInformationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * 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 Amazon Resource Name (ARN) 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeMaintenanceStartTime * @see AWS API Documentation */ @Override public DescribeMaintenanceStartTimeResponse describeMaintenanceStartTime( DescribeMaintenanceStartTimeRequest describeMaintenanceStartTimeRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeMaintenanceStartTimeResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeMaintenanceStartTimeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeMaintenanceStartTime"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeMaintenanceStartTime").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeMaintenanceStartTimeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeMaintenanceStartTimeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Gets a description for one or more Network File System (NFS) file shares from an S3 File Gateway. This operation * is only supported for S3 File Gateways. *

              * * @param describeNfsFileSharesRequest * DescribeNFSFileSharesInput * @return Result of the DescribeNFSFileShares 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeNFSFileShares * @see AWS API Documentation */ @Override public DescribeNfsFileSharesResponse describeNFSFileShares(DescribeNfsFileSharesRequest describeNfsFileSharesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeNfsFileSharesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeNfsFileSharesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeNFSFileShares"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeNFSFileShares").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeNfsFileSharesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeNfsFileSharesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Gets a description for one or more Server Message Block (SMB) file shares from a S3 File Gateway. This operation * is only supported for S3 File Gateways. *

              * * @param describeSmbFileSharesRequest * DescribeSMBFileSharesInput * @return Result of the DescribeSMBFileShares 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeSMBFileShares * @see AWS API Documentation */ @Override public DescribeSmbFileSharesResponse describeSMBFileShares(DescribeSmbFileSharesRequest describeSmbFileSharesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeSmbFileSharesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeSmbFileSharesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeSMBFileShares"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeSMBFileShares").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeSmbFileSharesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeSmbFileSharesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Gets a description of a Server Message Block (SMB) file share settings from a file gateway. This operation is * only supported for file gateways. *

              * * @param describeSmbSettingsRequest * @return Result of the DescribeSMBSettings 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeSMBSettings * @see AWS API Documentation */ @Override public DescribeSmbSettingsResponse describeSMBSettings(DescribeSmbSettingsRequest describeSmbSettingsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeSmbSettingsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeSmbSettingsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeSMBSettings"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeSMBSettings").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeSmbSettingsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeSmbSettingsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Describes the snapshot schedule for the specified gateway volume. The snapshot schedule information includes * intervals at which snapshots are automatically initiated on the volume. This operation is only supported in the * cached volume and stored volume types. *

              * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeSnapshotSchedule * @see AWS API Documentation */ @Override public DescribeSnapshotScheduleResponse describeSnapshotSchedule( DescribeSnapshotScheduleRequest describeSnapshotScheduleRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeSnapshotScheduleResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeSnapshotScheduleRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeSnapshotSchedule"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeSnapshotSchedule").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeSnapshotScheduleRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeSnapshotScheduleRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * 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, Storage Gateway returns volume information sorted by volume * ARNs. This operation is only supported in stored volume gateway type. *

              * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeStorediSCSIVolumes * @see AWS API Documentation */ @Override public DescribeStorediScsiVolumesResponse describeStorediSCSIVolumes( DescribeStorediScsiVolumesRequest describeStorediScsiVolumesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeStorediScsiVolumesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeStorediScsiVolumesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeStorediSCSIVolumes"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStorediSCSIVolumes").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeStorediScsiVolumesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeStorediScsiVolumesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Returns a description of specified virtual tapes in the virtual tape shelf (VTS). This operation is only * supported in the tape gateway type. *

              *

              * If a specific TapeARN is not specified, 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeTapeArchives * @see AWS API Documentation */ @Override public DescribeTapeArchivesResponse describeTapeArchives(DescribeTapeArchivesRequest describeTapeArchivesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeTapeArchivesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeTapeArchivesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeTapeArchives"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeTapeArchives").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeTapeArchivesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeTapeArchivesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Returns a description of specified virtual tapes in the virtual tape shelf (VTS). This operation is only * supported in the tape gateway type. *

              *

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

              *
              *

              * This is a variant of * {@link #describeTapeArchives(software.amazon.awssdk.services.storagegateway.model.DescribeTapeArchivesRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

              *

              * When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

              * *

              * The following are few ways to iterate through the response pages: *

              * 1) Using a Stream * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.DescribeTapeArchivesIterable responses = client.describeTapeArchivesPaginator(request);
                   * responses.stream().forEach(....);
                   * }
                   * 
              * * 2) Using For loop * *
                   * {
                   *     @code
                   *     software.amazon.awssdk.services.storagegateway.paginators.DescribeTapeArchivesIterable responses = client
                   *             .describeTapeArchivesPaginator(request);
                   *     for (software.amazon.awssdk.services.storagegateway.model.DescribeTapeArchivesResponse response : responses) {
                   *         // do something;
                   *     }
                   * }
                   * 
              * * 3) Use iterator directly * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.DescribeTapeArchivesIterable responses = client.describeTapeArchivesPaginator(request);
                   * responses.iterator().forEachRemaining(....);
                   * }
                   * 
              *

              * Please notice that the configuration of Limit won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

              *

              * Note: If you prefer to have control on service calls, use the * {@link #describeTapeArchives(software.amazon.awssdk.services.storagegateway.model.DescribeTapeArchivesRequest)} * operation. *

              * * @param describeTapeArchivesRequest * DescribeTapeArchivesInput * @return A custom iterable that can be used to iterate through all the response pages. * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeTapeArchives * @see AWS API Documentation */ @Override public DescribeTapeArchivesIterable describeTapeArchivesPaginator(DescribeTapeArchivesRequest describeTapeArchivesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { return new DescribeTapeArchivesIterable(this, applyPaginatorUserAgent(describeTapeArchivesRequest)); } /** *

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

              *

              * 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. * This operation is only supported in the tape gateway type. *

              * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeTapeRecoveryPoints * @see AWS API Documentation */ @Override public DescribeTapeRecoveryPointsResponse describeTapeRecoveryPoints( DescribeTapeRecoveryPointsRequest describeTapeRecoveryPointsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeTapeRecoveryPointsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeTapeRecoveryPointsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeTapeRecoveryPoints"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeTapeRecoveryPoints").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeTapeRecoveryPointsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeTapeRecoveryPointsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

              *

              * 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. * This operation is only supported in the tape gateway type. *

              *
              *

              * This is a variant of * {@link #describeTapeRecoveryPoints(software.amazon.awssdk.services.storagegateway.model.DescribeTapeRecoveryPointsRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

              *

              * When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

              * *

              * The following are few ways to iterate through the response pages: *

              * 1) Using a Stream * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.DescribeTapeRecoveryPointsIterable responses = client.describeTapeRecoveryPointsPaginator(request);
                   * responses.stream().forEach(....);
                   * }
                   * 
              * * 2) Using For loop * *
                   * {
                   *     @code
                   *     software.amazon.awssdk.services.storagegateway.paginators.DescribeTapeRecoveryPointsIterable responses = client
                   *             .describeTapeRecoveryPointsPaginator(request);
                   *     for (software.amazon.awssdk.services.storagegateway.model.DescribeTapeRecoveryPointsResponse response : responses) {
                   *         // do something;
                   *     }
                   * }
                   * 
              * * 3) Use iterator directly * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.DescribeTapeRecoveryPointsIterable responses = client.describeTapeRecoveryPointsPaginator(request);
                   * responses.iterator().forEachRemaining(....);
                   * }
                   * 
              *

              * Please notice that the configuration of Limit won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

              *

              * Note: If you prefer to have control on service calls, use the * {@link #describeTapeRecoveryPoints(software.amazon.awssdk.services.storagegateway.model.DescribeTapeRecoveryPointsRequest)} * operation. *

              * * @param describeTapeRecoveryPointsRequest * DescribeTapeRecoveryPointsInput * @return A custom iterable that can be used to iterate through all the response pages. * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeTapeRecoveryPoints * @see AWS API Documentation */ @Override public DescribeTapeRecoveryPointsIterable describeTapeRecoveryPointsPaginator( DescribeTapeRecoveryPointsRequest describeTapeRecoveryPointsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { return new DescribeTapeRecoveryPointsIterable(this, applyPaginatorUserAgent(describeTapeRecoveryPointsRequest)); } /** *

              * 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. This operation * is only supported in the tape gateway type. *

              * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeTapes * @see AWS * API Documentation */ @Override public DescribeTapesResponse describeTapes(DescribeTapesRequest describeTapesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DescribeTapesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeTapesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeTapes"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeTapes").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeTapesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeTapesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * 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. This operation * is only supported in the tape gateway type. *

              *
              *

              * This is a variant of * {@link #describeTapes(software.amazon.awssdk.services.storagegateway.model.DescribeTapesRequest)} operation. The * return type is a custom iterable that can be used to iterate through all the pages. SDK will internally handle * making service calls for you. *

              *

              * When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

              * *

              * The following are few ways to iterate through the response pages: *

              * 1) Using a Stream * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.DescribeTapesIterable responses = client.describeTapesPaginator(request);
                   * responses.stream().forEach(....);
                   * }
                   * 
              * * 2) Using For loop * *
                   * {
                   *     @code
                   *     software.amazon.awssdk.services.storagegateway.paginators.DescribeTapesIterable responses = client
                   *             .describeTapesPaginator(request);
                   *     for (software.amazon.awssdk.services.storagegateway.model.DescribeTapesResponse response : responses) {
                   *         // do something;
                   *     }
                   * }
                   * 
              * * 3) Use iterator directly * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.DescribeTapesIterable responses = client.describeTapesPaginator(request);
                   * responses.iterator().forEachRemaining(....);
                   * }
                   * 
              *

              * Please notice that the configuration of Limit won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

              *

              * Note: If you prefer to have control on service calls, use the * {@link #describeTapes(software.amazon.awssdk.services.storagegateway.model.DescribeTapesRequest)} operation. *

              * * @param describeTapesRequest * DescribeTapesInput * @return A custom iterable that can be used to iterate through all the response pages. * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeTapes * @see AWS * API Documentation */ @Override public DescribeTapesIterable describeTapesPaginator(DescribeTapesRequest describeTapesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { return new DescribeTapesIterable(this, applyPaginatorUserAgent(describeTapesRequest)); } /** *

              * Returns information about the upload buffer of a gateway. This operation is supported for the stored volume, * cached volume, and tape gateway types. *

              *

              * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeUploadBuffer * @see AWS API Documentation */ @Override public DescribeUploadBufferResponse describeUploadBuffer(DescribeUploadBufferRequest describeUploadBufferRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeUploadBufferResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeUploadBufferRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeUploadBuffer"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeUploadBuffer").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeUploadBufferRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeUploadBufferRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

              *

              * This operation is only supported in the tape gateway type. *

              * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeVTLDevices * @see AWS API Documentation */ @Override public DescribeVtlDevicesResponse describeVTLDevices(DescribeVtlDevicesRequest describeVtlDevicesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeVtlDevicesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeVtlDevicesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeVTLDevices"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeVTLDevices").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeVtlDevicesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeVtlDevicesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

              *

              * This operation is only supported in the tape gateway type. *

              *
              *

              * This is a variant of * {@link #describeVTLDevices(software.amazon.awssdk.services.storagegateway.model.DescribeVtlDevicesRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

              *

              * When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

              * *

              * The following are few ways to iterate through the response pages: *

              * 1) Using a Stream * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.DescribeVTLDevicesIterable responses = client.describeVTLDevicesPaginator(request);
                   * responses.stream().forEach(....);
                   * }
                   * 
              * * 2) Using For loop * *
                   * {
                   *     @code
                   *     software.amazon.awssdk.services.storagegateway.paginators.DescribeVTLDevicesIterable responses = client
                   *             .describeVTLDevicesPaginator(request);
                   *     for (software.amazon.awssdk.services.storagegateway.model.DescribeVtlDevicesResponse response : responses) {
                   *         // do something;
                   *     }
                   * }
                   * 
              * * 3) Use iterator directly * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.DescribeVTLDevicesIterable responses = client.describeVTLDevicesPaginator(request);
                   * responses.iterator().forEachRemaining(....);
                   * }
                   * 
              *

              * Please notice that the configuration of Limit won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

              *

              * Note: If you prefer to have control on service calls, use the * {@link #describeVTLDevices(software.amazon.awssdk.services.storagegateway.model.DescribeVtlDevicesRequest)} * operation. *

              * * @param describeVtlDevicesRequest * DescribeVTLDevicesInput * @return A custom iterable that can be used to iterate through all the response pages. * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeVTLDevices * @see AWS API Documentation */ @Override public DescribeVTLDevicesIterable describeVTLDevicesPaginator(DescribeVtlDevicesRequest describeVtlDevicesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { return new DescribeVTLDevicesIterable(this, applyPaginatorUserAgent(describeVtlDevicesRequest)); } /** *

              * Returns information about the working storage of a gateway. This operation is only supported in the stored * volumes gateway type. 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 Amazon Resource Name (ARN) 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DescribeWorkingStorage * @see AWS API Documentation */ @Override public DescribeWorkingStorageResponse describeWorkingStorage(DescribeWorkingStorageRequest describeWorkingStorageRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeWorkingStorageResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeWorkingStorageRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeWorkingStorage"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeWorkingStorage").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeWorkingStorageRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeWorkingStorageRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Disconnects a volume from an iSCSI connection and then detaches the volume from the specified gateway. Detaching * and attaching a volume enables you to recover your data from one gateway to a different gateway without creating * a snapshot. It also makes it easier to move your volumes from an on-premises gateway to a gateway hosted on an * Amazon EC2 instance. This operation is only supported in the volume gateway type. *

              * * @param detachVolumeRequest * AttachVolumeInput * @return Result of the DetachVolume 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DetachVolume * @see AWS * API Documentation */ @Override public DetachVolumeResponse detachVolume(DetachVolumeRequest detachVolumeRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DetachVolumeResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, detachVolumeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DetachVolume"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DetachVolume").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(detachVolumeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DetachVolumeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Disables a tape 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 tape gateway that is not reachable or not functioning. This operation is only supported * in the tape gateway type. *

              * *

              * After 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DisableGateway * @see AWS * API Documentation */ @Override public DisableGatewayResponse disableGateway(DisableGatewayRequest disableGatewayRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DisableGatewayResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, disableGatewayRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DisableGateway"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DisableGateway").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(disableGatewayRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DisableGatewayRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Disassociates an Amazon FSx file system from the specified gateway. After the disassociation process finishes, * the gateway can no longer access the Amazon FSx file system. This operation is only supported in the FSx File * Gateway type. *

              * * @param disassociateFileSystemRequest * @return Result of the DisassociateFileSystem 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.DisassociateFileSystem * @see AWS API Documentation */ @Override public DisassociateFileSystemResponse disassociateFileSystem(DisassociateFileSystemRequest disassociateFileSystemRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DisassociateFileSystemResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, disassociateFileSystemRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DisassociateFileSystem"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DisassociateFileSystem").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(disassociateFileSystemRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DisassociateFileSystemRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Adds a file gateway to an Active Directory domain. This operation is only supported for file gateways that * support the SMB file protocol. *

              * * @param joinDomainRequest * JoinDomainInput * @return Result of the JoinDomain 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.JoinDomain * @see AWS API * Documentation */ @Override public JoinDomainResponse joinDomain(JoinDomainRequest joinDomainRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, JoinDomainResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, joinDomainRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "JoinDomain"); return clientHandler .execute(new ClientExecutionParams().withOperationName("JoinDomain") .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withInput(joinDomainRequest).withMetricCollector(apiCallMetricCollector) .withMarshaller(new JoinDomainRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Lists the automatic tape creation policies for a gateway. If there are no automatic tape creation policies for * the gateway, it returns an empty list. *

              *

              * This operation is only supported for tape gateways. *

              * * @param listAutomaticTapeCreationPoliciesRequest * @return Result of the ListAutomaticTapeCreationPolicies 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListAutomaticTapeCreationPolicies * @see AWS API Documentation */ @Override public ListAutomaticTapeCreationPoliciesResponse listAutomaticTapeCreationPolicies( ListAutomaticTapeCreationPoliciesRequest listAutomaticTapeCreationPoliciesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, ListAutomaticTapeCreationPoliciesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listAutomaticTapeCreationPoliciesRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListAutomaticTapeCreationPolicies"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListAutomaticTapeCreationPolicies").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listAutomaticTapeCreationPoliciesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListAutomaticTapeCreationPoliciesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Gets a list of the file shares for a specific S3 File Gateway, or the list of file shares that belong to the * calling user account. This operation is only supported for S3 File Gateways. *

              * * @param listFileSharesRequest * ListFileShareInput * @return Result of the ListFileShares 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListFileShares * @see AWS * API Documentation */ @Override public ListFileSharesResponse listFileShares(ListFileSharesRequest listFileSharesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, ListFileSharesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listFileSharesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListFileShares"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListFileShares").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listFileSharesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListFileSharesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Gets a list of the file shares for a specific S3 File Gateway, or the list of file shares that belong to the * calling user account. This operation is only supported for S3 File Gateways. *

              *
              *

              * This is a variant of * {@link #listFileShares(software.amazon.awssdk.services.storagegateway.model.ListFileSharesRequest)} operation. * The return type is a custom iterable that can be used to iterate through all the pages. SDK will internally * handle making service calls for you. *

              *

              * When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

              * *

              * The following are few ways to iterate through the response pages: *

              * 1) Using a Stream * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.ListFileSharesIterable responses = client.listFileSharesPaginator(request);
                   * responses.stream().forEach(....);
                   * }
                   * 
              * * 2) Using For loop * *
                   * {
                   *     @code
                   *     software.amazon.awssdk.services.storagegateway.paginators.ListFileSharesIterable responses = client
                   *             .listFileSharesPaginator(request);
                   *     for (software.amazon.awssdk.services.storagegateway.model.ListFileSharesResponse response : responses) {
                   *         // do something;
                   *     }
                   * }
                   * 
              * * 3) Use iterator directly * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.ListFileSharesIterable responses = client.listFileSharesPaginator(request);
                   * responses.iterator().forEachRemaining(....);
                   * }
                   * 
              *

              * Please notice that the configuration of Limit won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

              *

              * Note: If you prefer to have control on service calls, use the * {@link #listFileShares(software.amazon.awssdk.services.storagegateway.model.ListFileSharesRequest)} * operation. *

              * * @param listFileSharesRequest * ListFileShareInput * @return A custom iterable that can be used to iterate through all the response pages. * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListFileShares * @see AWS * API Documentation */ @Override public ListFileSharesIterable listFileSharesPaginator(ListFileSharesRequest listFileSharesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { return new ListFileSharesIterable(this, applyPaginatorUserAgent(listFileSharesRequest)); } /** *

              * Gets a list of FileSystemAssociationSummary objects. Each object contains a summary of a file system * association. This operation is only supported for FSx File Gateways. *

              * * @param listFileSystemAssociationsRequest * @return Result of the ListFileSystemAssociations 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListFileSystemAssociations * @see AWS API Documentation */ @Override public ListFileSystemAssociationsResponse listFileSystemAssociations( ListFileSystemAssociationsRequest listFileSystemAssociationsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, ListFileSystemAssociationsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listFileSystemAssociationsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListFileSystemAssociations"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListFileSystemAssociations").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listFileSystemAssociationsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListFileSystemAssociationsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

              * Gets a list of FileSystemAssociationSummary objects. Each object contains a summary of a file system * association. This operation is only supported for FSx File Gateways. *

              *
              *

              * This is a variant of * {@link #listFileSystemAssociations(software.amazon.awssdk.services.storagegateway.model.ListFileSystemAssociationsRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

              *

              * When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

              * *

              * The following are few ways to iterate through the response pages: *

              * 1) Using a Stream * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.ListFileSystemAssociationsIterable responses = client.listFileSystemAssociationsPaginator(request);
                   * responses.stream().forEach(....);
                   * }
                   * 
              * * 2) Using For loop * *
                   * {
                   *     @code
                   *     software.amazon.awssdk.services.storagegateway.paginators.ListFileSystemAssociationsIterable responses = client
                   *             .listFileSystemAssociationsPaginator(request);
                   *     for (software.amazon.awssdk.services.storagegateway.model.ListFileSystemAssociationsResponse response : responses) {
                   *         // do something;
                   *     }
                   * }
                   * 
              * * 3) Use iterator directly * *
                   * {@code
                   * software.amazon.awssdk.services.storagegateway.paginators.ListFileSystemAssociationsIterable responses = client.listFileSystemAssociationsPaginator(request);
                   * responses.iterator().forEachRemaining(....);
                   * }
                   * 
              *

              * Please notice that the configuration of Limit won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

              *

              * Note: If you prefer to have control on service calls, use the * {@link #listFileSystemAssociations(software.amazon.awssdk.services.storagegateway.model.ListFileSystemAssociationsRequest)} * operation. *

              * * @param listFileSystemAssociationsRequest * @return A custom iterable that can be used to iterate through all the response pages. * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListFileSystemAssociations * @see AWS API Documentation */ @Override public ListFileSystemAssociationsIterable listFileSystemAssociationsPaginator( ListFileSystemAssociationsRequest listFileSystemAssociationsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { return new ListFileSystemAssociationsIterable(this, applyPaginatorUserAgent(listFileSystemAssociationsRequest)); } /** *

              * Lists gateways owned by an Amazon Web Services account in an Amazon Web Services 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListGateways * @see AWS * API Documentation */ @Override public ListGatewaysResponse listGateways(ListGatewaysRequest listGatewaysRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, ListGatewaysResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listGatewaysRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListGateways"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListGateways").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listGatewaysRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListGatewaysRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                * Lists gateways owned by an Amazon Web Services account in an Amazon Web Services 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. *

                *
                *

                * This is a variant of * {@link #listGateways(software.amazon.awssdk.services.storagegateway.model.ListGatewaysRequest)} operation. The * return type is a custom iterable that can be used to iterate through all the pages. SDK will internally handle * making service calls for you. *

                *

                * When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

                * *

                * The following are few ways to iterate through the response pages: *

                * 1) Using a Stream * *
                     * {@code
                     * software.amazon.awssdk.services.storagegateway.paginators.ListGatewaysIterable responses = client.listGatewaysPaginator(request);
                     * responses.stream().forEach(....);
                     * }
                     * 
                * * 2) Using For loop * *
                     * {
                     *     @code
                     *     software.amazon.awssdk.services.storagegateway.paginators.ListGatewaysIterable responses = client
                     *             .listGatewaysPaginator(request);
                     *     for (software.amazon.awssdk.services.storagegateway.model.ListGatewaysResponse response : responses) {
                     *         // do something;
                     *     }
                     * }
                     * 
                * * 3) Use iterator directly * *
                     * {@code
                     * software.amazon.awssdk.services.storagegateway.paginators.ListGatewaysIterable responses = client.listGatewaysPaginator(request);
                     * responses.iterator().forEachRemaining(....);
                     * }
                     * 
                *

                * Please notice that the configuration of Limit won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

                *

                * Note: If you prefer to have control on service calls, use the * {@link #listGateways(software.amazon.awssdk.services.storagegateway.model.ListGatewaysRequest)} operation. *

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

                *
                  *
                • *

                  * ListGatewaysInput$Limit *

                  *
                • *
                • *

                  * ListGatewaysInput$Marker *

                  *
                • * @return A custom iterable that can be used to iterate through all the response pages. * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListGateways * @see AWS * API Documentation */ @Override public ListGatewaysIterable listGatewaysPaginator(ListGatewaysRequest listGatewaysRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { return new ListGatewaysIterable(this, applyPaginatorUserAgent(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 Amazon Resource Name (ARN) 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListLocalDisks * @see AWS * API Documentation */ @Override public ListLocalDisksResponse listLocalDisks(ListLocalDisksRequest listLocalDisksRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, ListLocalDisksResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listLocalDisksRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListLocalDisks"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListLocalDisks").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listLocalDisksRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListLocalDisksRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                  * Lists the tags that have been added to the specified resource. This operation is supported in storage gateways of * all types. *

                  * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListTagsForResource * @see AWS API Documentation */ @Override public ListTagsForResourceResponse listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, ListTagsForResourceResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTagsForResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTagsForResource"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListTagsForResource").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listTagsForResourceRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListTagsForResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                  * Lists the tags that have been added to the specified resource. This operation is supported in storage gateways of * all types. *

                  *
                  *

                  * This is a variant of * {@link #listTagsForResource(software.amazon.awssdk.services.storagegateway.model.ListTagsForResourceRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

                  *

                  * When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

                  * *

                  * The following are few ways to iterate through the response pages: *

                  * 1) Using a Stream * *
                       * {@code
                       * software.amazon.awssdk.services.storagegateway.paginators.ListTagsForResourceIterable responses = client.listTagsForResourcePaginator(request);
                       * responses.stream().forEach(....);
                       * }
                       * 
                  * * 2) Using For loop * *
                       * {
                       *     @code
                       *     software.amazon.awssdk.services.storagegateway.paginators.ListTagsForResourceIterable responses = client
                       *             .listTagsForResourcePaginator(request);
                       *     for (software.amazon.awssdk.services.storagegateway.model.ListTagsForResourceResponse response : responses) {
                       *         // do something;
                       *     }
                       * }
                       * 
                  * * 3) Use iterator directly * *
                       * {@code
                       * software.amazon.awssdk.services.storagegateway.paginators.ListTagsForResourceIterable responses = client.listTagsForResourcePaginator(request);
                       * responses.iterator().forEachRemaining(....);
                       * }
                       * 
                  *

                  * Please notice that the configuration of Limit won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

                  *

                  * Note: If you prefer to have control on service calls, use the * {@link #listTagsForResource(software.amazon.awssdk.services.storagegateway.model.ListTagsForResourceRequest)} * operation. *

                  * * @param listTagsForResourceRequest * ListTagsForResourceInput * @return A custom iterable that can be used to iterate through all the response pages. * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListTagsForResource * @see AWS API Documentation */ @Override public ListTagsForResourceIterable listTagsForResourcePaginator(ListTagsForResourceRequest listTagsForResourceRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { return new ListTagsForResourceIterable(this, applyPaginatorUserAgent(listTagsForResourceRequest)); } /** *

                  * Lists custom tape pools. You specify custom tape pools to list by specifying one or more custom tape pool Amazon * Resource Names (ARNs). If you don't specify a custom tape pool ARN, the operation lists all custom tape pools. *

                  *

                  * This operation supports pagination. You can optionally specify the Limit parameter in the body to * limit the number of tape pools in the response. If the number of tape pools 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 tape pools. *

                  * * @param listTapePoolsRequest * @return Result of the ListTapePools 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListTapePools * @see AWS * API Documentation */ @Override public ListTapePoolsResponse listTapePools(ListTapePoolsRequest listTapePoolsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, ListTapePoolsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTapePoolsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTapePools"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListTapePools").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listTapePoolsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListTapePoolsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                  * Lists custom tape pools. You specify custom tape pools to list by specifying one or more custom tape pool Amazon * Resource Names (ARNs). If you don't specify a custom tape pool ARN, the operation lists all custom tape pools. *

                  *

                  * This operation supports pagination. You can optionally specify the Limit parameter in the body to * limit the number of tape pools in the response. If the number of tape pools 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 tape pools. *

                  *
                  *

                  * This is a variant of * {@link #listTapePools(software.amazon.awssdk.services.storagegateway.model.ListTapePoolsRequest)} operation. The * return type is a custom iterable that can be used to iterate through all the pages. SDK will internally handle * making service calls for you. *

                  *

                  * When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

                  * *

                  * The following are few ways to iterate through the response pages: *

                  * 1) Using a Stream * *
                       * {@code
                       * software.amazon.awssdk.services.storagegateway.paginators.ListTapePoolsIterable responses = client.listTapePoolsPaginator(request);
                       * responses.stream().forEach(....);
                       * }
                       * 
                  * * 2) Using For loop * *
                       * {
                       *     @code
                       *     software.amazon.awssdk.services.storagegateway.paginators.ListTapePoolsIterable responses = client
                       *             .listTapePoolsPaginator(request);
                       *     for (software.amazon.awssdk.services.storagegateway.model.ListTapePoolsResponse response : responses) {
                       *         // do something;
                       *     }
                       * }
                       * 
                  * * 3) Use iterator directly * *
                       * {@code
                       * software.amazon.awssdk.services.storagegateway.paginators.ListTapePoolsIterable responses = client.listTapePoolsPaginator(request);
                       * responses.iterator().forEachRemaining(....);
                       * }
                       * 
                  *

                  * Please notice that the configuration of Limit won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

                  *

                  * Note: If you prefer to have control on service calls, use the * {@link #listTapePools(software.amazon.awssdk.services.storagegateway.model.ListTapePoolsRequest)} operation. *

                  * * @param listTapePoolsRequest * @return A custom iterable that can be used to iterate through all the response pages. * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListTapePools * @see AWS * API Documentation */ @Override public ListTapePoolsIterable listTapePoolsPaginator(ListTapePoolsRequest listTapePoolsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { return new ListTapePoolsIterable(this, applyPaginatorUserAgent(listTapePoolsRequest)); } /** *

                  * 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. This operation is only supported * in the tape gateway type. *

                  * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListTapes * @see AWS API * Documentation */ @Override public ListTapesResponse listTapes(ListTapesRequest listTapesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, ListTapesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTapesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTapes"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListTapes").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listTapesRequest) .withMetricCollector(apiCallMetricCollector).withMarshaller(new ListTapesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                    * 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. This operation is only supported * in the tape gateway type. *

                    *
                    *

                    * This is a variant of {@link #listTapes(software.amazon.awssdk.services.storagegateway.model.ListTapesRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

                    *

                    * When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

                    * *

                    * The following are few ways to iterate through the response pages: *

                    * 1) Using a Stream * *
                         * {@code
                         * software.amazon.awssdk.services.storagegateway.paginators.ListTapesIterable responses = client.listTapesPaginator(request);
                         * responses.stream().forEach(....);
                         * }
                         * 
                    * * 2) Using For loop * *
                         * {
                         *     @code
                         *     software.amazon.awssdk.services.storagegateway.paginators.ListTapesIterable responses = client.listTapesPaginator(request);
                         *     for (software.amazon.awssdk.services.storagegateway.model.ListTapesResponse response : responses) {
                         *         // do something;
                         *     }
                         * }
                         * 
                    * * 3) Use iterator directly * *
                         * {@code
                         * software.amazon.awssdk.services.storagegateway.paginators.ListTapesIterable responses = client.listTapesPaginator(request);
                         * responses.iterator().forEachRemaining(....);
                         * }
                         * 
                    *

                    * Please notice that the configuration of Limit won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

                    *

                    * Note: If you prefer to have control on service calls, use the * {@link #listTapes(software.amazon.awssdk.services.storagegateway.model.ListTapesRequest)} operation. *

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

                    *
                      *
                    • *

                      * ListTapesInput$Limit *

                      *
                    • *
                    • *

                      * ListTapesInput$Marker *

                      *
                    • *
                    • *

                      * ListTapesInput$TapeARNs *

                      *
                    • * @return A custom iterable that can be used to iterate through all the response pages. * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListTapes * @see AWS API * Documentation */ @Override public ListTapesIterable listTapesPaginator(ListTapesRequest listTapesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { return new ListTapesIterable(this, applyPaginatorUserAgent(listTapesRequest)); } /** *

                      * Lists iSCSI initiators that are connected to a volume. You can use this operation to determine whether a volume * is being used or not. This operation is only supported in the cached volume and stored volume gateway types. *

                      * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListVolumeInitiators * @see AWS API Documentation */ @Override public ListVolumeInitiatorsResponse listVolumeInitiators(ListVolumeInitiatorsRequest listVolumeInitiatorsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, ListVolumeInitiatorsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listVolumeInitiatorsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListVolumeInitiators"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListVolumeInitiators").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listVolumeInitiatorsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListVolumeInitiatorsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

                      *

                      * Each cache 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 or clone a new cached volume from a source volume. * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListVolumeRecoveryPoints * @see AWS API Documentation */ @Override public ListVolumeRecoveryPointsResponse listVolumeRecoveryPoints( ListVolumeRecoveryPointsRequest listVolumeRecoveryPointsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, ListVolumeRecoveryPointsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listVolumeRecoveryPointsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListVolumeRecoveryPoints"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListVolumeRecoveryPoints").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listVolumeRecoveryPointsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListVolumeRecoveryPointsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                      * 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 or the * DescribeCachediSCSIVolumes 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. This operation is only * supported in the cached volume and stored volume gateway types. *

                      * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListVolumes * @see AWS * API Documentation */ @Override public ListVolumesResponse listVolumes(ListVolumesRequest listVolumesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, ListVolumesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listVolumesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListVolumes"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListVolumes").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listVolumesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListVolumesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                        * 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 or the * DescribeCachediSCSIVolumes 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. This operation is only * supported in the cached volume and stored volume gateway types. *

                        *
                        *

                        * This is a variant of * {@link #listVolumes(software.amazon.awssdk.services.storagegateway.model.ListVolumesRequest)} operation. The * return type is a custom iterable that can be used to iterate through all the pages. SDK will internally handle * making service calls for you. *

                        *

                        * When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

                        * *

                        * The following are few ways to iterate through the response pages: *

                        * 1) Using a Stream * *
                             * {@code
                             * software.amazon.awssdk.services.storagegateway.paginators.ListVolumesIterable responses = client.listVolumesPaginator(request);
                             * responses.stream().forEach(....);
                             * }
                             * 
                        * * 2) Using For loop * *
                             * {
                             *     @code
                             *     software.amazon.awssdk.services.storagegateway.paginators.ListVolumesIterable responses = client
                             *             .listVolumesPaginator(request);
                             *     for (software.amazon.awssdk.services.storagegateway.model.ListVolumesResponse response : responses) {
                             *         // do something;
                             *     }
                             * }
                             * 
                        * * 3) Use iterator directly * *
                             * {@code
                             * software.amazon.awssdk.services.storagegateway.paginators.ListVolumesIterable responses = client.listVolumesPaginator(request);
                             * responses.iterator().forEachRemaining(....);
                             * }
                             * 
                        *

                        * Please notice that the configuration of Limit won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

                        *

                        * Note: If you prefer to have control on service calls, use the * {@link #listVolumes(software.amazon.awssdk.services.storagegateway.model.ListVolumesRequest)} operation. *

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

                        *
                          *
                        • *

                          * ListVolumesInput$Limit *

                          *
                        • *
                        • *

                          * ListVolumesInput$Marker *

                          *
                        • * @return A custom iterable that can be used to iterate through all the response pages. * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ListVolumes * @see AWS * API Documentation */ @Override public ListVolumesIterable listVolumesPaginator(ListVolumesRequest listVolumesRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { return new ListVolumesIterable(this, applyPaginatorUserAgent(listVolumesRequest)); } /** *

                          * Sends you notification through CloudWatch Events when all files written to your file share have been uploaded to * Amazon S3. *

                          *

                          * Storage Gateway can send a notification through Amazon CloudWatch Events when all files written to your file * share up to that point in time have been uploaded to Amazon S3. These files include files written to the file * share up to the time that you make a request for notification. When the upload is done, Storage Gateway sends you * notification through an Amazon CloudWatch Event. You can configure CloudWatch Events to send the notification * through event targets such as Amazon SNS or Lambda function. This operation is only supported for S3 File * Gateways. *

                          *

                          * For more information, see Getting file upload notification in the Storage Gateway User Guide. *

                          * * @param notifyWhenUploadedRequest * @return Result of the NotifyWhenUploaded 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.NotifyWhenUploaded * @see AWS API Documentation */ @Override public NotifyWhenUploadedResponse notifyWhenUploaded(NotifyWhenUploadedRequest notifyWhenUploadedRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, NotifyWhenUploadedResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, notifyWhenUploadedRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "NotifyWhenUploaded"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("NotifyWhenUploaded").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(notifyWhenUploadedRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new NotifyWhenUploadedRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * Refreshes the cached inventory of objects for the specified file share. This operation finds objects in the * Amazon S3 bucket that were added, removed, or replaced since the gateway last listed the bucket's contents and * cached the results. This operation does not import files into the S3 File Gateway cache storage. It only updates * the cached inventory to reflect changes in the inventory of the objects in the S3 bucket. This operation is only * supported in the S3 File Gateway types. *

                          *

                          * You can subscribe to be notified through an Amazon CloudWatch event when your RefreshCache operation * completes. For more information, see Getting notified about file operations in the Storage Gateway User Guide. This operation is Only * supported for S3 File Gateways. *

                          *

                          * When this API is called, it only initiates the refresh operation. When the API call completes and returns a * success code, it doesn't necessarily mean that the file refresh has completed. You should use the * refresh-complete notification to determine that the operation has completed before you check for new files on the * gateway file share. You can subscribe to be notified through a CloudWatch event when your * RefreshCache operation completes. *

                          *

                          * Throttle limit: This API is asynchronous, so the gateway will accept no more than two refreshes at any time. We * recommend using the refresh-complete CloudWatch event notification before issuing additional requests. For more * information, see Getting notified about file operations in the Storage Gateway User Guide. *

                          *

                          * If you invoke the RefreshCache API when two requests are already being processed, any new request will cause an * InvalidGatewayRequestException error because too many requests were sent to the server. *

                          *

                          * For more information, see Getting notified about file operations in the Storage Gateway User Guide. *

                          * * @param refreshCacheRequest * RefreshCacheInput * @return Result of the RefreshCache 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.RefreshCache * @see AWS * API Documentation */ @Override public RefreshCacheResponse refreshCache(RefreshCacheRequest refreshCacheRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, RefreshCacheResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, refreshCacheRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RefreshCache"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("RefreshCache").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(refreshCacheRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new RefreshCacheRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * Removes one or more tags from the specified resource. This operation is supported in storage gateways of all * types. *

                          * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.RemoveTagsFromResource * @see AWS API Documentation */ @Override public RemoveTagsFromResourceResponse removeTagsFromResource(RemoveTagsFromResourceRequest removeTagsFromResourceRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, RemoveTagsFromResourceResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, removeTagsFromResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RemoveTagsFromResource"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("RemoveTagsFromResource").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(removeTagsFromResourceRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new RemoveTagsFromResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * Resets all cache disks that have encountered an error and makes the disks available for reconfiguration as cache * storage. If your cache disk encounters an 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. * This operation is only supported in the cached volume and tape types. *

                          * *

                          * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ResetCache * @see AWS API * Documentation */ @Override public ResetCacheResponse resetCache(ResetCacheRequest resetCacheRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, ResetCacheResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, resetCacheRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ResetCache"); return clientHandler .execute(new ClientExecutionParams().withOperationName("ResetCache") .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withInput(resetCacheRequest).withMetricCollector(apiCallMetricCollector) .withMarshaller(new ResetCacheRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a tape gateway. 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, that is, archive. This operation is only supported in the tape gateway * type. *

                          *

                          * 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. This operation is only supported in the * tape gateway type. *

                          * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.RetrieveTapeArchive * @see AWS API Documentation */ @Override public RetrieveTapeArchiveResponse retrieveTapeArchive(RetrieveTapeArchiveRequest retrieveTapeArchiveRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, RetrieveTapeArchiveResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, retrieveTapeArchiveRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RetrieveTapeArchive"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("RetrieveTapeArchive").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(retrieveTapeArchiveRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new RetrieveTapeArchiveRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * Retrieves the recovery point for the specified virtual tape. This operation is only supported in the tape gateway * type. *

                          *

                          * 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 tape gateway. 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.RetrieveTapeRecoveryPoint * @see AWS API Documentation */ @Override public RetrieveTapeRecoveryPointResponse retrieveTapeRecoveryPoint( RetrieveTapeRecoveryPointRequest retrieveTapeRecoveryPointRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, RetrieveTapeRecoveryPointResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, retrieveTapeRecoveryPointRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RetrieveTapeRecoveryPoint"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("RetrieveTapeRecoveryPoint").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(retrieveTapeRecoveryPointRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new RetrieveTapeRecoveryPointRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.SetLocalConsolePassword * @see AWS API Documentation */ @Override public SetLocalConsolePasswordResponse setLocalConsolePassword(SetLocalConsolePasswordRequest setLocalConsolePasswordRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, SetLocalConsolePasswordResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, setLocalConsolePasswordRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SetLocalConsolePassword"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("SetLocalConsolePassword").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(setLocalConsolePasswordRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new SetLocalConsolePasswordRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * Sets the password for the guest user smbguest. The smbguest user is the user when the * authentication method for the file share is set to GuestAccess. This operation only supported for S3 * File Gateways *

                          * * @param setSmbGuestPasswordRequest * SetSMBGuestPasswordInput * @return Result of the SetSMBGuestPassword 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.SetSMBGuestPassword * @see AWS API Documentation */ @Override public SetSmbGuestPasswordResponse setSMBGuestPassword(SetSmbGuestPasswordRequest setSmbGuestPasswordRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, SetSmbGuestPasswordResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, setSmbGuestPasswordRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SetSMBGuestPassword"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("SetSMBGuestPassword").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(setSmbGuestPasswordRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new SetSmbGuestPasswordRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * 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 gateway's virtual machine (VM) and not the * host 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 Amazon Resource Name (ARN) 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.ShutdownGateway * @see AWS API Documentation */ @Override public ShutdownGatewayResponse shutdownGateway(ShutdownGatewayRequest shutdownGatewayRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, ShutdownGatewayResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, shutdownGatewayRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ShutdownGateway"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ShutdownGateway").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(shutdownGatewayRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ShutdownGatewayRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * Start a test that verifies that the specified gateway is configured for High Availability monitoring in your host * environment. This request only initiates the test and that a successful response only indicates that the test was * started. It doesn't indicate that the test passed. For the status of the test, invoke the * DescribeAvailabilityMonitorTest API. *

                          * *

                          * Starting this test will cause your gateway to go offline for a brief period. *

                          *
                          * * @param startAvailabilityMonitorTestRequest * @return Result of the StartAvailabilityMonitorTest 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.StartAvailabilityMonitorTest * @see AWS API Documentation */ @Override public StartAvailabilityMonitorTestResponse startAvailabilityMonitorTest( StartAvailabilityMonitorTestRequest startAvailabilityMonitorTestRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, StartAvailabilityMonitorTestResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, startAvailabilityMonitorTestRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "StartAvailabilityMonitorTest"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("StartAvailabilityMonitorTest").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(startAvailabilityMonitorTestRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new StartAvailabilityMonitorTestRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * 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 Amazon Resource Name (ARN) 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.StartGateway * @see AWS * API Documentation */ @Override public StartGatewayResponse startGateway(StartGatewayRequest startGatewayRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, StartGatewayResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, startGatewayRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "StartGateway"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("StartGateway").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(startGatewayRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new StartGatewayRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * Updates the automatic tape creation policy of a gateway. Use this to update the policy with a new set of * automatic tape creation rules. This is only supported for tape gateways. *

                          *

                          * By default, there is no automatic tape creation policy. *

                          * *

                          * A gateway can have only one automatic tape creation policy. *

                          *
                          * * @param updateAutomaticTapeCreationPolicyRequest * @return Result of the UpdateAutomaticTapeCreationPolicy 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateAutomaticTapeCreationPolicy * @see AWS API Documentation */ @Override public UpdateAutomaticTapeCreationPolicyResponse updateAutomaticTapeCreationPolicy( UpdateAutomaticTapeCreationPolicyRequest updateAutomaticTapeCreationPolicyRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateAutomaticTapeCreationPolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateAutomaticTapeCreationPolicyRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateAutomaticTapeCreationPolicy"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateAutomaticTapeCreationPolicy").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateAutomaticTapeCreationPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateAutomaticTapeCreationPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                          * 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. This * operation is supported for the stored volume, cached volume, and tape gateway types. *

                          *

                          * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateBandwidthRateLimit * @see AWS API Documentation */ @Override public UpdateBandwidthRateLimitResponse updateBandwidthRateLimit( UpdateBandwidthRateLimitRequest updateBandwidthRateLimitRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateBandwidthRateLimitResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateBandwidthRateLimitRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateBandwidthRateLimit"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateBandwidthRateLimit").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateBandwidthRateLimitRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateBandwidthRateLimitRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                            * Updates the bandwidth rate limit schedule for a specified gateway. By default, gateways do not have bandwidth * rate limit schedules, which means no bandwidth rate limiting is in effect. Use this to initiate or update a * gateway's bandwidth rate limit schedule. This operation is supported in the volume and tape gateway types. *

                            * * @param updateBandwidthRateLimitScheduleRequest * @return Result of the UpdateBandwidthRateLimitSchedule 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateBandwidthRateLimitSchedule * @see AWS API Documentation */ @Override public UpdateBandwidthRateLimitScheduleResponse updateBandwidthRateLimitSchedule( UpdateBandwidthRateLimitScheduleRequest updateBandwidthRateLimitScheduleRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateBandwidthRateLimitScheduleResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateBandwidthRateLimitScheduleRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateBandwidthRateLimitSchedule"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateBandwidthRateLimitSchedule").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateBandwidthRateLimitScheduleRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateBandwidthRateLimitScheduleRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                            * 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. This operation is * supported in the volume and tape gateway types. *

                            * *

                            * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateChapCredentials * @see AWS API Documentation */ @Override public UpdateChapCredentialsResponse updateChapCredentials(UpdateChapCredentialsRequest updateChapCredentialsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateChapCredentialsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateChapCredentialsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateChapCredentials"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateChapCredentials").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateChapCredentialsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateChapCredentialsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                              * Updates a file system association. This operation is only supported in the FSx File Gateways. *

                              * * @param updateFileSystemAssociationRequest * @return Result of the UpdateFileSystemAssociation 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateFileSystemAssociation * @see AWS API Documentation */ @Override public UpdateFileSystemAssociationResponse updateFileSystemAssociation( UpdateFileSystemAssociationRequest updateFileSystemAssociationRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateFileSystemAssociationResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateFileSystemAssociationRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateFileSystemAssociation"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateFileSystemAssociation").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateFileSystemAssociationRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateFileSystemAssociationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                              * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateGatewayInformation * @see AWS API Documentation */ @Override public UpdateGatewayInformationResponse updateGatewayInformation( UpdateGatewayInformationRequest updateGatewayInformationRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateGatewayInformationResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateGatewayInformationRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateGatewayInformation"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateGatewayInformation").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateGatewayInformationRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateGatewayInformationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                              * 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 Amazon Resource Name (ARN) 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateGatewaySoftwareNow * @see AWS API Documentation */ @Override public UpdateGatewaySoftwareNowResponse updateGatewaySoftwareNow( UpdateGatewaySoftwareNowRequest updateGatewaySoftwareNowRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateGatewaySoftwareNowResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateGatewaySoftwareNowRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateGatewaySoftwareNow"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateGatewaySoftwareNow").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateGatewaySoftwareNowRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateGatewaySoftwareNowRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                              * 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$DayOfMonth *

                                *
                              • *
                              • *

                                * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateMaintenanceStartTime * @see AWS API Documentation */ @Override public UpdateMaintenanceStartTimeResponse updateMaintenanceStartTime( UpdateMaintenanceStartTimeRequest updateMaintenanceStartTimeRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateMaintenanceStartTimeResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateMaintenanceStartTimeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateMaintenanceStartTime"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateMaintenanceStartTime").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateMaintenanceStartTimeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateMaintenanceStartTimeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                                * Updates a Network File System (NFS) file share. This operation is only supported in S3 File Gateways. *

                                * *

                                * To leave a file share field unchanged, set the corresponding input field to null. *

                                *
                                *

                                * Updates the following file share settings: *

                                *
                                  *
                                • *

                                  * Default storage class for your S3 bucket *

                                  *
                                • *
                                • *

                                  * Metadata defaults for your S3 bucket *

                                  *
                                • *
                                • *

                                  * Allowed NFS clients for your file share *

                                  *
                                • *
                                • *

                                  * Squash settings *

                                  *
                                • *
                                • *

                                  * Write status of your file share *

                                  *
                                • *
                                * * @param updateNfsFileShareRequest * UpdateNFSFileShareInput * @return Result of the UpdateNFSFileShare 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateNFSFileShare * @see AWS API Documentation */ @Override public UpdateNfsFileShareResponse updateNFSFileShare(UpdateNfsFileShareRequest updateNfsFileShareRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateNfsFileShareResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateNfsFileShareRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateNFSFileShare"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateNFSFileShare").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateNfsFileShareRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateNfsFileShareRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                                * Updates a Server Message Block (SMB) file share. This operation is only supported for S3 File Gateways. *

                                * *

                                * To leave a file share field unchanged, set the corresponding input field to null. *

                                *
                                *

                                * File gateways require Security Token Service (Amazon Web Services STS) to be activated to enable you to create a * file share. Make sure that Amazon Web Services STS is activated in the Amazon Web Services Region you are * creating your file gateway in. If Amazon Web Services STS is not activated in this Amazon Web Services Region, * activate it. For information about how to activate Amazon Web Services STS, see Activating and * deactivating Amazon Web Services STS in an Amazon Web Services Region in the Identity and Access * Management User Guide. *

                                *

                                * File gateways don't support creating hard or symbolic links on a file share. *

                                *
                                * * @param updateSmbFileShareRequest * UpdateSMBFileShareInput * @return Result of the UpdateSMBFileShare 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateSMBFileShare * @see AWS API Documentation */ @Override public UpdateSmbFileShareResponse updateSMBFileShare(UpdateSmbFileShareRequest updateSmbFileShareRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateSmbFileShareResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateSmbFileShareRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateSMBFileShare"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateSMBFileShare").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateSmbFileShareRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateSmbFileShareRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                                * Controls whether the shares on an S3 File Gateway are visible in a net view or browse list. The operation is only * supported for S3 File Gateways. *

                                * * @param updateSmbFileShareVisibilityRequest * @return Result of the UpdateSMBFileShareVisibility 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateSMBFileShareVisibility * @see AWS API Documentation */ @Override public UpdateSmbFileShareVisibilityResponse updateSMBFileShareVisibility( UpdateSmbFileShareVisibilityRequest updateSmbFileShareVisibilityRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateSmbFileShareVisibilityResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateSmbFileShareVisibilityRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateSMBFileShareVisibility"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateSMBFileShareVisibility").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateSmbFileShareVisibilityRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateSmbFileShareVisibilityRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                                * Updates the list of Active Directory users and groups that have special permissions for SMB file shares on the * gateway. *

                                * * @param updateSmbLocalGroupsRequest * @return Result of the UpdateSMBLocalGroups 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateSMBLocalGroups * @see AWS API Documentation */ @Override public UpdateSmbLocalGroupsResponse updateSMBLocalGroups(UpdateSmbLocalGroupsRequest updateSmbLocalGroupsRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateSmbLocalGroupsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateSmbLocalGroupsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateSMBLocalGroups"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateSMBLocalGroups").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateSmbLocalGroupsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateSmbLocalGroupsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                                * Updates the SMB security strategy on a file gateway. This action is only supported in file gateways. *

                                * *

                                * This API is called Security level in the User Guide. *

                                *

                                * A higher security level can affect performance of the gateway. *

                                *
                                * * @param updateSmbSecurityStrategyRequest * @return Result of the UpdateSMBSecurityStrategy 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateSMBSecurityStrategy * @see AWS API Documentation */ @Override public UpdateSmbSecurityStrategyResponse updateSMBSecurityStrategy( UpdateSmbSecurityStrategyRequest updateSmbSecurityStrategyRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateSmbSecurityStrategyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateSmbSecurityStrategyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateSMBSecurityStrategy"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateSMBSecurityStrategy").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateSmbSecurityStrategyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateSmbSecurityStrategyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

                                * Updates a snapshot schedule configured for a gateway volume. This operation is only supported in the cached * volume and stored volume gateway types. *

                                *

                                * 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateSnapshotSchedule * @see AWS API Documentation */ @Override public UpdateSnapshotScheduleResponse updateSnapshotSchedule(UpdateSnapshotScheduleRequest updateSnapshotScheduleRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateSnapshotScheduleResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateSnapshotScheduleRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateSnapshotSchedule"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateSnapshotSchedule").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateSnapshotScheduleRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateSnapshotScheduleRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

                                  * * @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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws StorageGatewayException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample StorageGatewayClient.UpdateVTLDeviceType * @see AWS API Documentation */ @Override public UpdateVtlDeviceTypeResponse updateVTLDeviceType(UpdateVtlDeviceTypeRequest updateVtlDeviceTypeRequest) throws InvalidGatewayRequestException, InternalServerErrorException, AwsServiceException, SdkClientException, StorageGatewayException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateVtlDeviceTypeResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateVtlDeviceTypeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Storage Gateway"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateVTLDeviceType"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateVTLDeviceType").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateVtlDeviceTypeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateVtlDeviceTypeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); } if (publishers == null || publishers.isEmpty()) { publishers = clientConfiguration.option(SdkClientOption.METRIC_PUBLISHERS); } if (publishers == null) { publishers = Collections.emptyList(); } return publishers; } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, JsonOperationMetadata operationMetadata) { return protocolFactory.createErrorResponseHandler(operationMetadata); } private > T init(T builder) { return builder .clientConfiguration(clientConfiguration) .defaultServiceExceptionSupplier(StorageGatewayException::builder) .protocol(AwsJsonProtocol.AWS_JSON) .protocolVersion("1.1") .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidGatewayRequestException") .exceptionBuilderSupplier(InvalidGatewayRequestException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ServiceUnavailableError") .exceptionBuilderSupplier(ServiceUnavailableErrorException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InternalServerError") .exceptionBuilderSupplier(InternalServerErrorException::builder).build()); } @Override public void close() { clientHandler.close(); } private T applyPaginatorUserAgent(T request) { Consumer userAgentApplier = b -> b.addApiName(ApiName.builder() .version(VersionInfo.SDK_VERSION).name("PAGINATED").build()); AwsRequestOverrideConfiguration overrideConfiguration = request.overrideConfiguration() .map(c -> c.toBuilder().applyMutation(userAgentApplier).build()) .orElse((AwsRequestOverrideConfiguration.builder().applyMutation(userAgentApplier).build())); return (T) request.toBuilder().overrideConfiguration(overrideConfiguration).build(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy