## API Report File for "@rushstack/rush-amazon-s3-build-cache-plugin"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

/// <reference types="node" />

import type { IRushPlugin } from '@rushstack/rush-sdk';
import { ITerminal } from '@rushstack/terminal';
import type { RushConfiguration } from '@rushstack/rush-sdk';
import type { RushSession } from '@rushstack/rush-sdk';
import { WebClient } from '@rushstack/rush-sdk/lib/utilities/WebClient';

// @public
export class AmazonS3Client {
    constructor(credentials: IAmazonS3Credentials | undefined, options: IAmazonS3BuildCacheProviderOptionsAdvanced, webClient: WebClient, terminal: ITerminal);
    // (undocumented)
    getObjectAsync(objectName: string): Promise<Buffer | undefined>;
    // (undocumented)
    _getSha256Hmac(key: string | Buffer, data: string): Buffer;
    // (undocumented)
    _getSha256Hmac(key: string | Buffer, data: string, encoding: 'hex'): string;
    // (undocumented)
    static tryDeserializeCredentials(credentialString: string | undefined): IAmazonS3Credentials | undefined;
    // (undocumented)
    uploadObjectAsync(objectName: string, objectBuffer: Buffer): Promise<void>;
    // (undocumented)
    static UriEncode(input: string): string;
}

// @public
export interface IAmazonS3BuildCacheProviderOptionsAdvanced extends IAmazonS3BuildCacheProviderOptionsBase {
    // (undocumented)
    s3Endpoint: string;
}

// @public (undocumented)
export interface IAmazonS3BuildCacheProviderOptionsBase {
    // (undocumented)
    isCacheWriteAllowed: boolean;
    // (undocumented)
    s3Prefix: string | undefined;
    // (undocumented)
    s3Region: string;
}

// @public
export interface IAmazonS3BuildCacheProviderOptionsSimple extends IAmazonS3BuildCacheProviderOptionsBase {
    // (undocumented)
    s3Bucket: string;
}

// @public
export interface IAmazonS3Credentials {
    // (undocumented)
    accessKeyId: string;
    // (undocumented)
    secretAccessKey: string;
    // (undocumented)
    sessionToken: string | undefined;
}

// @public (undocumented)
class RushAmazonS3BuildCachePlugin implements IRushPlugin {
    // (undocumented)
    apply(rushSession: RushSession, rushConfig: RushConfiguration): void;
    // (undocumented)
    pluginName: string;
}
export default RushAmazonS3BuildCachePlugin;

// (No @packageDocumentation comment for this package)

```
