# info.description
List of APIs related to Library Resources

# paths./{id}/Audits.get.description
Get list of audit logs by module. It is used by user with "LibraryAdmin" role.

# paths./{id}/Audits/{FolderId}.get.description
Get list of audit logs by library folder linked to a module. It is used by user with "LibraryAdmin" role.

# paths./Audits/{FolderId}.get.description
Get list of audit logs by library folder. It is used by user with "LibraryAdmin" role.

# paths./Audits.get.description
Get all audit logs. It is used by user with "LibraryAdmin" role. Due to the huge amount of data returned, it is better to use listOperations for filtering and paging instead.

# paths./{ID}/File.get.description
Get all files/urls under a library folder.

# paths./{ID}/File.get.parameters[].description
Accepted populate entities used by user with "LibraryAdmin" role: Creator, downloadRequests, downloadCount

# paths./File/{id}.get.parameters[].description
Accepted populate entities used by user with "LibraryAdmin" role: Creator, downloadRequests, downloadCount

# paths./File/{id}.get.responses.403.description
Login user not authorized to perform this action

# paths./file/search.get.description
Search files/urls within all library folders, used by library admin
            The files/urls are searched by the file names,file description, url address, url description.

# paths./file/search.get.parameters[].description
Accepted populate entity: creator, folder

# paths./file/search.get.responses.403.description
Login user not authorized to perform this action

# paths./File.put.description
Change file information. It is used by user with "LibraryAdmin" role.

# paths./File.put.responses.403.description
Login user not authorized to perform this action

# paths./File.post.description
Upload a file into a library folder. It is used by user with "LibraryAdmin" role.

# paths./File.post.responses.403.description
Login user not authorized to perform this action

# paths./File.delete.description
Delete a file or url from library folder. It is used by user with "LibraryAdmin" role.

# paths./File.delete.responses.403.description
Login user not authorized to perform this action

# paths./Url.put.description
Change url information. It is used by user with "LibraryAdmin" role.

# paths./Url.put.responses.403.description
Login user not authorized to perform this action

# paths./Url.post.description
Add a url to a library folder. It is used by user with "LibraryAdmin" role.

# paths./Url.post.responses.403.description
Login user not authorized to perform this action

# paths./Files.post.description
Upload a list of files into a library folder. It is used by user with "LibraryAdmin" role.

# paths./Files.post.responses.403.description
Login user not authorized to perform this action

# paths./Files.delete.description
Delete a list of files or urls from library folders. It is used by user with "LibraryAdmin" role.

# paths./Files.delete.responses.403.description
Login user not authorized to perform this action

# paths./SortFiles.put.description
Sort all files/urls in a library folder. It is used by user with "LibraryAdmin" role.

# paths./SortFiles.put.requestBody.description
List of file IDs in the newly sorted order

# paths./SortFiles.put.responses.403.description
Login user not authorized to perform this action

# paths./DownloadFile/{ID}.get.description
Download a file from library folder. Student/lecturer of the module needs to send download request if he/she has downloaded the same file before.

# paths./DownloadFile/{ID}.get.responses.403.description
Login user not authorized to perform this action

# paths./DownloadFile/{ID}.get.responses.200.description
The file stream with content type application/octet-stream

# paths./DownloadRequests.get.description
Get all download requests for files in all library folders. It is used by user with "LibraryAdmin" role. Due to the huge amount of data returned, it is better to use listOperations for filtering and paging instead.

# paths./{id}/DownloadRequests.get.description
Get all download requests for a file. It is used by user with "LibraryAdmin" role.

# paths./{id}/DownloadRequestsByModule.get.description
Get all download requests for files linked in a module. It is used by user with "LibraryAdmin" role.

# paths./{id}/DownloadRequestsByFolder.get.description
Get all download requests in a library folder. It is used by user with "LibraryAdmin" role.

# paths./RequestFile.post.description
Submit a request to download a file in library folder again.

# paths./RequestFile.post.responses.403.description
Login user not authorized to perform this action

# paths./RequestFile.post.responses.200.description
The status of the request after submitted.

# paths./DownloadRequest/{id}/Approve.post.description
Approve a download request so that user can download the file again. It is used by user with "LibraryAdmin" role.

