/**
 * 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 upload destination for an S3 object storage NOT managed by Synapse. This is different from ExternalS3StorageLocationSetting, which contains information about an external S3 storage that is managed by Synapse
 * @export
 * @interface ExternalObjectStorageLocationSetting
 */
export interface ExternalObjectStorageLocationSetting {
    /**
     * Indicates which implementation this object represents.
     * @type {string}
     * @memberof ExternalObjectStorageLocationSetting
     */
    concreteType: ExternalObjectStorageLocationSettingConcreteTypeEnum;
    /**
     * The unique ID for this storage location
     * @type {number}
     * @memberof ExternalObjectStorageLocationSetting
     */
    storageLocationId?: number;
    /**
     * The enumeration of possible upload types.
     * @type {string}
     * @memberof ExternalObjectStorageLocationSetting
     */
    uploadType?: ExternalObjectStorageLocationSettingUploadTypeEnum;
    /**
     * The banner text to display to a user every time a file is uploaded. This field is optional.
     * @type {string}
     * @memberof ExternalObjectStorageLocationSetting
     */
    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 ExternalObjectStorageLocationSetting
     */
    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 ExternalObjectStorageLocationSetting
     */
    etag?: string;
    /**
     * The date this storage location setting was created.
     * @type {string}
     * @memberof ExternalObjectStorageLocationSetting
     */
    createdOn?: string;
    /**
     * The ID of the user that created this storage location setting.
     * @type {number}
     * @memberof ExternalObjectStorageLocationSetting
     */
    createdBy?: number;
    /**
     * The bucket name
     * @type {string}
     * @memberof ExternalObjectStorageLocationSetting
     */
    bucket: string;
    /**
     * endpoint URL of the S3 service (for example: 'https://s3.amazonaws.com')
     * @type {string}
     * @memberof ExternalObjectStorageLocationSetting
     */
    endpointUrl: string;
}
/**
 * @export
 */
export declare const ExternalObjectStorageLocationSettingConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_project_ExternalObjectStorageLocationSetting: "org.sagebionetworks.repo.model.project.ExternalObjectStorageLocationSetting";
};
export type ExternalObjectStorageLocationSettingConcreteTypeEnum = typeof ExternalObjectStorageLocationSettingConcreteTypeEnum[keyof typeof ExternalObjectStorageLocationSettingConcreteTypeEnum];
/**
 * @export
 */
export declare const ExternalObjectStorageLocationSettingUploadTypeEnum: {
    readonly S3: "S3";
    readonly GOOGLECLOUDSTORAGE: "GOOGLECLOUDSTORAGE";
    readonly SFTP: "SFTP";
    readonly HTTPS: "HTTPS";
    readonly PROXYLOCAL: "PROXYLOCAL";
    readonly NONE: "NONE";
};
export type ExternalObjectStorageLocationSettingUploadTypeEnum = typeof ExternalObjectStorageLocationSettingUploadTypeEnum[keyof typeof ExternalObjectStorageLocationSettingUploadTypeEnum];
/**
 * Check if a given object implements the ExternalObjectStorageLocationSetting interface.
 */
export declare function instanceOfExternalObjectStorageLocationSetting(value: object): value is ExternalObjectStorageLocationSetting;
export declare function ExternalObjectStorageLocationSettingFromJSON(json: any): ExternalObjectStorageLocationSetting;
export declare function ExternalObjectStorageLocationSettingFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExternalObjectStorageLocationSetting;
export declare function ExternalObjectStorageLocationSettingToJSON(json: any): ExternalObjectStorageLocationSetting;
export declare function ExternalObjectStorageLocationSettingToJSONTyped(value?: ExternalObjectStorageLocationSetting | null, ignoreDiscriminator?: boolean): any;
