import { EndpointsInputConfig , EndpointsResolvedConfig , RegionInputConfig , RegionResolvedConfig , resolveEndpointsConfig , resolveRegionConfig , } from "@aws-sdk/config-resolver" ; import { getContentLengthPlugin } from "@aws-sdk/middleware-content-length" ; import { getHostHeaderPlugin , HostHeaderInputConfig , HostHeaderResolvedConfig , resolveHostHeaderConfig , } from "@aws-sdk/middleware-host-header" ; import { getLoggerPlugin } from "@aws-sdk/middleware-logger" ; import { getRetryPlugin , resolveRetryConfig , RetryInputConfig , RetryResolvedConfig } from "@aws-sdk/middleware-retry" ; import { getGlacierPlugin } from "@aws-sdk/middleware-sdk-glacier" ; import { AwsAuthInputConfig , AwsAuthResolvedConfig , getAwsAuthPlugin , resolveAwsAuthConfig , } from "@aws-sdk/middleware-signing" ; import { getUserAgentPlugin , resolveUserAgentConfig , UserAgentInputConfig , UserAgentResolvedConfig , } from "@aws-sdk/middleware-user-agent" ; import { HttpHandler as __HttpHandler } from "@aws-sdk/protocol-http" ; import { Client as __Client , DefaultsMode , SmithyConfiguration as __SmithyConfiguration , SmithyResolvedConfiguration as __SmithyResolvedConfiguration , } from "@aws-sdk/smithy-client" ; import { Credentials as __Credentials , Decoder as __Decoder , Encoder as __Encoder , Hash as __Hash , HashConstructor as __HashConstructor , HttpHandlerOptions as __HttpHandlerOptions , HttpRequest as __HttpRequest , Logger as __Logger , Provider as __Provider , Provider , RegionInfoProvider , StreamCollector as __StreamCollector , UrlParser as __UrlParser , UserAgent as __UserAgent , } from "@aws-sdk/types" ; import { AbortMultipartUploadCommandInput , AbortMultipartUploadCommandOutput , } from "./commands/AbortMultipartUploadCommand" ; import { AbortVaultLockCommandInput , AbortVaultLockCommandOutput } from "./commands/AbortVaultLockCommand" ; import { AddTagsToVaultCommandInput , AddTagsToVaultCommandOutput } from "./commands/AddTagsToVaultCommand" ; import { CompleteMultipartUploadCommandInput , CompleteMultipartUploadCommandOutput , } from "./commands/CompleteMultipartUploadCommand" ; import { CompleteVaultLockCommandInput , CompleteVaultLockCommandOutput } from "./commands/CompleteVaultLockCommand" ; import { CreateVaultCommandInput , CreateVaultCommandOutput } from "./commands/CreateVaultCommand" ; import { DeleteArchiveCommandInput , DeleteArchiveCommandOutput } from "./commands/DeleteArchiveCommand" ; import { DeleteVaultAccessPolicyCommandInput , DeleteVaultAccessPolicyCommandOutput , } from "./commands/DeleteVaultAccessPolicyCommand" ; import { DeleteVaultCommandInput , DeleteVaultCommandOutput } from "./commands/DeleteVaultCommand" ; import { DeleteVaultNotificationsCommandInput , DeleteVaultNotificationsCommandOutput , } from "./commands/DeleteVaultNotificationsCommand" ; import { DescribeJobCommandInput , DescribeJobCommandOutput } from "./commands/DescribeJobCommand" ; import { DescribeVaultCommandInput , DescribeVaultCommandOutput } from "./commands/DescribeVaultCommand" ; import { GetDataRetrievalPolicyCommandInput , GetDataRetrievalPolicyCommandOutput , } from "./commands/GetDataRetrievalPolicyCommand" ; import { GetJobOutputCommandInput , GetJobOutputCommandOutput } from "./commands/GetJobOutputCommand" ; import { GetVaultAccessPolicyCommandInput , GetVaultAccessPolicyCommandOutput , } from "./commands/GetVaultAccessPolicyCommand" ; import { GetVaultLockCommandInput , GetVaultLockCommandOutput } from "./commands/GetVaultLockCommand" ; import { GetVaultNotificationsCommandInput , GetVaultNotificationsCommandOutput , } from "./commands/GetVaultNotificationsCommand" ; import { InitiateJobCommandInput , InitiateJobCommandOutput } from "./commands/InitiateJobCommand" ; import { InitiateMultipartUploadCommandInput , InitiateMultipartUploadCommandOutput , } from "./commands/InitiateMultipartUploadCommand" ; import { InitiateVaultLockCommandInput , InitiateVaultLockCommandOutput } from "./commands/InitiateVaultLockCommand" ; import { ListJobsCommandInput , ListJobsCommandOutput } from "./commands/ListJobsCommand" ; import { ListMultipartUploadsCommandInput , ListMultipartUploadsCommandOutput , } from "./commands/ListMultipartUploadsCommand" ; import { ListPartsCommandInput , ListPartsCommandOutput } from "./commands/ListPartsCommand" ; import { ListProvisionedCapacityCommandInput , ListProvisionedCapacityCommandOutput , } from "./commands/ListProvisionedCapacityCommand" ; import { ListTagsForVaultCommandInput , ListTagsForVaultCommandOutput } from "./commands/ListTagsForVaultCommand" ; import { ListVaultsCommandInput , ListVaultsCommandOutput } from "./commands/ListVaultsCommand" ; import { PurchaseProvisionedCapacityCommandInput , PurchaseProvisionedCapacityCommandOutput , } from "./commands/PurchaseProvisionedCapacityCommand" ; import { RemoveTagsFromVaultCommandInput , RemoveTagsFromVaultCommandOutput , } from "./commands/RemoveTagsFromVaultCommand" ; import { SetDataRetrievalPolicyCommandInput , SetDataRetrievalPolicyCommandOutput , } from "./commands/SetDataRetrievalPolicyCommand" ; import { SetVaultAccessPolicyCommandInput , SetVaultAccessPolicyCommandOutput , } from "./commands/SetVaultAccessPolicyCommand" ; import { SetVaultNotificationsCommandInput , SetVaultNotificationsCommandOutput , } from "./commands/SetVaultNotificationsCommand" ; import { UploadArchiveCommandInput , UploadArchiveCommandOutput } from "./commands/UploadArchiveCommand" ; import { UploadMultipartPartCommandInput , UploadMultipartPartCommandOutput , } from "./commands/UploadMultipartPartCommand" ; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig" ; export type ServiceInputTypes = AbortMultipartUploadCommandInput | AbortVaultLockCommandInput | AddTagsToVaultCommandInput | CompleteMultipartUploadCommandInput | CompleteVaultLockCommandInput | CreateVaultCommandInput | DeleteArchiveCommandInput | DeleteVaultAccessPolicyCommandInput | DeleteVaultCommandInput | DeleteVaultNotificationsCommandInput | DescribeJobCommandInput | DescribeVaultCommandInput | GetDataRetrievalPolicyCommandInput | GetJobOutputCommandInput | GetVaultAccessPolicyCommandInput | GetVaultLockCommandInput | GetVaultNotificationsCommandInput | InitiateJobCommandInput | InitiateMultipartUploadCommandInput | InitiateVaultLockCommandInput | ListJobsCommandInput | ListMultipartUploadsCommandInput | ListPartsCommandInput | ListProvisionedCapacityCommandInput | ListTagsForVaultCommandInput | ListVaultsCommandInput | PurchaseProvisionedCapacityCommandInput | RemoveTagsFromVaultCommandInput | SetDataRetrievalPolicyCommandInput | SetVaultAccessPolicyCommandInput | SetVaultNotificationsCommandInput | UploadArchiveCommandInput | UploadMultipartPartCommandInput ; export type ServiceOutputTypes = AbortMultipartUploadCommandOutput | AbortVaultLockCommandOutput | AddTagsToVaultCommandOutput | CompleteMultipartUploadCommandOutput | CompleteVaultLockCommandOutput | CreateVaultCommandOutput | DeleteArchiveCommandOutput | DeleteVaultAccessPolicyCommandOutput | DeleteVaultCommandOutput | DeleteVaultNotificationsCommandOutput | DescribeJobCommandOutput | DescribeVaultCommandOutput | GetDataRetrievalPolicyCommandOutput | GetJobOutputCommandOutput | GetVaultAccessPolicyCommandOutput | GetVaultLockCommandOutput | GetVaultNotificationsCommandOutput | InitiateJobCommandOutput | InitiateMultipartUploadCommandOutput | InitiateVaultLockCommandOutput | ListJobsCommandOutput | ListMultipartUploadsCommandOutput | ListPartsCommandOutput | ListProvisionedCapacityCommandOutput | ListTagsForVaultCommandOutput | ListVaultsCommandOutput | PurchaseProvisionedCapacityCommandOutput | RemoveTagsFromVaultCommandOutput | SetDataRetrievalPolicyCommandOutput | SetVaultAccessPolicyCommandOutput | SetVaultNotificationsCommandOutput | UploadArchiveCommandOutput | UploadMultipartPartCommandOutput ; export interface ClientDefaults extends Partial < __SmithyResolvedConfiguration < __HttpHandlerOptions > > { /**
     * The HTTP handler to use. Fetch in browser and Https in Nodejs.
     */ requestHandler ? : __HttpHandler ; /**
     * A constructor for a class implementing the  __Hash interface
     * that computes the SHA-256 HMAC or checksum of a string or binary buffer.
     *  internal sha256 ? : __HashConstructor ; internal urlParser ? : __UrlParser ; internal bodyLengthChecker ? : ( body : any ) => number | undefined ; internal streamCollector ? : __StreamCollector ; internal base64Decoder ? : __Decoder ; internal base64Encoder ? : __Encoder ; internal utf8Decoder ? : __Decoder ; internal utf8Encoder ? : __Encoder ; internal runtime ? : string ; /**
     * Disable dyanamically changing the endpoint of the client based on the hostPrefix
     * trait of an operation.
     */ disableHostPrefix ? : boolean ; /**
     * Value for how many times a request will be made at most in case of retry.
     */ maxAttempts ? : number | __Provider < number > ; /**
     * Specifies which retry algorithm to use.
     */ retryMode ? : string | __Provider < string > ; /**
     * Optional logger for logging debug/info/warn/error.
     */ logger ? : __Logger ; /**
     * Enables IPv6/IPv4 dualstack endpoint.
     */ useDualstackEndpoint ? : boolean | __Provider < boolean > ; /**
     * Enables FIPS compatible endpoints.
     */ useFipsEndpoint ? : boolean | __Provider < boolean > ; internal serviceId ? : string ; /**
     * The AWS region to which this client will send requests
     */ region ? : string | __Provider < string > ; internal credentialDefaultProvider ? : ( input : any ) => __Provider < __Credentials > ; internal regionInfoProvider ? : RegionInfoProvider ; internal bodyChecksumGenerator ? : ( request : __HttpRequest , options : { sha256 : __HashConstructor ; utf8Decoder : __Decoder ; } ) => Promise < [ string , string ] > ; internal defaultUserAgentProvider ? : Provider < __UserAgent > ; /**
     * The  DefaultsMode that will be used to determine how certain default configuration options are resolved in the SDK.
      defaultsMode ? : DefaultsMode | Provider < DefaultsMode > ; } type GlacierClientConfigType = Partial < __SmithyConfiguration < __HttpHandlerOptions > > & ClientDefaults & RegionInputConfig & EndpointsInputConfig & RetryInputConfig & HostHeaderInputConfig & AwsAuthInputConfig & UserAgentInputConfig ; /**
 * The configuration interface of GlacierClient class constructor that set the region, credentials and other options.
 */ export interface GlacierClientConfig extends GlacierClientConfigType { } type GlacierClientResolvedConfigType = __SmithyResolvedConfiguration < __HttpHandlerOptions > & Required < ClientDefaults > & RegionResolvedConfig & EndpointsResolvedConfig & RetryResolvedConfig & HostHeaderResolvedConfig & AwsAuthResolvedConfig & UserAgentResolvedConfig ; /**
 * The resolved configuration interface of GlacierClient class. This is resolved and normalized from the  GlacierClientConfig .
  export interface GlacierClientResolvedConfig extends GlacierClientResolvedConfigType { } /**
 * <p> Amazon S3 Glacier (Glacier) is a storage solution for "cold data."</p>
 *
 *          <p>Glacier is an extremely low-cost storage service that provides secure,
 *          durable, and easy-to-use storage for data backup and archival. With Glacier,
 *          customers can store their data cost effectively for months, years, or decades.
 *          Glacier also enables customers to offload the administrative burdens of operating and
 *          scaling storage to AWS, so they don't have to worry about capacity planning, hardware
 *          provisioning, data replication, hardware failure and recovery, or time-consuming hardware
 *          migrations.</p>
 *
 *          <p>Glacier is a great storage choice when low storage cost is paramount and your
 *          data is rarely retrieved. If your
 *          application requires fast or frequent access to your data, consider using Amazon S3. For
 *          more information, see <a href="http://aws.amazon.com/s3/">Amazon Simple Storage Service
 *             (Amazon S3)</a>.</p>
 *
 *          <p>You can store any kind of data in any format. There is no maximum limit on the total
 *          amount of data you can store in Glacier.</p>
 *
 *          <p>If you are a first-time user of Glacier, we recommend that you begin by
 *          reading the following sections in the <i>Amazon S3 Glacier Developer
 *          Guide</i>:</p>
 *          <ul>
 *             <li>
 *                <p>
 *                   <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html">What is
 *                   Amazon S3 Glacier</a> - This section of the Developer Guide describes the
 *                underlying data model, the operations it supports, and the AWS SDKs that you can use
 *                to interact with the service.</p>
 *             </li>
 *             <li>
 *                <p>
 *                   <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/amazon-glacier-getting-started.html">Getting Started
 *                   with Amazon S3 Glacier</a> - The Getting Started section walks you through the
 *                process of creating a vault, uploading archives, creating jobs to download archives,
 *                retrieving the job output, and deleting archives.</p>
 *             </li>
 *          </ul>
 */ export class GlacierClient extends __Client < __HttpHandlerOptions , ServiceInputTypes , ServiceOutputTypes , GlacierClientResolvedConfig > { /**
     * The resolved configuration of GlacierClient class. This is resolved and normalized from the  GlacierClientConfig .
      readonly config : GlacierClientResolvedConfig ; constructor ( configuration ) { const _config_0 = __getRuntimeConfig ( configuration ) ; const _config_1 = resolveRegionConfig ( _config_0 ) ; const _config_2 = resolveEndpointsConfig ( _config_1 ) ; const _config_3 = resolveRetryConfig ( _config_2 ) ; const _config_4 = resolveHostHeaderConfig ( _config_3 ) ; const _config_5 = resolveAwsAuthConfig ( _config_4 ) ; const _config_6 = resolveUserAgentConfig ( _config_5 ) ; super ( _config_6 ) ; this . config = _config_6 ; this . middlewareStack . use ( getRetryPlugin ( this . config ) ) ; this . middlewareStack . use ( getContentLengthPlugin ( this . config ) ) ; this . middlewareStack . use ( getGlacierPlugin ( this . config ) ) ; this . middlewareStack . use ( getHostHeaderPlugin ( this . config ) ) ; this . middlewareStack . use ( getLoggerPlugin ( this . config ) ) ; this . middlewareStack . use ( getAwsAuthPlugin ( this . config ) ) ; this . middlewareStack . use ( getUserAgentPlugin ( this . config ) ) ; } /**
     * Destroy underlying resources, like sockets. It's usually not necessary to do this.
     * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.
     * Otherwise, sockets might stay open for quite a long time before the server terminates them.
     */ destroy ( ) { super . destroy ( ) ; } }