diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/ApiNodesModelFactory.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/ApiNodesModelFactory.java index 9605a79f32..0038bcac07 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/ApiNodesModelFactory.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/ApiNodesModelFactory.java @@ -40,6 +40,7 @@ import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedul import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.rest.api.Nodes; +import org.alfresco.rest.api.model.AssocChild; import org.alfresco.rest.api.model.ContentInfo; import org.alfresco.rest.api.model.Node; import org.alfresco.rest.api.model.UserInfo; @@ -61,7 +62,9 @@ import org.alfresco.rm.rest.api.model.UnfiledRecordFolder; import org.alfresco.rm.rest.api.model.UnfiledRecordFolderChild; import org.alfresco.service.ServiceRegistry; import org.alfresco.service.cmr.model.FileInfo; +import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ContentData; +import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.namespace.NamespaceService; @@ -466,10 +469,6 @@ public class ApiNodesModelFactory { transferChild.setIsClosed((Boolean) nodeService.getProperty(info.getNodeRef(), RecordsManagementModel.PROP_IS_CLOSED)); } - if(isMinimalInfo && includeParam.contains(TransferChild.PARAM_IS_COMPLETED)) - { - transferChild.setIsCompleted(null); - } } else { @@ -485,10 +484,6 @@ public class ApiNodesModelFactory { transferChild.setIsClosed(null); } - if(isMinimalInfo && includeParam.contains(TransferChild.PARAM_IS_COMPLETED)) - { - transferChild.setIsCompleted(nodeService.hasAspect(info.getNodeRef(), RecordsManagementModel.ASPECT_DECLARED_RECORD)); - } } } @@ -520,7 +515,7 @@ public class ApiNodesModelFactory { recordCategoryChild.setIsClosed((Boolean) nodeService.getProperty(info.getNodeRef(), RecordsManagementModel.PROP_IS_CLOSED)); } - if((!isMinimalInfo && propertyFilter.isAllowed(RMNode.PARAM_HAS_RETENTION_SCHEDULE)) || (isMinimalInfo && includeParam.contains(RMNode.PARAM_HAS_RETENTION_SCHEDULE))) + if (includeParam.contains(RMNode.PARAM_HAS_RETENTION_SCHEDULE)) { recordCategoryChild.setHasRetentionSchedule(null); } @@ -535,7 +530,7 @@ public class ApiNodesModelFactory { recordCategoryChild.setIsRecordCategory(true); } - if((!isMinimalInfo && propertyFilter.isAllowed(RMNode.PARAM_HAS_RETENTION_SCHEDULE)) || (isMinimalInfo && includeParam.contains(RMNode.PARAM_HAS_RETENTION_SCHEDULE))) + if (includeParam.contains(RMNode.PARAM_HAS_RETENTION_SCHEDULE)) { DispositionSchedule ds = dispositionService.getDispositionSchedule(info.getNodeRef()); recordCategoryChild.setHasRetentionSchedule(ds !=null ? true : false); @@ -600,6 +595,48 @@ public class ApiNodesModelFactory return nodes.mapFromNodeProperties(properties, new ArrayList<>(), new HashMap<>(), EXCLUDED_NS, EXCLUDED_PROPS); } + /** + * Utility method that maps associations, applicable only for records + * + * @param rmNode + * @param info + * @param includeParam + */ + private void mapAssociations(RMNode rmNode, FileInfo info, List includeParam) + { + if (includeParam.contains(RMNode.PARAM_INCLUDE_ASSOCIATION)) + { + NodeRef nodeRef = info.getNodeRef(); + ChildAssociationRef parentAssocRef = nodeService.getPrimaryParent(nodeRef); + + if ((parentAssocRef == null) || (parentAssocRef.getParentRef() == null) + || (!parentAssocRef.getParentRef().equals(rmNode.getParentId()))) + { + List parentAssocRefs = nodeService.getParentAssocs(nodeRef); + for (ChildAssociationRef pAssocRef : parentAssocRefs) + { + if (pAssocRef.getParentRef().equals(rmNode.getParentId())) + { + // for now, assume same parent/child cannot appear more than once (due to unique name) + parentAssocRef = pAssocRef; + break; + } + } + } + + if (parentAssocRef != null) + { + QName assocTypeQName = parentAssocRef.getTypeQName(); + if ((assocTypeQName != null) && (!EXCLUDED_NS.contains(assocTypeQName.getNamespaceURI()))) + { + AssocChild childAssoc = new AssocChild(assocTypeQName.toPrefixString(namespaceService), parentAssocRef.isPrimary()); + + rmNode.setAssociation(childAssoc); + } + } + } + } + /** * Creates an object of type FilePlan * @@ -760,6 +797,10 @@ public class ApiNodesModelFactory mapBasicInfo(unfiledContainerChild, info, parameters.getFilter(), mapUserInfo, isMinimalInfo); mapOptionalInfo(unfiledContainerChild, info, parameters.getInclude(), isMinimalInfo); mapUnfiledChildInfo(unfiledContainerChild, info, parameters.getFilter()); + if (unfiledContainerChild.getIsRecord()) + { + mapAssociations(unfiledContainerChild, info, parameters.getInclude()); + } return unfiledContainerChild; } @@ -797,6 +838,10 @@ public class ApiNodesModelFactory mapBasicInfo(unfiledRecordFolderChild, info, parameters.getFilter(), mapUserInfo, isMinimalInfo); mapOptionalInfo(unfiledRecordFolderChild, info, parameters.getInclude(), isMinimalInfo); mapUnfiledChildInfo(unfiledRecordFolderChild, info, parameters.getFilter()); + if (unfiledRecordFolderChild.getIsRecord()) + { + mapAssociations(unfiledRecordFolderChild, info, parameters.getInclude()); + } return unfiledRecordFolderChild; } @@ -834,6 +879,7 @@ public class ApiNodesModelFactory mapBasicInfo(record, info, parameters.getFilter(), mapUserInfo, isMinimalInfo); mapOptionalInfo(record, info, parameters.getInclude(), isMinimalInfo); mapRecordInfo(record, info, parameters.getInclude()); + mapAssociations(record, info, parameters.getInclude()); return record; } } diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/model/RMNode.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/model/RMNode.java index 7ddc40ded9..aae2a3c434 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/model/RMNode.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/model/RMNode.java @@ -31,6 +31,7 @@ import java.util.Date; import java.util.List; import java.util.Map; +import org.alfresco.rest.api.model.Assoc; import org.alfresco.rest.api.model.PathInfo; import org.alfresco.rest.api.model.UserInfo; import org.alfresco.rest.framework.resource.UniqueId; @@ -65,6 +66,7 @@ public abstract class RMNode public static final String PARAM_HAS_RETENTION_SCHEDULE = "hasRetentionSchedule"; public static final String PARAM_IS_CLOSED = "isClosed"; + public static final String PARAM_INCLUDE_ASSOCIATION = "association"; public static final String FILE_PLAN_TYPE = "rma:filePlan"; public static final String RECORD_CATEGORY_TYPE = "rma:recordCategory"; @@ -94,6 +96,7 @@ public abstract class RMNode protected Map properties; protected PathInfo path; protected List allowableOperations; + protected Assoc association; public RMNode() { @@ -221,4 +224,14 @@ public abstract class RMNode this.allowableOperations = allowableOperations; } + public Assoc getAssociation() + { + return association; + } + + public void setAssociation(Assoc association) + { + this.association = association; + } + } diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/model/TransferChild.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/model/TransferChild.java index 1defbb7e84..bf0285ca6b 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/model/TransferChild.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/model/TransferChild.java @@ -39,7 +39,6 @@ public class TransferChild extends RMNode public static final String PARAM_IS_RECORD_FOLDER = "isRecordFolder"; public static final String PARAM_IS_RECORD = "isRecord"; - protected Boolean isCompleted; protected Boolean isClosed; protected Boolean isRecordFolder; protected Boolean isRecord; @@ -48,16 +47,6 @@ public class TransferChild extends RMNode { } - public Boolean getIsCompleted() - { - return isCompleted; - } - - public void setIsCompleted(Boolean isCompleted) - { - this.isCompleted = isCompleted; - } - public Boolean getIsClosed() { return isClosed; diff --git a/rm-community/rm-community-rest-api-explorer/src/main/webapp/definitions/gs-core-api.yaml b/rm-community/rm-community-rest-api-explorer/src/main/webapp/definitions/gs-core-api.yaml index a8218af2f3..1fc288cfda 100644 --- a/rm-community/rm-community-rest-api-explorer/src/main/webapp/definitions/gs-core-api.yaml +++ b/rm-community/rm-community-rest-api-explorer/src/main/webapp/definitions/gs-core-api.yaml @@ -208,6 +208,8 @@ paths: Get information for file plan **filePlanId** Besides mandatory fields the file plan's aspects and properties are returned by default. + + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: getFilePlan parameters: - $ref: '#/parameters/filePlanIdWithAliasParam' @@ -296,10 +298,8 @@ paths: Minimal information for each child is returned by default. - You can use the **include** parameter to return additional information. + You can use the **include** parameter (include=allowableOperations) to return additional information. - You can use the **include** parameter (include=association) to return child association details - for each child, including the **assocType** and the **isPrimary** flag. operationId: getFilePlanCategories produces: - application/json @@ -307,14 +307,14 @@ paths: - $ref: '#/parameters/filePlanIdWithAliasParam' - $ref: '#/parameters/skipCountParam' - $ref: '#/parameters/maxItemsParam' - - $ref: '#/parameters/recordCategoryEntryIncludeParam' + - $ref: '#/parameters/filePlanCategoriesEntryIncludeParam' - $ref: '#/parameters/filePlanIncludeSourceParam' - $ref: '#/parameters/fieldsParam' responses: '200': description: Successful response schema: - $ref: '#/definitions/RecordCategoryAssociationPaging' + $ref: '#/definitions/RecordCategoryPaging' '401': description: If authentication fails '403': @@ -336,8 +336,6 @@ paths: the API method tries to create a unique name using an integer suffix. - Any field in the JSON body defined below can also be passed as a form-data field. - This API method also supports record category creation using application/json. You must specify at least a **name**. @@ -434,6 +432,8 @@ paths: Get information for unfiled records contianer **unfiledContainerId** Besides mandatory fields the unfiled records container's aspects and properties are returned by default. + + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: getUnfiledContainer parameters: - $ref: '#/parameters/unfiledContainerIdParam' @@ -527,7 +527,7 @@ paths: Minimal information for each child is returned by default. - You can use the **include** parameter to return additional information. + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: listUnfiledContainerChildren produces: - application/json @@ -536,7 +536,7 @@ paths: - $ref: '#/parameters/skipCountParam' - $ref: '#/parameters/maxItemsParam' - $ref: '#/parameters/unfiledRecordFolderAndContainerWhereParam' - - $ref: '#/parameters/unfiledContainerEntryIncludeParam' + - $ref: '#/parameters/unfiledContainerChildEntryIncludeParam' - $ref: '#/parameters/unfiledContainerIncludeSourceParam' - $ref: '#/parameters/fieldsParam' responses: @@ -664,7 +664,7 @@ paths: parameters: - $ref: '#/parameters/unfiledContainerIdParam' - $ref: '#/parameters/autoRenameParam' - - $ref: '#/parameters/unfiledContainerEntryIncludeParam' + - $ref: '#/parameters/unfiledRecordFolderEntryIncludeParam' - $ref: '#/parameters/fieldsParam' - in: body name: nodeBodyCreate @@ -705,6 +705,8 @@ paths: Get information for unfiled record folder id **unfiledRecordFolderId** Besides mandatory fields the unfiled record folder's aspects and properties are returned by default. + + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: getUnfiledRecordFolder parameters: - $ref: '#/parameters/unfiledRecordFolderIdParam' @@ -758,6 +760,7 @@ paths: operationId: updateUnfiledRecordFolder parameters: - $ref: '#/parameters/unfiledRecordFolderIdParam' + - $ref: '#/parameters/unfiledRecordFolderEntryIncludeParam' - $ref: '#/parameters/unfiledRecordFolderIncludeSourceParam' - $ref: '#/parameters/fieldsParam' - in: body @@ -829,7 +832,7 @@ paths: Minimal information for each child is returned by default. - You can use the **include** parameter to return additional information. + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: listUnfiledRecordFolderChildren produces: - application/json @@ -838,7 +841,7 @@ paths: - $ref: '#/parameters/skipCountParam' - $ref: '#/parameters/maxItemsParam' - $ref: '#/parameters/unfiledRecordFolderAndContainerWhereParam' - - $ref: '#/parameters/unfiledRecordFolderEntryIncludeParam' + - $ref: '#/parameters/unfiledRecordFolderChildEntryIncludeParam' - $ref: '#/parameters/unfiledRecordFolderRelativePathParam' - $ref: '#/parameters/unfiledRecordFolderIncludeSourceParam' - $ref: '#/parameters/fieldsParam' @@ -1008,6 +1011,8 @@ paths: Get information for record category **recordCategoryId** Besides mandatory fields the record category's aspects and properties are returned by default. + + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: getRecordCategory parameters: - $ref: '#/parameters/recordCategoryIdParam' @@ -1132,12 +1137,9 @@ paths: Minimal information for each child is returned by default. - You can use the **include** parameter to return additional information. + You can use the **include** parameter (include=allowableOperations) to return additional information. The list of child nodes includes primary children and secondary children, if there are any. - - You can use the **include** parameter (include=association) to return child association details - for each child, including the **assocType** and the **isPrimary** flag. operationId: listRecordCategoryChildren produces: - application/json @@ -1146,7 +1148,7 @@ paths: - $ref: '#/parameters/skipCountParam' - $ref: '#/parameters/maxItemsParam' - $ref: '#/parameters/recordCategoryWhereParam' - - $ref: '#/parameters/recordCategoryChildIncludeParam' + - $ref: '#/parameters/recordCategoryChildEntryIncludeParam' - $ref: '#/parameters/recordCategoryRelativePathParam' - $ref: '#/parameters/recordCategoryIncludeSourceParam' - $ref: '#/parameters/fieldsParam' @@ -1154,7 +1156,7 @@ paths: '200': description: Successful response schema: - $ref: '#/definitions/RecordCategoryAssociationPaging' + $ref: '#/definitions/RecordCategoryChildPaging' '401': description: If authentication fails '403': @@ -1176,8 +1178,6 @@ paths: the API method tries to create a unique name using an integer suffix. - Any field in the JSON body defined below can also be passed as a form-data field. - This API method also supports record category or record folder creation using application/json. You must specify at least a **name** and **nodeType**. @@ -1271,7 +1271,7 @@ paths: parameters: - $ref: '#/parameters/recordCategoryIdParam' - $ref: '#/parameters/autoRenameParam' - - $ref: '#/parameters/recordCategoryChildEntryIncludeParam' + - $ref: '#/parameters/recordCategoryEntryIncludeParam' - $ref: '#/parameters/fieldsParam' - in: body name: nodeBodyCreate @@ -1313,6 +1313,8 @@ paths: Get information for record folder **recordFolderId** Besides mandatory fields the record folder's aspects and properties are returned by default. + + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: getRecordFolder parameters: - $ref: '#/parameters/recordFolderIdParam' @@ -1436,12 +1438,9 @@ paths: Minimal information for each record is returned by default. - You can use the **include** parameter to return additional information. - The list of records includes primary children and secondary children, if there are any. - You can use the **include** parameter (include=association) to return child association details - for each child, including the **assocType** and the **isPrimary** flag. + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: listRecordFolderChildren produces: - application/json @@ -1563,7 +1562,7 @@ paths: operationId: createRecordFolderChild parameters: - $ref: '#/parameters/recordFolderIdParam' - - $ref: '#/parameters/recordFolderChildEntryIncludeParam' + - $ref: '#/parameters/recordEntryIncludeParam' - $ref: '#/parameters/fieldsParam' - in: body name: recordBodyCreate @@ -1605,6 +1604,8 @@ paths: Get information for record **recordId** Besides mandatory fields the record's aspects and properties are returned by default. + + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: getRecord parameters: - $ref: '#/parameters/recordIdParam' @@ -1759,6 +1760,8 @@ paths: You can specify the target record folder by providing its id **targetParentId** If the record is already filed, a link to the target record folder is created. + + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: fileRecord parameters: - $ref: '#/parameters/recordIdParam' @@ -1854,6 +1857,8 @@ paths: Get information for transfer container **transferContainerId** Besides mandatory fields the transfer container's aspects and properties are returned by default. + + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: getTransferContainer parameters: - $ref: '#/parameters/transferContainerIdWithAliasParam' @@ -1946,10 +1951,7 @@ paths: Minimal information for each child is returned by default. - You can use the **include** parameter to return additional information. - - You can use the **include** parameter (include=association) to return child association details - for each child, including the **assocType** and the **isPrimary** flag. + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: listTransfers produces: - application/json @@ -1957,7 +1959,7 @@ paths: - $ref: '#/parameters/transferContainerIdWithAliasParam' - $ref: '#/parameters/skipCountParam' - $ref: '#/parameters/maxItemsParam' - - $ref: '#/parameters/transferEntryIncludeParam' + - $ref: '#/parameters/transferContainerChildEntryIncludeParam' - $ref: '#/parameters/transferContainerIncludeSourceParam' - $ref: '#/parameters/fieldsParam' responses: @@ -1985,6 +1987,8 @@ paths: Get information for transfer **transferId** Besides mandatory fields the transfer's aspects and properties are returned by default. + + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: getTransfer parameters: - $ref: '#/parameters/transferIdParam' @@ -2020,10 +2024,7 @@ paths: Minimal information for each child is returned by default. - You can use the **include** parameter to return additional information. - - You can use the **include** parameter (include=association) to return child association details - for each child, including the **assocType** and the **isPrimary** flag. + You can use the **include** parameter (include=allowableOperations) to return additional information. operationId: listTransfersChildren produces: - application/json @@ -2063,6 +2064,21 @@ parameters: items: type: string collectionFormat: csv + filePlanCategoriesEntryIncludeParam: + name: include + in: query + description: | + Returns additional information about the record category. Any optional field from the response model can be requested. For example: + * allowableOperations + * aspectNames + * hasRetentionSchedule + * path + * properties + required: false + type: array + items: + type: string + collectionFormat: csv filePlanIdWithAliasParam: name: filePlanId in: path @@ -2095,6 +2111,21 @@ parameters: items: type: string collectionFormat: csv + unfiledContainerChildEntryIncludeParam: + name: include + in: query + description: | + Returns additional information about the unfiled records container children. Any optional field from the response model can be requested. For example: + * allowableOperations + * aspectNames + * association + * path + * properties + required: false + type: array + items: + type: string + collectionFormat: csv unfiledContainerIncludeSourceParam: name: includeSource in: query @@ -2121,6 +2152,21 @@ parameters: items: type: string collectionFormat: csv + unfiledRecordFolderChildEntryIncludeParam: + name: include + in: query + description: | + Returns additional information about the unfiled records container children. Any optional field from the response model can be requested. For example: + * allowableOperations + * aspectNames + * association + * path + * properties + required: false + type: array + items: + type: string + collectionFormat: csv unfiledRecordFolderRelativePathParam: name: relativePath in: query @@ -2161,21 +2207,8 @@ parameters: in: query description: | Returns additional information about the record category. Any optional field from the response model can be requested. For example: + * allowableOperations * hasRetentionSchedule - * isRecordCategory - * allowableOperations - * path - required: false - type: array - items: - type: string - collectionFormat: csv - recordCategoryChildEntryIncludeParam: - name: include - in: query - description: | - Returns additional information about the record category. Any optional field from the response model can be requested. For example: - * allowableOperations * path required: false type: array @@ -2195,19 +2228,19 @@ parameters: description: Also include **source** in addition to **entries** with folder information on the parent node – either the specified parent **recordCategoryId**, or as resolved by **relativePath**. required: false type: boolean - recordCategoryChildIncludeParam: + recordCategoryChildEntryIncludeParam: name: include in: query description: | - Returns additional information about the record category. Any optional field from the response model can be requested. For example: - * properties + Returns additional information about the record category child. Any optional field from the response model can be requested. For example: + * allowableOperations * aspectNames * hasRetentionSchedule * isClosed * isRecordCategory * isRecordFolder - * allowableOperations * path + * properties required: false type: array items: @@ -2240,10 +2273,8 @@ parameters: in: query description: | Returns additional information about the record folders. Any optional field from the response model can be requested. For example: - * properties - * aspectNames - * isClosed * allowableOperations + * isClosed * path required: false type: array @@ -2261,11 +2292,13 @@ parameters: in: query description: | Returns additional information about the records. Any optional field from the response model can be requested. For example: - * properties - * aspectNames - * isCompleted * allowableOperations + * aspectNames + * association + * content + * isCompleted * path + * properties required: false type: array items: @@ -2304,6 +2337,22 @@ parameters: items: type: string collectionFormat: csv + transferContainerChildEntryIncludeParam: + name: include + in: query + description: | + Returns additional information about the transfer folders. Any optional field from the response model can be requested. For example: + * allowableOperations + * aspectNames + * properties + * transferPDFIndicator + * transferLocation + * transferAccessionIndicator + required: false + type: array + items: + type: string + collectionFormat: csv transferContainerIncludeSourceParam: name: includeSource in: query @@ -2316,12 +2365,10 @@ parameters: in: query description: | Returns additional information about the transfer folder. Any optional field from the response model can be requested. For example: + * allowableOperations * transferPDFIndicator * transferLocation * transferAccessionIndicator - * properties - * aspectNames - * allowableOperations required: false type: array items: @@ -2344,14 +2391,13 @@ parameters: in: query description: | Returns additional information about the transfer's child. Any optional field from the response model can be requested. For example: - * properties - * aspectNames - * isCompleted - * isRecord - * isClosed - * isRecordFolder * allowableOperations + * aspectNames + * isClosed + * isRecord + * isRecordFolder * path + * properties required: false type: array items: @@ -2369,9 +2415,9 @@ parameters: in: query description: | Returns additional information about the record. Any optional field from the response model can be requested. For example: - * isCompleted - * content * allowableOperations + * content + * isCompleted * path required: false type: array @@ -2525,12 +2571,6 @@ definitions: FilePlanBodyUpdate: type: object properties: - name: - type: string - pattern: "^(?!(.*[\\\"\\*\\\\\\>\\<\\?\\/\\:\\|]+.*)|(.*[\\.]?.*[\\.]+$)|(.*[ ]+$))" - description: | - The name must not contain spaces or the following special characters: * " < > \ / ? : and |. - The character . must not be used at the end of the name. properties: type: object additionalProperties: @@ -2617,6 +2657,8 @@ definitions: - id - name - nodeType + - isUnfiledRecordFolder + - isRecord - createdAt - createdByUser - modifiedAt @@ -2635,6 +2677,10 @@ definitions: The character . must not be used at the end of the name. nodeType: type: string + isUnfiledRecordFolder: + type: boolean + isRecord: + type: boolean modifiedAt: type: string format: date-time @@ -2705,6 +2751,8 @@ definitions: - id - name - nodeType + - isUnfiledRecordFolder + - isRecord - createdAt - createdByUser - modifiedAt @@ -2723,6 +2771,10 @@ definitions: The character . must not be used at the end of the name. nodeType: type: string + isUnfiledRecordFolder: + type: boolean + isRecord: + type: boolean modifiedAt: type: string format: date-time @@ -2758,6 +2810,8 @@ definitions: - id - name - nodeType + - isUnfiledRecordFolder + - isRecord - createdAt - createdByUser - modifiedAt @@ -2776,6 +2830,10 @@ definitions: The character . must not be used at the end of the name. nodeType: type: string + isUnfiledRecordFolder: + type: boolean + isRecord: + type: boolean modifiedAt: type: string format: date-time @@ -2963,7 +3021,7 @@ definitions: properties: entry: $ref: '#/definitions/RecordCategoryChild' - RecordCategoryAssociationPaging: + RecordCategoryPaging: type: object properties: list: @@ -2974,23 +3032,23 @@ definitions: entries: type: array items: - $ref: '#/definitions/RecordCategoryChildAssociationEntry' + $ref: '#/definitions/RecordCategoryEntry' + source: + $ref: '#/definitions/FilePlan' + RecordCategoryChildPaging: + type: object + properties: + list: + type: object + properties: + pagination: + $ref: '#/definitions/Pagination' + entries: + type: array + items: + $ref: '#/definitions/RecordCategoryChildEntry' source: $ref: '#/definitions/RecordCategory' - RecordCategoryChildAssociationEntry: - type: object - required: - - entry - properties: - entry: - $ref: '#/definitions/RecordCategoryChildAssociation' - RecordCategoryChildAssociation: - allOf: - - $ref: '#/definitions/RecordCategoryChild' - - type: object - properties: - association: - $ref: '#/definitions/ChildAssociationInfo' ## Record folder RecordFolder: type: object @@ -3368,10 +3426,6 @@ definitions: type: boolean default: false description: Indicates if the record folder is closed - isCompleted: - type: boolean - default: false - description: Present only for record nodes. Indicates if the record has a retention schedule defined modifiedAt: type: string format: date-time