
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:
*
* -
*
*
* -
*
*
* -
*
*
* -
*
*
* -
*
*
* -
*
*
* -
*
*
* @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:
*
* -
*
*
* @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:
*
* -
*
*
* -
*
*
* @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:
*
* -
*
*
* -
*
*
* -
*
*
* -
*
*
* -
*
*
* @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:
*
* -
*
*
* @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:
*
* -
*
*
* -
*
*
* @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:
*
* -
*
*
* -
*
*
* @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:
*
* -
*
*
* -
*
*
* @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:
*
* -
*