/**
 * 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.
 */
/**
 * Represents a file stored in an S3 Bucket to which Synapse cannot access. Together with ExternalObjectStorageLocationSetting, this object provides the information the client requires to access the S3 file.
 * @export
 * @interface ExternalObjectStoreFileHandle
 */
export interface ExternalObjectStoreFileHandle {
    /**
     * The ID of this FileHandle.  All references to this FileHandle will use this ID.  Synapse will generate this ID when the FileHandle is created.
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    id?: string;
    /**
     * FileHandles are immutable from the perspective of the API.  The only field that can be change is the previewId.  When a new previewId is set, the etag will change.
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    etag?: string;
    /**
     * The ID Of the user that created this file.
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    createdBy?: string;
    /**
     * The date when this file was uploaded.
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    createdOn?: string;
    /**
     * The date when the file was modified. This is handled by the backend and cannot be modified.
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    modifiedOn?: string;
    /**
     * This is used to indicate the implementation of this interface. For example, an S3FileHandle should be set to: org.sagebionetworks.repo.model.file.S3FileHandle
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    concreteType: ExternalObjectStoreFileHandleConcreteTypeEnum;
    /**
     * Must be: http://en.wikipedia.org/wiki/Internet_media_type
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    contentType?: string;
    /**
     * The file's content MD5.
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    contentMd5?: string;
    /**
     * The short, user visible name for this file.
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    fileName?: string;
    /**
     * The optional storage location descriptor
     * @type {number}
     * @memberof ExternalObjectStoreFileHandle
     */
    storageLocationId?: number;
    /**
     * The size of the file in bytes.
     * @type {number}
     * @memberof ExternalObjectStoreFileHandle
     */
    contentSize?: number;
    /**
     * The status of the file handle as computed by the backend. This value cannot be changed, any file handle that is not AVAILABLE should not be used.
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    status?: ExternalObjectStoreFileHandleStatusEnum;
    /**
     * endpoint URL of the S3 service. Do NOT set this value when creating a ExternalObjectStoreFileHandle since it will be overwritten with the value defined in the ExternalObjectStorageLocationSetting it references.
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    endpointUrl?: string;
    /**
     * the bucket to use. Do NOT set this value when creating a ExternalObjectStoreFileHandle since it will be  it will be overwritten with the value defined in the ExternalObjectStorageLocationSetting it references.
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    bucket?: string;
    /**
     * The unique S3 key for this object
     * @type {string}
     * @memberof ExternalObjectStoreFileHandle
     */
    fileKey: string;
}
/**
 * @export
 */
export declare const ExternalObjectStoreFileHandleConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_file_ExternalObjectStoreFileHandle: "org.sagebionetworks.repo.model.file.ExternalObjectStoreFileHandle";
};
export type ExternalObjectStoreFileHandleConcreteTypeEnum = typeof ExternalObjectStoreFileHandleConcreteTypeEnum[keyof typeof ExternalObjectStoreFileHandleConcreteTypeEnum];
/**
 * @export
 */
export declare const ExternalObjectStoreFileHandleStatusEnum: {
    readonly AVAILABLE: "AVAILABLE";
    readonly UNLINKED: "UNLINKED";
    readonly ARCHIVED: "ARCHIVED";
};
export type ExternalObjectStoreFileHandleStatusEnum = typeof ExternalObjectStoreFileHandleStatusEnum[keyof typeof ExternalObjectStoreFileHandleStatusEnum];
/**
 * Check if a given object implements the ExternalObjectStoreFileHandle interface.
 */
export declare function instanceOfExternalObjectStoreFileHandle(value: object): value is ExternalObjectStoreFileHandle;
export declare function ExternalObjectStoreFileHandleFromJSON(json: any): ExternalObjectStoreFileHandle;
export declare function ExternalObjectStoreFileHandleFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExternalObjectStoreFileHandle;
export declare function ExternalObjectStoreFileHandleToJSON(json: any): ExternalObjectStoreFileHandle;
export declare function ExternalObjectStoreFileHandleToJSONTyped(value?: ExternalObjectStoreFileHandle | null, ignoreDiscriminator?: boolean): any;
