/**
 * 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 { AccessMethod } from './AccessMethod';
import type { Checksum } from './Checksum';
import type { Content } from './Content';
/**
 * The drs object metadata, Currently supported type is blob(DrsObject without contents array) and bundle(DrsObject with contents array).
 * @export
 * @interface DrsObject
 */
export interface DrsObject {
    /**
     * An identifier unique to this DrsObject.A drs object id should be Synapse id with version which makes it immutable e.g syn32132536.1
     * @type {string}
     * @memberof DrsObject
     */
    id?: string;
    /**
     * A string that can be used to name a DrsObject. This string is made up of uppercase and lowercase letters, decimal digits, hypen, period, and underscore [A-Za-z0-9.-_].
     * @type {string}
     * @memberof DrsObject
     */
    name?: string;
    /**
     * Drs self uri is drs://<hostname>/<id> and can be used by clients to store and pass around.
     * @type {string}
     * @memberof DrsObject
     */
    self_uri?: string;
    /**
     * For blobs, the blob size in bytes. For bundles, the cumulative size, in bytes, of items in the contents field.
     * @type {number}
     * @memberof DrsObject
     */
    size?: number;
    /**
     * Timestamp of object creation in RFC3339.
     * @type {string}
     * @memberof DrsObject
     */
    created_time?: string;
    /**
     * Timestamp of object updated in RFC3339.
     * @type {string}
     * @memberof DrsObject
     */
    updated_time?: string;
    /**
     * Version of drs object.
     * @type {string}
     * @memberof DrsObject
     */
    version?: string;
    /**
     * The mime-type of the drs object. Must be: <a href="http://en.wikipedia.org/wiki/Internet_media_type"> Internet_media_type </a>
     * @type {string}
     * @memberof DrsObject
     */
    mime_type?: string;
    /**
     * The hex-string encoded checksum for the drs object. At least one checksum must be provided. For blobs, the checksum is computed over the bytes in the blob that is md5. For bundles, the checksum is computed over a sorted concatenation of the checksums of its top-level contained objects.
     * @type {Array<Checksum>}
     * @memberof DrsObject
     */
    checksums?: Array<Checksum>;
    /**
     * For blob there is no contents and for bundle its list of object inside the bundle.
     * @type {Array<Content>}
     * @memberof DrsObject
     */
    contents?: Array<Content>;
    /**
     * The list of access methods that can be used to fetch the DrsObject. Required for single blobs and bundles have no access method.
     * @type {Array<AccessMethod>}
     * @memberof DrsObject
     */
    access_methods?: Array<AccessMethod>;
    /**
     * A readable description of the DrsObject.
     * @type {string}
     * @memberof DrsObject
     */
    description?: string;
}
/**
 * Check if a given object implements the DrsObject interface.
 */
export declare function instanceOfDrsObject(value: object): value is DrsObject;
export declare function DrsObjectFromJSON(json: any): DrsObject;
export declare function DrsObjectFromJSONTyped(json: any, ignoreDiscriminator: boolean): DrsObject;
export declare function DrsObjectToJSON(json: any): DrsObject;
export declare function DrsObjectToJSONTyped(value?: DrsObject | null, ignoreDiscriminator?: boolean): any;
