/**
 * 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 { CurationTaskProperties } from './CurationTaskProperties';
/**
 * The CurationTask provides instructions for a Data Contributor on how data or metadata of a specific type should be both added to a project and curated. There should be a CurationTask for each type of data/metadata to be contributed to a project. There are currently two categories of curation tasks: file-based metadata collection and record-based metadata collection. For each category there will be a concrete implementation of this interface. This interfaces defines the common fields of all CurationTasks.
 * @export
 * @interface CurationTask
 */
export interface CurationTask {
    /**
     * The unique identifier issued to this task when it was created.
     * @type {number}
     * @memberof CurationTask
     */
    taskId?: number;
    /**
     * Will match the data type that a contributor plans to contribute.  The dataType must be unique within a project.
     * @type {string}
     * @memberof CurationTask
     */
    dataType?: string;
    /**
     * The synId of the project.
     * @type {string}
     * @memberof CurationTask
     */
    projectId?: string;
    /**
     * Instructions to the data contributor.
     * @type {string}
     * @memberof CurationTask
     */
    instructions?: string;
    /**
     * Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date.
     * @type {string}
     * @memberof CurationTask
     */
    etag?: string;
    /**
     *
     * @type {string}
     * @memberof CurationTask
     */
    createdOn?: string;
    /**
     *
     * @type {string}
     * @memberof CurationTask
     */
    modifiedOn?: string;
    /**
     *
     * @type {string}
     * @memberof CurationTask
     */
    createdBy?: string;
    /**
     *
     * @type {string}
     * @memberof CurationTask
     */
    modifiedBy?: string;
    /**
     * The principal ID of the user or team assigned to this task. Null if unassigned. For metadata tasks, determines the owner of the grid session. Team members can all join grid sessions owned by their team, while user-owned grid sessions are restricted to that user only.
     * @type {string}
     * @memberof CurationTask
     */
    assigneePrincipalId?: string;
    /**
     *
     * @type {CurationTaskProperties}
     * @memberof CurationTask
     */
    taskProperties?: CurationTaskProperties;
}
/**
 * Check if a given object implements the CurationTask interface.
 */
export declare function instanceOfCurationTask(value: object): value is CurationTask;
export declare function CurationTaskFromJSON(json: any): CurationTask;
export declare function CurationTaskFromJSONTyped(json: any, ignoreDiscriminator: boolean): CurationTask;
export declare function CurationTaskToJSON(json: any): CurationTask;
export declare function CurationTaskToJSONTyped(value?: CurationTask | null, ignoreDiscriminator?: boolean): any;
