/** * 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 { RestrictableObjectDescriptor } from './RestrictableObjectDescriptor'; /** * JSON schema for in-Synapse 'Access Control Team' controlled Access Requirement, a 'tier 3' Access Requirement. This access requirement allows the ACT managing the detail requirements, and submissions within Synapse. * @export * @interface ManagedACTAccessRequirement */ export interface ManagedACTAccessRequirement { /** * The version number issued to this version on the object. * @type {number} * @memberof ManagedACTAccessRequirement */ versionNumber?: number; /** * The unique immutable ID. Provided by the system, the user may not set this field. * @type {number} * @memberof ManagedACTAccessRequirement */ id?: number; /** * Depricated. Replaced by name. * @type {string} * @memberof ManagedACTAccessRequirement */ description?: string; /** * Name of the AR. Limited to 50 characters and must be unique. Required. * @type {string} * @memberof ManagedACTAccessRequirement */ name?: 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 object is out-of-date. * @type {string} * @memberof ManagedACTAccessRequirement */ etag?: string; /** * The date this object was created. Provided by the system, the user may not set this field. * @type {string} * @memberof ManagedACTAccessRequirement */ createdOn?: string; /** * The date this object was last modified. Provided by the system, the user may not set this field. * @type {string} * @memberof ManagedACTAccessRequirement */ modifiedOn?: string; /** * The user that created this object. Provided by the system, the user may not set this field. * @type {string} * @memberof ManagedACTAccessRequirement */ createdBy?: string; /** * The user that last modified this object. Provided by the system, the user may not set this field. * @type {string} * @memberof ManagedACTAccessRequirement */ modifiedBy?: string; /** * Defaults to 'false'. When 'true', the subjects controlled by this AR are defined by the the'_accessRequirementIds' annotations on individual entities. This property is mutually exclusive with 'subjectIds'. If this is set to 'true' then 'subjectIds' must be excluded or empty. * @type {boolean} * @memberof ManagedACTAccessRequirement */ subjectsDefinedByAnnotations?: boolean; /** * The IDs of the items controlled by this Access Requirement when 'subjectsDefinedByAnnotations=false'. This property is mutually exclusive with 'subjectsDefinedByAnnotations'. When 'subjectsDefinedByAnnotations=true' then this property must be empty or excluded. Required when creating or updating and 'subjectsDefinedByAnnotations=false' or 'subjectsDefinedByAnnotations' is excluded. * @type {Array} * @memberof ManagedACTAccessRequirement */ subjectIds?: Array; /** * The enumeration of possible permission. * @type {string} * @memberof ManagedACTAccessRequirement */ accessType?: ManagedACTAccessRequirementAccessTypeEnum; /** * Indicates which type of AccessRequirement this object represents. Provided by the system, the user may not set this field. * @type {string} * @memberof ManagedACTAccessRequirement */ concreteType: ManagedACTAccessRequirementConcreteTypeEnum; /** * If true, then accessor needs to be a Synapse Certified User to gain access. * @type {boolean} * @memberof ManagedACTAccessRequirement */ isCertifiedUserRequired?: boolean; /** * If true, then accessor needs to have their Synapse Profile validated to gain access. * @type {boolean} * @memberof ManagedACTAccessRequirement */ isValidatedProfileRequired?: boolean; /** * If true, then accessor needs to fill, sign, and submit a Data Use Certificate (DUC) to gain access to the data. * @type {boolean} * @memberof ManagedACTAccessRequirement */ isDUCRequired?: boolean; /** * If the Data Use Certificate (DUC) is required, creator of this requirement needs to upload a Data Use Certificate (DUC) template. Users have to download this template, fill out, sign and submit it. * @type {string} * @memberof ManagedACTAccessRequirement */ ducTemplateFileHandleId?: string; /** * If true, then accessor needs to submit an Institutional Review Board (IRB) Approval document to gain access to the data. * @type {boolean} * @memberof ManagedACTAccessRequirement */ isIRBApprovalRequired?: boolean; /** * If true, then accessor needs to upload attachment(s) other than Data Use Certificate (DUC) and Institutional Review Board (IRB) Approval document to gain access to the data. * @type {boolean} * @memberof ManagedACTAccessRequirement */ areOtherAttachmentsRequired?: boolean; /** * After an AccessApproval is granted for this AccessRequirement, it will be expired after expirationPeriod miliseconds. Set this value to 0 to indicate that AccessApproval will never be expired. * @type {number} * @memberof ManagedACTAccessRequirement */ expirationPeriod?: number; /** * If true, the Intended Data Use Statements submitted to gain access to the data will be presented to public. * @type {boolean} * @memberof ManagedACTAccessRequirement */ isIDUPublic?: boolean; /** * If true (default), the Intended Data Use Statement for a research project is required. * @type {boolean} * @memberof ManagedACTAccessRequirement */ isIDURequired?: boolean; /** * If true, then accessor needs to enable two factor authentication before gaining access to the data. * @type {boolean} * @memberof ManagedACTAccessRequirement */ isTwoFaRequired?: boolean; } /** * @export */ export declare const ManagedACTAccessRequirementAccessTypeEnum: { readonly CREATE: "CREATE"; readonly READ: "READ"; readonly UPDATE: "UPDATE"; readonly DELETE: "DELETE"; readonly CHANGE_PERMISSIONS: "CHANGE_PERMISSIONS"; readonly DOWNLOAD: "DOWNLOAD"; readonly UPLOAD: "UPLOAD"; readonly PARTICIPATE: "PARTICIPATE"; readonly SUBMIT: "SUBMIT"; readonly READ_PRIVATE_SUBMISSION: "READ_PRIVATE_SUBMISSION"; readonly UPDATE_SUBMISSION: "UPDATE_SUBMISSION"; readonly DELETE_SUBMISSION: "DELETE_SUBMISSION"; readonly TEAM_MEMBERSHIP_UPDATE: "TEAM_MEMBERSHIP_UPDATE"; readonly SEND_MESSAGE: "SEND_MESSAGE"; readonly CHANGE_SETTINGS: "CHANGE_SETTINGS"; readonly MODERATE: "MODERATE"; readonly REVIEW_SUBMISSIONS: "REVIEW_SUBMISSIONS"; readonly EXEMPTION_ELIGIBLE: "EXEMPTION_ELIGIBLE"; }; export type ManagedACTAccessRequirementAccessTypeEnum = typeof ManagedACTAccessRequirementAccessTypeEnum[keyof typeof ManagedACTAccessRequirementAccessTypeEnum]; /** * @export */ export declare const ManagedACTAccessRequirementConcreteTypeEnum: { readonly org_sagebionetworks_repo_model_ManagedACTAccessRequirement: "org.sagebionetworks.repo.model.ManagedACTAccessRequirement"; }; export type ManagedACTAccessRequirementConcreteTypeEnum = typeof ManagedACTAccessRequirementConcreteTypeEnum[keyof typeof ManagedACTAccessRequirementConcreteTypeEnum]; /** * Check if a given object implements the ManagedACTAccessRequirement interface. */ export declare function instanceOfManagedACTAccessRequirement(value: object): value is ManagedACTAccessRequirement; export declare function ManagedACTAccessRequirementFromJSON(json: any): ManagedACTAccessRequirement; export declare function ManagedACTAccessRequirementFromJSONTyped(json: any, ignoreDiscriminator: boolean): ManagedACTAccessRequirement; export declare function ManagedACTAccessRequirementToJSON(json: any): ManagedACTAccessRequirement; export declare function ManagedACTAccessRequirementToJSONTyped(value?: ManagedACTAccessRequirement | null, ignoreDiscriminator?: boolean): any;