# paths./DownloadRequest/{id}/Approve.post.parameters[].description
Format - int64. ID of the request, the request status must be pending or rejected.

# paths./DownloadRequest/{id}/Approve.post.responses.403.description
Login user not authorized to perform this action

# paths./DownloadRequest/Approve.post.description
Approve list of download requests so that users can download files again. It is used by user with "LibraryAdmin" role.

# paths./DownloadRequest/Approve.post.responses.403.description
Login user not authorized to perform this action

# paths./DownloadRequest/{id}/Reject.post.description
Reject a download request. It is used by user with "LibraryAdmin" role.

# paths./DownloadRequest/{id}/Reject.post.parameters[].description
Format - int64. ID of the request, whose status is pending

# paths./DownloadRequest/{id}/Reject.post.responses.403.description
Login user not authorized to perform this action

# paths./DownloadRequest/Reject.post.description
Reject list of download requests. It is used by user with "LibraryAdmin" role.

# paths./DownloadRequest/Reject.post.responses.403.description
Login user not authorized to perform this action

# paths./{id}/Folder.get.description
Get list of library folders which linked to a module.

# paths./{id}/Folder.get.parameters[].description
Accepted populate entities: Creator, Lecturer, Files

# paths./{id}/Folder.get.responses.403.description
Login user not authorized to perform this action

# paths./.get.description
Get all library folders. It is used by user with "LibraryAdmin" role.

# paths./.get.parameters[].description
Accepted populate entities: Creator, Lecturer, Files

# paths./.get.responses.403.description
Login user not authorized to perform this action

# paths./.put.description
Update a new library folder. It is used by user with "LibraryAdmin" role.

# paths./.put.requestBody.description
The information of the folder to be edited.

# paths./.put.responses.403.description
Login user not authorized to perform this action

# paths./.post.description
Create a new library folder. It is used by user with "LibraryAdmin" role.

# paths./.post.responses.403.description
Login user not authorized to perform this action

# paths./.patch.description
Update a new library folder. It is used by user with "LibraryAdmin" role.

# paths./.patch.requestBody.description
The information of the folder to be edited.

# paths./.patch.responses.403.description
Login user not authorized to perform this action

# paths./search.get.description
Search library folder based on typed text. It is used by user with "LibraryAdmin" role.

# paths./search.get.parameters[].description
Accepted populate entities: Creator, Lecturer, Files

# paths./search.get.responses.403.description
Login user not authorized to perform this action

# paths./Folder/{ID}.get.parameters[].description
Accepted populate entities: Creator,  Files, Lecturer, Module, AllAccess,ParentAccess

# paths./Folder/{ID}.get.responses.403.description
Login user not authorized to perform this action

# paths./LinkFolders.post.description
Link all related library folders to a module. Those folders are prepared for that specific module code and have not been linked any module yet.
            
            This API can be used by lecturer of the module or the user with "LibraryAdmin" role.

# paths./LinkFolders.post.responses.403.description
Login user not authorized to perform this action

# paths./SortFolders.put.description
Sort all library folders under a module. It can be used by lecturer of the module or the user with "LibraryAdmin" role.

# paths./SortFolders.put.requestBody.description
List of folder ids in the newly sorted order

# paths./SortFolders.put.responses.403.description
Login user not authorized to perform this action

# paths./{id}.delete.description
Delete a new library folder along with its contents. It is used by user with "LibraryAdmin" role.

# paths./{id}.delete.responses.403.description
Login user not authorized to perform this action

# paths./Export.post.description
Export file download statistics by Faculty (academic group) and/or by Department (academic organisation). It is used by user with "LibraryAdmin" role.

# paths./Export.post.responses.403.description
Login user not authorized to perform this action

# paths./DownloadFileUrl/{ID}.get.description
Download a file from library folder. used by library admin only.

# paths./DownloadFileUrl/{ID}.get.responses.403.description
Login user not authorized to perform this action

# paths./DownloadFileUrl/{ID}.get.responses.200.description
The file stream with content type application/octet-stream

# paths./download/{ID}.get.description
The one-time download url. The url cannot be used twice for download a zip file.

# paths./statistics/folders.get.summary
Get summary of e-reserve contents by faculty

