/**
 * 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.
 */
/**
 * The external upload destination setting contains information to generate an external S3 upload destination connected with Synapse. For details on how to create a custom S3 storage location in the web client, see <a href="https://help.synapse.org/docs/Custom-Storage-Locations.2048327803.html">Custom Storage Locations</a>
 * @export
 * @interface ExternalS3StorageLocationSetting
 */
export interface ExternalS3StorageLocationSetting {
    /**
     * Indicates which implementation this object represents.
     * @type {string}
     * @memberof ExternalS3StorageLocationSetting
     */
    concreteType: ExternalS3StorageLocationSettingConcreteTypeEnum;
    /**
     * The unique ID for this storage location
     * @type {number}
     * @memberof ExternalS3StorageLocationSetting
     */
    storageLocationId?: number;
    /**
     * The enumeration of possible upload types.
     * @type {string}
     * @memberof ExternalS3StorageLocationSetting
     */
    uploadType?: ExternalS3StorageLocationSettingUploadTypeEnum;
    /**
     * The banner text to display to a user every time a file is uploaded. This field is optional.
     * @type {string}
     * @memberof ExternalS3StorageLocationSetting
     */
    banner?: string;
    /**
     * A description of the storage location. This description is shown when a user has to choose which upload destination to use.
     * @type {string}
     * @memberof ExternalS3StorageLocationSetting
     */
    description?: string;
    /**
     * Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time a Project Setting is updated it is used to detect when a client's current representation of a Project Setting is out-of-date.
     * @type {string}
     * @memberof ExternalS3StorageLocationSetting
     */
    etag?: string;
    /**
     * The date this storage location setting was created.
     * @type {string}
     * @memberof ExternalS3StorageLocationSetting
     */
    createdOn?: string;
    /**
     * The ID of the user that created this storage location setting.
     * @type {number}
     * @memberof ExternalS3StorageLocationSetting
     */
    createdBy?: number;
    /**
     * The bucket name
     * @type {string}
     * @memberof ExternalS3StorageLocationSetting
     */
    bucket: string;
    /**
     * the optional base key, which acts as a prefix or a base folder
     * @type {string}
     * @memberof ExternalS3StorageLocationSetting
     */
    baseKey?: string;
    /**
     * Enables STS on this Storage Location
     * @type {boolean}
     * @memberof ExternalS3StorageLocationSetting
     */
    stsEnabled?: boolean;
    /**
     * the optional s3 endpoint URL for uploading to (default: https://s3.amazonaws.com)
     * @type {string}
     * @memberof ExternalS3StorageLocationSetting
     */
    endpointUrl?: string;
}
/**
 * @export
 */
export declare const ExternalS3StorageLocationSettingConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_project_ExternalS3StorageLocationSetting: "org.sagebionetworks.repo.model.project.ExternalS3StorageLocationSetting";
};
export type ExternalS3StorageLocationSettingConcreteTypeEnum = typeof ExternalS3StorageLocationSettingConcreteTypeEnum[keyof typeof ExternalS3StorageLocationSettingConcreteTypeEnum];
/**
 * @export
 */
export declare const ExternalS3StorageLocationSettingUploadTypeEnum: {
    readonly S3: "S3";
    readonly GOOGLECLOUDSTORAGE: "GOOGLECLOUDSTORAGE";
    readonly SFTP: "SFTP";
    readonly HTTPS: "HTTPS";
    readonly PROXYLOCAL: "PROXYLOCAL";
    readonly NONE: "NONE";
};
export type ExternalS3StorageLocationSettingUploadTypeEnum = typeof ExternalS3StorageLocationSettingUploadTypeEnum[keyof typeof ExternalS3StorageLocationSettingUploadTypeEnum];
/**
 * Check if a given object implements the ExternalS3StorageLocationSetting interface.
 */
export declare function instanceOfExternalS3StorageLocationSetting(value: object): value is ExternalS3StorageLocationSetting;
export declare function ExternalS3StorageLocationSettingFromJSON(json: any): ExternalS3StorageLocationSetting;
export declare function ExternalS3StorageLocationSettingFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExternalS3StorageLocationSetting;
export declare function ExternalS3StorageLocationSettingToJSON(json: any): ExternalS3StorageLocationSetting;
export declare function ExternalS3StorageLocationSettingToJSONTyped(value?: ExternalS3StorageLocationSetting | null, ignoreDiscriminator?: boolean): any;
