/**
 * Synapse REST API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { ProjectStorageLocationUsage } from './ProjectStorageLocationUsage';
/**
 * This upload destination contains information to start an upload to an external external S3 bucket connected with Synapse. The destination is mapped from an <a href="${org.sagebionetworks.repo.model.project.ExternalS3StorageLocationSetting}">ExternalS3StorageLocationSetting</a>.
 * @export
 * @interface ExternalS3UploadDestination
 */
export interface ExternalS3UploadDestination {
    /**
     * Indicates which implementation this object represents.
     * @type {string}
     * @memberof ExternalS3UploadDestination
     */
    concreteType: ExternalS3UploadDestinationConcreteTypeEnum;
    /**
     * the unique id for the storage location, that points to the <a href="${org.sagebionetworks.repo.model.project.StorageLocationSetting}">StorageLocationSetting</a>
     * @type {number}
     * @memberof ExternalS3UploadDestination
     */
    storageLocationId?: number;
    /**
     * The enumeration of possible upload types.
     * @type {string}
     * @memberof ExternalS3UploadDestination
     */
    uploadType?: ExternalS3UploadDestinationUploadTypeEnum;
    /**
     * If set, the client should show this banner every time an upload is initiated
     * @type {string}
     * @memberof ExternalS3UploadDestination
     */
    banner?: string;
    /**
     * The ID of the project where this file will be uploaded.
     * @type {string}
     * @memberof ExternalS3UploadDestination
     */
    destinationProjectId?: string;
    /**
     *
     * @type {ProjectStorageLocationUsage}
     * @memberof ExternalS3UploadDestination
     */
    projectStorageLocationUsage?: ProjectStorageLocationUsage;
    /**
     * the optional base key, which acts as a prefix or a base folder
     * @type {string}
     * @memberof ExternalS3UploadDestination
     */
    baseKey?: string;
    /**
     * Enables STS on this Storage Location
     * @type {boolean}
     * @memberof ExternalS3UploadDestination
     */
    stsEnabled?: boolean;
    /**
     * the s3 endpoint url (default: https://s3.amazonaws.com)
     * @type {string}
     * @memberof ExternalS3UploadDestination
     */
    endpointUrl?: string;
    /**
     * the bucket to use
     * @type {string}
     * @memberof ExternalS3UploadDestination
     */
    bucket?: string;
}
/**
 * @export
 */
export declare const ExternalS3UploadDestinationConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_file_ExternalS3UploadDestination: "org.sagebionetworks.repo.model.file.ExternalS3UploadDestination";
};
export type ExternalS3UploadDestinationConcreteTypeEnum = typeof ExternalS3UploadDestinationConcreteTypeEnum[keyof typeof ExternalS3UploadDestinationConcreteTypeEnum];
/**
 * @export
 */
export declare const ExternalS3UploadDestinationUploadTypeEnum: {
    readonly S3: "S3";
    readonly GOOGLECLOUDSTORAGE: "GOOGLECLOUDSTORAGE";
    readonly SFTP: "SFTP";
    readonly HTTPS: "HTTPS";
    readonly PROXYLOCAL: "PROXYLOCAL";
    readonly NONE: "NONE";
};
export type ExternalS3UploadDestinationUploadTypeEnum = typeof ExternalS3UploadDestinationUploadTypeEnum[keyof typeof ExternalS3UploadDestinationUploadTypeEnum];
/**
 * Check if a given object implements the ExternalS3UploadDestination interface.
 */
export declare function instanceOfExternalS3UploadDestination(value: object): value is ExternalS3UploadDestination;
export declare function ExternalS3UploadDestinationFromJSON(json: any): ExternalS3UploadDestination;
export declare function ExternalS3UploadDestinationFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExternalS3UploadDestination;
export declare function ExternalS3UploadDestinationToJSON(json: any): ExternalS3UploadDestination;
export declare function ExternalS3UploadDestinationToJSONTyped(value?: ExternalS3UploadDestination | null, ignoreDiscriminator?: boolean): any;
