/**
 * 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.
 */
/**
 * All fields that associate a Synapse object with a DOI. The objectId and objectType are required to create or mint a DOI in all circumstances.
 * @export
 * @interface DoiAssociation
 */
export interface DoiAssociation {
    /**
     * The unique ID of this DOI stored in Synapse. Provided by Synapse.
     * @type {string}
     * @memberof DoiAssociation
     */
    associationId?: string;
    /**
     * For Optimistic Concurrency Control (OCC). Required to successfully update a DOI.
     * @type {string}
     * @memberof DoiAssociation
     */
    etag?: string;
    /**
     * The unique URI of this DOI to which the resource can be resolved. Provided by Synapse.
     * @type {string}
     * @memberof DoiAssociation
     */
    doiUri?: string;
    /**
     * The DOI URL that will point to the Synapse object.  Provided by Synapse.
     * @type {string}
     * @memberof DoiAssociation
     */
    doiUrl?: string;
    /**
     * The id of the portal that this DOI is associated with.
     * @type {string}
     * @memberof DoiAssociation
     */
    portalId?: string;
    /**
     * Required. The ID of the digital object in Synapse for which this DOI is created.
     * @type {string}
     * @memberof DoiAssociation
     */
    objectId?: string;
    /**
     * The type of objects that support DOI minting
     * @type {string}
     * @memberof DoiAssociation
     */
    objectType?: DoiAssociationObjectTypeEnum;
    /**
     * Optional. The version of the digital object. When null, the DOI is associated with the current version of the object.
     * @type {number}
     * @memberof DoiAssociation
     */
    objectVersion?: number;
    /**
     * The ID of the user that creates this DOI. Provided by Synapse.
     * @type {string}
     * @memberof DoiAssociation
     */
    associatedBy?: string;
    /**
     * The date time this DOI is first created. Provided by Synapse.
     * @type {string}
     * @memberof DoiAssociation
     */
    associatedOn?: string;
    /**
     * The ID of the user that last updated this DOI. Provided by Synapse.
     * @type {string}
     * @memberof DoiAssociation
     */
    updatedBy?: string;
    /**
     * The date time this DOI is last updated. Provided by Synapse.
     * @type {string}
     * @memberof DoiAssociation
     */
    updatedOn?: string;
}
/**
 * @export
 */
export declare const DoiAssociationObjectTypeEnum: {
    readonly ENTITY: "ENTITY";
    readonly PORTAL_RESOURCE: "PORTAL_RESOURCE";
};
export type DoiAssociationObjectTypeEnum = typeof DoiAssociationObjectTypeEnum[keyof typeof DoiAssociationObjectTypeEnum];
/**
 * Check if a given object implements the DoiAssociation interface.
 */
export declare function instanceOfDoiAssociation(value: object): value is DoiAssociation;
export declare function DoiAssociationFromJSON(json: any): DoiAssociation;
export declare function DoiAssociationFromJSONTyped(json: any, ignoreDiscriminator: boolean): DoiAssociation;
export declare function DoiAssociationToJSON(json: any): DoiAssociation;
export declare function DoiAssociationToJSONTyped(value?: DoiAssociation | null, ignoreDiscriminator?: boolean): any;