# paths./statistics/folders.get.description
Get list of folder statistics by term. It is used by user with "LibraryAdmin" role.

# paths./statistics/folders.get.parameters[].description
Term, not specified means statistics for all terms

# paths./statistics/files.get.summary
Get detailed e-reserve contents by faculty

# paths./statistics/files.get.description
Get list of files summary by faculty and term. It is used by user with "LibraryAdmin" role.

# paths./statistics/files.get.parameters[].description
Term, not specified means statistics for all terms

# paths./statistics/folders/excel.get.summary
Export summary of e-reserve contents by faculty

# paths./statistics/folders/excel.get.description
export list of folder statistics by term. It is used by user with "LibraryAdmin" role.

# paths./statistics/folders/excel.get.parameters[].description
Term, not specified means statistics for all terms

# paths./statistics/files/excel.get.summary
Export detailed e-reserve contents by faculty

# paths./statistics/files/excel.get.description
Export list of files summary by faculty and term. It is used by user with "LibraryAdmin" role.

# paths./statistics/files/excel.get.parameters[].description
Term, not specified means statistics for all terms

# components.schemas.API_NUS_Lib.API.Audit.properties.userName.description
The name of the user who created the log

# components.schemas.API_NUS_Lib.API.Audit.description
The class which is used for display all folder contents audit logs for a module.

# components.schemas.API_NUS_Lib.API.Requests.properties.status.description
The status of the request - Approved or Pending

# components.schemas.API_NUS_Lib.API.Requests.properties.reason.description
Reason for requesting to download file again

# components.schemas.API_NUS_Lib.API.Requests.properties.location.description
The location where the file is request from

# components.schemas.API_NUS_Lib.API.Requests.properties.userName.description
The name of the user who created the log

# components.schemas.API_NUS_Lib.API.Requests.description
The class which is used for display all download requests for a library resource.

# components.schemas.API_NUS_Lib.API.File.properties.userID.description
The NUSNETID of the user who created this file

# components.schemas.API_NUS_Lib.API.File.properties.userName.description
The name of the user who created this file

# components.schemas.API_NUS_Lib.API.File.properties.email.description
The email address of the user who created this file

# components.schemas.API_NUS_Lib.API.File.properties.allowDownload.description
indicate whether user can download the file. if not allowed to download, user can send a request form to admin, requesting to download again.

# components.schemas.API_NUS_Lib.API.File.properties.url.description
Url of the file when filetype is weblink

# components.schemas.API_NUS_Lib.API.File.description
The file which is used for modules by library Admin. Lecturer and Students can see the files.

# components.schemas.API_NUS_Lib.Models.InputFileForUpdate.properties.name.description
file name as downloaded file name without file extension

# components.schemas.API_NUS_Lib.Models.InputFileForUpdate.description
HTTP Post Input class when updating file

# components.schemas.API_NUS_Lib.Models.File.properties.hasComments.description
Indicate whether the file/url has comments. null means has not been checked.

# components.schemas.API_NUS_Lib.Models.File.properties.userID.description
the login ID of the user who uploaded this file/url

# components.schemas.API_NUS_Lib.Models.File.properties.userName.description
the name of the user who uploaded this file/url

# components.schemas.API_NUS_Lib.Models.File.properties.userMatricNo.description
the matric number of the user who uploaded this file/url

# components.schemas.API_NUS_Lib.Models.File.properties.email.description
the email of the user who uploaded this file/url

# components.schemas.API_NUS_Lib.Models.File.properties.resourceID.description
the ID of the resource which this content belongs to.

# components.schemas.API_NUS_Lib.Models.File.properties.creatorID.description
the ID of the user who created this record

# components.schemas.API_NUS_Lib.Models.File.properties.lastUpdatedDate.description
the date this record is edited last time

# components.schemas.API_NUS_Lib.Models.File.properties.lastUpdatedBy.description
the ID of the user who edited this record last time

# components.schemas.API_NUS_Lib.Models.File.properties.lastDeletedDate.description
the date this record is deleted if the value is not null

# components.schemas.API_NUS_Lib.Models.File.properties.lastDeletedBy.description
the ID of the user who deleted this record if the value is not null

