/**
* 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 { DoiResourceType } from './DoiResourceType';
import type { DoiTitle } from './DoiTitle';
import type { DoiCreator } from './DoiCreator';
/**
* JSON schema for fields associated with a DOI and its metadata. This object contains fields from both DoiAssociation and DataciteMetadata.
To mint a DOI, the following fields are required:
- Information that uniquely identifies an object in Synapse
- The object ID (e.g. "syn12345")
- The object type (Note: as of this writing, only ENTITY is supported)
- The version number of the object (Optional. A "null" version will mint a DOI that will point to the most recent version of the object, even if the object changes)
- An eTag (Necessary when updating an existing DOI)
- Additional supplementary information to mint a DOI
- Creator(s)
- Title(s)
- The general resource type
- A publication year (no later than one year after the current year)
For more information, see the DoiAssociation and DataciteMetadata objects.
* @export
* @interface V2Doi
*/
export interface V2Doi {
/**
* Required. The main researchers involved in producing the data, or the authors of the publication, in priority order.
* @type {Array}
* @memberof V2Doi
*/
creators?: Array;
/**
* Required. A name or title by which a resource is known.
* @type {Array}
* @memberof V2Doi
*/
titles?: Array;
/**
* Required. The year that this resource became publicly accessible. Must be in YYYY format.
* @type {number}
* @memberof V2Doi
*/
publicationYear?: number;
/**
*
* @type {DoiResourceType}
* @memberof V2Doi
*/
resourceType?: DoiResourceType;
/**
* The publisher of the DOI, for a portal DOI matches the Portal name
* @type {string}
* @memberof V2Doi
*/
publisher?: string;
/**
* The unique ID of this DOI stored in Synapse. Provided by Synapse.
* @type {string}
* @memberof V2Doi
*/
associationId?: string;
/**
* For Optimistic Concurrency Control (OCC). Required to successfully update a DOI.
* @type {string}
* @memberof V2Doi
*/
etag?: string;
/**
* The unique URI of this DOI to which the resource can be resolved. Provided by Synapse.
* @type {string}
* @memberof V2Doi
*/
doiUri?: string;
/**
* The DOI URL that will point to the Synapse object. Provided by Synapse.
* @type {string}
* @memberof V2Doi
*/
doiUrl?: string;
/**
* The id of the portal that this DOI is associated with.
* @type {string}
* @memberof V2Doi
*/
portalId?: string;
/**
* Required. The ID of the digital object in Synapse for which this DOI is created.
* @type {string}
* @memberof V2Doi
*/
objectId?: string;
/**
* The type of objects that support DOI minting
* @type {string}
* @memberof V2Doi
*/
objectType?: V2DoiObjectTypeEnum;
/**
* Optional. The version of the digital object. When null, the DOI is associated with the current version of the object.
* @type {number}
* @memberof V2Doi
*/
objectVersion?: number;
/**
* The ID of the user that creates this DOI. Provided by Synapse.
* @type {string}
* @memberof V2Doi
*/
associatedBy?: string;
/**
* The date time this DOI is first created. Provided by Synapse.
* @type {string}
* @memberof V2Doi
*/
associatedOn?: string;
/**
* The ID of the user that last updated this DOI. Provided by Synapse.
* @type {string}
* @memberof V2Doi
*/
updatedBy?: string;
/**
* The date time this DOI is last updated. Provided by Synapse.
* @type {string}
* @memberof V2Doi
*/
updatedOn?: string;
}
/**
* @export
*/
export declare const V2DoiObjectTypeEnum: {
readonly ENTITY: "ENTITY";
readonly PORTAL_RESOURCE: "PORTAL_RESOURCE";
};
export type V2DoiObjectTypeEnum = typeof V2DoiObjectTypeEnum[keyof typeof V2DoiObjectTypeEnum];
/**
* Check if a given object implements the V2Doi interface.
*/
export declare function instanceOfV2Doi(value: object): value is V2Doi;
export declare function V2DoiFromJSON(json: any): V2Doi;
export declare function V2DoiFromJSONTyped(json: any, ignoreDiscriminator: boolean): V2Doi;
export declare function V2DoiToJSON(json: any): V2Doi;
export declare function V2DoiToJSONTyped(value?: V2Doi | null, ignoreDiscriminator?: boolean): any;