# components.schemas.API_NUS_Lib.Models.File.properties.publish.description
the publish flag which determin whether the record is published to students.

# components.schemas.API_NUS_Lib.Models.File.properties.properties.description
the serialized string for the rest content properites.

# components.schemas.API_NUS_Lib.Models.File.description
the file class, can represent a file or a url uploaded into a folder. It inherites from [contract.Resource.Models.Resource_Content]
<seealso cref="T:contract.Resource.Models.Resource_Content" />

# components.schemas.API_NUS_Lib.Models.InputUrlForCreate.properties.publish.description
the publish flag which determine whether the resource is published to students.

# components.schemas.API_NUS_Lib.Models.InputUrlForCreate.description
HTTP Post Input class when creating weblink

# components.schemas.API_NUS_Lib.Models.InputUrlForUpdate.properties.publish.description
the publish flag which determine whether the resource is published to students.

# components.schemas.API_NUS_Lib.Models.InputUrlForUpdate.description
HTTP Post Input class when updating weblink

# components.schemas.API_NUS_Lib.Models.RequestFile.properties.targetID.description
The ID which the user requests to download

# components.schemas.API_NUS_Lib.Models.RequestFile.properties.location.description
User request location -- Home, Campus etc

# components.schemas.API_NUS_Lib.API.Folder.properties.startDate.description
the date which this resource is open to students.

# components.schemas.API_NUS_Lib.API.Folder.properties.endDate.description
the date which this resource is closed from students.

# components.schemas.API_NUS_Lib.API.Folder.properties.creatorID.description
the ID of the user who created this record

# components.schemas.API_NUS_Lib.API.Folder.properties.userID.description
The NUSNETID of the user who created this folder

# components.schemas.API_NUS_Lib.API.Folder.properties.userName.description
The name of the user who created this folder

# components.schemas.API_NUS_Lib.API.Folder.properties.email.description
The email address of the user who created this folder

# components.schemas.API_NUS_Lib.API.Folder.description
The folder which is used for modules and files by library Admin. Lecturer and Students can see the folder information and files.

# components.schemas.contract.ACL.Models.InputRoleAccess.properties.groupAccess.description
Group access rights defined for this resource

# components.schemas.contract.ACL.Models.InputRoleAccess.properties.userAccess.description
Individual user access rights which is different from the groups the user belongs to (if any)

# components.schemas.contract.ACL.Models.InputRoleAccess.properties.publicAccess.description
the access rights which the user defined for public. null means NO_ACCESS

# components.schemas.contract.ACL.Models.InputRoleAccess.properties.inheritedResourceID.description
not null means it follow permission from another resource

# components.schemas.API_NUS_Lib.API.InputFolderForCreate.properties.startDate.description
the date which this resource is open to students.

# components.schemas.API_NUS_Lib.API.InputFolderForCreate.properties.endDate.description
the date which this resource is closed from students.

# components.schemas.API_NUS_Lib.API.InputFolderForCreate.properties.publish.description
the publish flag which determine whether the resource is published to students.

# components.schemas.API_NUS_Lib.API.InputFolderForCreate.properties.access.description
Library access rights, refer to [contract.ACL.Models.InputRoleAccess]
Public access not supported for library.

# components.schemas.API_NUS_Lib.API.InputFolderForUpdate.properties.startDate.description
the date which this resource is open to students.

# components.schemas.API_NUS_Lib.API.InputFolderForUpdate.properties.endDate.description
the date which this resource is closed from students.

# components.schemas.API_NUS_Lib.API.InputFolderForUpdate.properties.publish.description
the publish flag which determine whether the resource is published to students.

# components.schemas.API_NUS_Lib.API.InputFolderForUpdate.properties.access.description
Library access rights, refer to [contract.ACL.Models.InputRoleAccess]
Public access not supported for library.

# components.schemas.API_NUS_Lib.API.InputForExportStatistics.properties.startDate.description
the start date which this resource is open to students.

# components.schemas.API_NUS_Lib.API.InputForExportStatistics.properties.endDate.description
the date which this resource is closed from students.

# components.schemas.API_NUS_Lib.API.FileStatistics.properties.publishedFilesCount.description
Number of published files in this folder