UNPKG

alfresco-js-api

Version:

JavaScript client library for the Alfresco REST API

1,573 lines (1,467 loc) 46.7 kB
swagger: '2.0' info: description: Provides access to classification and security mark related features. version: '1' title: Alfresco Governance Services Security Controls basePath: /alfresco/api/-default-/public/gs/versions/1 securityDefinitions: basicAuth: type: basic description: HTTP Basic Authentication security: - basicAuth: [] consumes: - application/json produces: - application/json tags: - name: classification-guides description: Retrieve and manage classification guides - name: classification-reasons description: Retrieve and manage classification reasons. - name: declassification-exemptions description: Retrieve and manage declassification exemptions. - name: security-control-settings description: Retrieve and manage security control settings - name: default-classification-values description: Retrieve and manage default classification values paths: /classification-guides: get: summary: List all classification guides description: Gets all classification guides. operationId: listClassificationGuides tags: - classification-guides parameters: - $ref: '#/parameters/guideInclude' - $ref: '#/parameters/skipCountParam' - $ref: '#/parameters/maxItemsParam' - $ref: '#/parameters/orderByParam' - name: where in: query description: | A string to restrict the returned objects by using a predicate. Supported operations are AND, NOT, and OR. Fields to filter on: * enabled - e.g. (enabled = true OR enabled = false) required: false type: string responses: '200': description: A paged array of classifications schema: $ref: '#/definitions/ClassificationGuidePaging' '401': $ref: '#/responses/401' default: $ref: '#/responses/default' post: summary: Create a classification guide description: Creates a new classification guide. operationId: createClassificationGuide tags: - classification-guides parameters: - name: classificationGuide description: Classification guide in: body required: true schema: $ref: '#/definitions/ClassificationGuideBody' responses: '201': description: Successful response schema: $ref: '#/definitions/ClassificationGuideEntry' '400': description: | Invalid parameter: The **classificationGuide** is invalid '401': $ref: '#/responses/401' '403': description: Current user doesn't have permission to create classification guides '409': description: There's already a classification guide with this name '422': description: Couldn't create guide. Guide name can't end in a period or contain any of these characters "*\><?/| default: $ref: '#/responses/default' /classification-guides/{classificationGuideId}: get: summary: Get classification guide information description: Gets the classification guide with id **classificationGuideId**. operationId: showClassificationGuideById tags: - classification-guides parameters: - $ref: '#/parameters/classificationGuideId' responses: '200': description: Successful response schema: $ref: '#/definitions/ClassificationGuideEntry' '400': description: | Invalid parameter: **classificationGuideId** is not in valid format '401': $ref: '#/responses/401' '404': description: "**classificationGuideId** does not exist" default: $ref: '#/responses/default' put: tags: - classification-guides summary: Update a classification guide description: Updates the classification guide with id **classificationGuideId**. For example, you can rename a classification guide. operationId: updateClassificationGuide parameters: - $ref: '#/parameters/classificationGuideId' - name: classificationGuide description: Classification guide in: body required: true schema: $ref: '#/definitions/ClassificationGuideBody' produces: - application/json responses: '200': description: Successful response schema: $ref: '#/definitions/ClassificationGuideEntry' '400': description: | Invalid parameter: **classificationGuideId** is not in a valid format or the **classificationGuide** is invalid '401': $ref: '#/responses/401' '403': description: Current user does not have permission to update the guide with id **classificationGuideId** '404': description: "**classificationGuideId** does not exist" '409': description: Name clashes with an existing classification guide '422': description: Couldn't edit guide. Guide name can't end in a period or contain any of these characters "*\><?/| default: $ref: '#/responses/default' delete: tags: - classification-guides summary: Delete a classification guide description: Deletes the classification guide with id **classificationGuideId**, including any topics and instructions. operationId: deleteClassificationGuide parameters: - $ref: '#/parameters/classificationGuideId' responses: '204': $ref: '#/responses/204' '400': description: | Invalid parameter: **classificationGuideId** is not in a valid format '401': $ref: '#/responses/401' '403': description: | Current user does not have permission to delete **classificationGuideId** or one of its descendents '404': description: "**classificationGuideId** does not exist" default: $ref: '#/responses/default' /classification-guides/{classificationGuideId}/topics: get: summary: List all topics description: Gets all topics. operationId: listTopics tags: - classification-guides parameters: - $ref: '#/parameters/classificationGuideId' - $ref: '#/parameters/topicInclude' - $ref: '#/parameters/skipCountParam' - $ref: '#/parameters/maxItemsParam' - $ref: '#/parameters/orderByParam' - name: where in: query description: | A string to restrict the returned objects by using a predicate. Supported operations are AND, NOT, and OR e.g. (instruction=true and hasSubtopics=false). Fields to filter on: * hasInstruction * hasSubtopics required: false type: string - $ref: '#/parameters/includeSourceParam' responses: '200': description: An paged array of topics schema: $ref: '#/definitions/TopicPaging' '400': description: | Invalid parameter: **classificationGuideId** is not in valid format '401': $ref: '#/responses/401' '404': description: "**classificationGuideId** does not exist" default: $ref: '#/responses/default' post: summary: Create a topic description: Creates a new topic. operationId: createTopic tags: - classification-guides parameters: - $ref: '#/parameters/classificationGuideId' - name: topic description: Topic in: body required: true schema: $ref: '#/definitions/TopicBody' - $ref: '#/parameters/topicInclude' responses: '201': description: Successful response schema: $ref: '#/definitions/TopicEntry' '400': description: | Invalid parameter: The **classificationGuideId** is not a valid format or the **topic** is invalid. '401': $ref: '#/responses/401' '403': description: Current user doesn't have permission to create a topic under this classification guide '404': description: "**classificationGuideId** does not exist" '409': description: Name clashes with an existing topic in this classification guide '422': description: The security marks information contains unsupported marks (e.g. a mark belonging to a "user_requires_any" group) default: $ref: '#/responses/default' /topics/{topicId}: get: summary: Get topic information description: Gets the topic with id **topicId**. operationId: showTopicById tags: - classification-guides parameters: - $ref: '#/parameters/topicId' - $ref: '#/parameters/topicInclude' responses: '200': description: Successful response schema: $ref: '#/definitions/TopicEntry' '400': description: | Invalid parameter: **topicId** is not in a valid format '401': $ref: '#/responses/401' '404': description: "**topicId** does not exist or the current user doesn't have permission to view the instruction for this topic" default: $ref: '#/responses/default' put: tags: - classification-guides summary: Update a topic description: | Updates the topic with id **topicId**. Use this to rename a topic or to add, edit, or remove the instruction associated with it. operationId: updateTopic parameters: - $ref: '#/parameters/topicId' - name: topic description: Topic in: body required: true schema: $ref: '#/definitions/TopicBody' - $ref: '#/parameters/topicInclude' produces: - application/json responses: '200': description: Successful response schema: $ref: '#/definitions/TopicEntry' '400': description: | Invalid parameter: **topicId** is not a valid format, the **topic** is invalid or if this is an attempt to add an instruction to a topic which has subtopics. '401': $ref: '#/responses/401' '403': description: Current user does not have permission to update the topic with id **topicId** '404': description: "**topicId** does not exist or the current user doesn't have permission to view the instruction for this topic" '409': description: Name clashes with an existing topic in this classification guide '422': description: The security marks information contains unsupported marks (e.g. a mark belonging to a "user_requires_any" group) default: $ref: '#/responses/default' delete: tags: - classification-guides summary: Delete a topic description: Deletes the topic with id **topicId**, including any subtopics and instructions. operationId: deleteTopic parameters: - $ref: '#/parameters/topicId' responses: '204': $ref: '#/responses/204' '400': description: | Invalid parameter: **topicId** is not in a valid format '401': $ref: '#/responses/401' '403': description: Current user does not have permission to delete **topicId** or one of its descendents '404': description: | "**topicId** does not exist or the current user doesn't have permission to view the instruction for this topic" default: $ref: '#/responses/default' /topics/{topicId}/subtopics: get: summary: List all subtopics description: Gets all subtopics of a topic. operationId: listSubtopics tags: - classification-guides parameters: - $ref: '#/parameters/topicId' - $ref: '#/parameters/topicInclude' - $ref: '#/parameters/skipCountParam' - $ref: '#/parameters/maxItemsParam' - $ref: '#/parameters/orderByParam' - name: where in: query description: | A string to restrict the returned objects by using a predicate. Supported operations are AND, NOT, and OR. Fields to filter on: * hasInstruction * hasSubtopics required: false type: string - $ref: '#/parameters/includeSourceParam' responses: '200': description: An paged array of subtopics schema: $ref: '#/definitions/SubtopicPaging' '401': $ref: '#/responses/401' '404': description: "**topicId** does not exist or the current user doesn't have permission to view the instruction for this topic" default: $ref: '#/responses/default' post: summary: Create a subtopic description: Creates a new subtopic of a topic. operationId: createSubtopic tags: - classification-guides parameters: - $ref: '#/parameters/topicId' - name: topic description: Subtopic in: body required: true schema: $ref: '#/definitions/TopicBody' - $ref: '#/parameters/topicInclude' responses: '201': description: Successful response schema: $ref: '#/definitions/TopicEntry' '400': description: | Invalid parameter: The **topicId** is not in a valid format, the subtopic **topic** is invalid '401': $ref: '#/responses/401' '403': description: Current user doesn't have permission to create a subtopic under this topic '404': description: | "**topicId** does not exist or the current user doesn't have permission to view the instruction for the parent topic" '409': description: Name clashes with an existing subtopic of this topic '422': description: Parent topic already has an instruction and so cannot contain subtopics default: $ref: '#/responses/default' /combined-instructions: post: summary: Combined instructions description: Combines instructions from the given topics and the user defined instruction, if any. operationId: combinedInstructions tags: - classification-guides parameters: - name: instructions description: Instructions in: body required: false schema: $ref: '#/definitions/CombinedInstructionBody' responses: '200': description: An instruction that represents the combination of all the specified instructions. schema: $ref: '#/definitions/InstructionEntry' '400': description: | Invalid parameter: **topicIds** is not a valid format. '401': $ref: '#/responses/401' '404': description: One or more **topicIds**, or a field from the classification information or security mark information has not been found. default: $ref: '#/responses/default' /classification-reasons: get: summary: List all classification reasons description: Gets all classification reasons. operationId: listClassificationReasons tags: - classification-reasons parameters: - $ref: '#/parameters/skipCountParam' - $ref: '#/parameters/maxItemsParam' - $ref: '#/parameters/fieldsParam' responses: '200': description: A paged array of classification reasons schema: $ref: '#/definitions/ClassificationReasonsPaging' '401': $ref: '#/responses/401' default: $ref: '#/responses/default' post: summary: Create a classification reason description: | Creates a new classification reason. **Note:** You can create more than one reason by specifying a list of reasons in the JSON body. For example, the following JSON body creates two classification reasons: ```JSON [ { "code":"My Code1", "description":"My Description1" }, { "code":"My Code2", "description":"My Description2" } ] ``` If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example: ```JSON { "list": { "pagination": { "count": 2, "hasMoreItems": false, "totalItems": 2, "skipCount": 0, "maxItems": 100 }, "entries": [ { "entry": { ... } }, { "entry": { ... } } ] } } ``` operationId: createClassificationReason tags: - classification-reasons parameters: - name: classificationReason description: Classification reason in: body required: true schema: $ref: '#/definitions/ClassificationReasonBody' responses: '201': description: Successful response schema: $ref: '#/definitions/ClassificationReasonEntry' '400': description: | Invalid parameter: The **classificationReason** is is not in a valid format '401': $ref: '#/responses/401' '403': description: >- Current user doesn't have permission to create classification reasons **classificationReason** '409': description: Reason code clashes with an existing classification reason default: $ref: '#/responses/default' '/classification-reasons/{classificationReasonId}': get: summary: Get classification reason information description: Gets the classification reason **classificationReasonId**. operationId: showClassificationReasonById tags: - classification-reasons parameters: - $ref: '#/parameters/classificationReasonId' responses: '200': description: Successful response schema: $ref: '#/definitions/ClassificationReasonEntry' '400': description: | Invalid parameter: **classificationReasonId** is not in valid format '401': $ref: '#/responses/401' '404': description: "**classificationReasonId** does not exist" default: $ref: '#/responses/default' put: tags: - classification-reasons summary: Update a classification reason description: >- Updates the classification reason with id **classificationReasonId**. For example, you can change a classification reason code or description. operationId: updateClassificationReason parameters: - $ref: '#/parameters/classificationReasonId' - name: classificationReason description: Classification reason in: body required: true schema: $ref: '#/definitions/ClassificationReasonBody' produces: - application/json responses: '200': description: Successful response schema: $ref: '#/definitions/ClassificationReasonEntry' '400': description: > Invalid parameter: **classificationReasonId** is not in a valid format or the **classificationReason** is invalid '401': $ref: '#/responses/401' '403': description: >- Current user does not have permission to update **classificationReasonId** '404': description: '**classificationReasonId** does not exist' '409': description: Reason code clashes with an existing classification reason default: $ref: '#/responses/default' delete: tags: - classification-reasons summary: Delete a classification reason description: >- Deletes the classification reason **classificationReasonId**. You can't delete a classification reason that is being used to classify content. There must be at least one classification reason. operationId: deleteClassificationReason parameters: - $ref: '#/parameters/classificationReasonId' responses: '204': $ref: '#/responses/204' '400': description: > Invalid parameter: **classificationReasonId** is not in a valid format '401': $ref: '#/responses/401' '403': description: > Current user does not have permission to delete **classificationReasonId** '404': description: '**classificationReasonId** does not exist' '422': description: > Model integrity exception: **classificationReasonId** is in use or is the last reason on the system. default: $ref: '#/responses/default' ## Security control settings '/security-control-settings/{securityControlSettingKey}': get: summary: Get security control setting value description: Gets the value for a selected **securityControlSettingKey**. operationId: getSecurityControlSetting tags: - security-control-settings parameters: - $ref: '#/parameters/securityControlSettingKeyParam' responses: '200': description: Successful response schema: $ref: '#/definitions/SecurityControlSettingEntry' '401': $ref: '#/responses/401' '403': description: "Current user does not have permission to retrieve the value for **securityControlSettingKey**" '404': description: "**securityControlSettingKey** does not exist" default: $ref: '#/responses/default' put: summary: Update security control setting value description: Updates the value of a selected **securityControlSettingKey**. operationId: updateSecurityControlSetting tags: - security-control-settings parameters: - $ref: '#/parameters/securityControlSettingKeyParam' - name: securityControlSettingValue description: The new value for the security control setting. This can be a string or number, depending on the setting key. in: body required: true schema: $ref: '#/definitions/SecurityControlSettingBody' produces: - application/json responses: '200': description: Successful response schema: $ref: '#/definitions/SecurityControlSettingEntry' '400': description: > Invalid parameter: **securityControlSettingValue** is not in a valid format or the **securityControlSettingKey** is invalid '401': $ref: '#/responses/401' '403': description: "Current user does not have permission to update the value for the setting with key **securityControlSettingKey**" '404': description: "**securityControlSettingKey** does not exists" default: $ref: '#/responses/default' /declassification-exemptions: get: summary: List all declassification exemptions description: Gets all declassification exemptions. operationId: listDeclassificationExemptions tags: - declassification-exemptions parameters: - $ref: '#/parameters/skipCountParam' - $ref: '#/parameters/maxItemsParam' responses: '200': description: A paged array of declassification exemptions schema: $ref: '#/definitions/DeclassificationExemptionsPaging' '401': $ref: '#/responses/401' default: $ref: '#/responses/default' post: summary: Create a declassification exemption description: | Creates a new declassification exemption. **Note:** You can create more than one exemption by specifying a list of exemptions in the JSON body. For example, the following JSON body creates two declassification exemptions: ```JSON [ { "code":"My Code1", "description":"My Description1" }, { "code":"My Code2", "description":"My Description2" } ] ``` If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example: ```JSON { "list": { "pagination": { "count": 2, "hasMoreItems": false, "totalItems": 2, "skipCount": 0, "maxItems": 100 }, "entries": [ { "entry": { ... } }, { "entry": { ... } } ] } } ``` operationId: createDeclassificationExemption tags: - declassification-exemptions parameters: - name: declassificationExemption description: Declassification exemption in: body required: true schema: $ref: '#/definitions/DeclassificationExemptionBody' responses: '201': description: Successful response schema: $ref: '#/definitions/DeclassificationExemptionEntry' '400': description: | Invalid parameter: The **declassificationExemption** is invalid '401': $ref: '#/responses/401' '403': description: >- Current user doesn't have permission to create declassification exemptions '409': description: Exemption code clashes with an existing declassification exemption default: $ref: '#/responses/default' '/declassification-exemptions/{declassificationExemptionId}': get: summary: Get declassification exemption information description: Gets the declassification exemption with id **declassificationExemptionId**. operationId: showDeclassificationExemptionById tags: - declassification-exemptions parameters: - $ref: '#/parameters/declassificationExemptionId' responses: '200': description: Successful response schema: $ref: '#/definitions/DeclassificationExemptionEntry' '400': description: | Invalid parameter: **declassificationExemptionId** is not in valid format '401': $ref: '#/responses/401' '404': description: "**declassificationExemptionId** does not exist" default: $ref: '#/responses/default' put: tags: - declassification-exemptions summary: Update a declassification exemption description: >- Updates the declassification exemption with id **declassificationExemptionId**. For example, you can rename a declassification exemption. operationId: updateDeclassificationExemption parameters: - $ref: '#/parameters/declassificationExemptionId' - name: declassificationExemption description: Declassification exemption in: body required: true schema: $ref: '#/definitions/DeclassificationExemptionBody' produces: - application/json responses: '200': description: Successful response schema: $ref: '#/definitions/DeclassificationExemptionEntry' '400': description: > Invalid parameter: **declassificationExemptionId** is not in a valid format or the **declassificationExemption** is invalid '401': $ref: '#/responses/401' '403': description: >- Current user does not have permission to update the guide with id **declassificationExemptionId** '404': description: '**declassificationExemptionId** does not exist' '409': description: Exemption code clashes with an existing declassification exemption default: $ref: '#/responses/default' delete: tags: - declassification-exemptions summary: Delete a declassification exemption description: >- Deletes the declassification exemption with id **declassificationExemptionId**. You can't delete a classification exemption that is being used to classify content. operationId: deleteDeclassificationExemption parameters: - $ref: '#/parameters/declassificationExemptionId' responses: '204': $ref: '#/responses/204' '400': description: > Invalid parameter: **declassificationExemptionId** is not in a valid format '401': $ref: '#/responses/401' '403': description: > Current user does not have permission to delete **declassificationExemptionId** '404': description: '**declassificationExemptionId** does not exist' '422': description: > Model integrity exception: **classificationExemptionId** is in use or is the last exemption on the system. default: $ref: '#/responses/default' ## Default classification values '/default-classification-values/{nodeId}/calculate-declassification-date': post: summary: Calculate the default declassification date description: Calculates the default declassification date for **nodeId** based on the properties of the node and the current declassification time frame. operationId: calculateDefaultDeclassificationDate tags: - default-classification-values parameters: - $ref: '#/parameters/nodeIdParam' responses: '200': description: Successful response schema: $ref: '#/definitions/DeclassificationDate' '401': $ref: '#/responses/401' '403': description: "Current user does not have permission to retrive default values for **nodeId**" '404': description: "**nodeId** does not exist" default: $ref: '#/responses/default' parameters: classificationGuideId: name: classificationGuideId in: path description: The identifier for the classification guide type: string required: true topicId: name: topicId in: path description: The identifier for the topic type: string required: true classificationReasonId: name: classificationReasonId in: path description: The identifier for the classification reason type: string required: true declassificationExemptionId: name: declassificationExemptionId in: path description: The identifier for the declassification exemption type: string required: true topicInclude: name: include in: query description: | Returns additional information about the topic. The following optional fields can be requested: * hasSubtopics - A flag indicating whether the topic already contains any subtopics. * instruction - Contains details of any instruction in the topic. * path - An ordered list of id-name pairs of all ancestor topics and the classification guide. * classificationGuide - The classification guide this topic is in. required: false type: array items: type: string collectionFormat: csv securityControlSettingKeyParam: name: securityControlSettingKey in: path description: | The key for the security control setting. You can use one of the following settings: * -declassificationTimeFrame- for the declassification time frame value set in alfresco-global.properties file required: true type: string guideInclude: name: include in: query description: | Returns additional information about the guide. The following optional fields can be requested: * hasTopics - A flag indicating whether the guide already contains any topics. required: false type: array items: type: string collectionFormat: csv ## Core parameter nodeIdParam: name: nodeId in: path description: The identifier of a node. required: true type: string ## Core parameter skipCountParam: name: skipCount in: query description: The number of entities that exist in the collection before those included in this list. required: false type: integer minimum: 0 ## Core parameter maxItemsParam: name: maxItems in: query description: The maximum number of items to return in the list. required: false type: integer minimum: 1 ## Core parameter whereParam: name: where in: query description: A string to restrict the returned objects by using a predicate. required: false type: string ## Core parameter orderByParam: name: orderBy in: query description: | A string to control the order of the entities returned in a list. You can use the **orderBy** parameter to sort the list by one or more fields. Each field has a default sort order, which is normally acending order. Read the API method implementation notes above to check if any fields used in this method have a descending default search order. To sort the entities in a specific order, you can use the **ASC** and **DESC** keywords for any field. required: false type: array items: type: string collectionFormat: csv ## Core parameter includeSourceParam: name: includeSource in: query description: Also include **source** in addition to **entries** with folder information on the parent guide/topic required: false type: boolean ## Core definition fieldsParam: name: fields in: query description: | A list of field names. You can use this parameter to restrict the fields returned within a response if, for example, you want to save on overall bandwidth. The list applies to a returned individual entity or entries within a collection. If the API method also supports the **include** parameter, then the fields specified in the **include** parameter are returned in addition to those specified in the **fields** parameter. required: false type: array items: type: string collectionFormat: csv responses: '204': description: Successful response '401': description: Authentication failed default: description: Unexpected error schema: $ref: '#/definitions/Error' definitions: ClassificationGuidesBody: required: - name - originatingOrganization - publishedOn properties: name: type: string originatingOrganization: type: string publishedOn: type: string format: date enabled: type: boolean default: false hasTopics: type: boolean ClassificationGuideBody: required: - name - originatingOrganization - publishedOn properties: name: type: string originatingOrganization: type: string publishedOn: type: string format: date enabled: type: boolean default: false ClassificationGuidesInTopic: description: The classification guide which the topic is contained in. This field is only returned when requested. allOf: - $ref: '#/definitions/ClassificationGuidesBody' required: - id - createdAt - enabled properties: id: type: string createdAt: type: string format: date-time ClassificationGuideInTopic: description: The classification guide which the topic is contained in. This field is only returned when requested. allOf: - $ref: '#/definitions/ClassificationGuideBody' required: - id - createdAt - enabled properties: id: type: string createdAt: type: string format: date-time ClassificationGuides: description: A classification guide in a list. allOf: - $ref: '#/definitions/ClassificationGuidesInTopic' ClassificationGuide: description: A classification guide. allOf: - $ref: '#/definitions/ClassificationGuideInTopic' ClassificationGuidesEntry: type: object required: - entry properties: entry: $ref: '#/definitions/ClassificationGuides' ClassificationGuideEntry: type: object required: - entry properties: entry: $ref: '#/definitions/ClassificationGuide' ClassificationGuidePaging: type: object properties: list: type: object properties: pagination: $ref: '#/definitions/Pagination' entries: type: array items: $ref: '#/definitions/ClassificationGuidesEntry' TopicBody: required: - name properties: name: type: string description: type: string instruction: $ref: '#/definitions/InstructionBody' Topic: required: - id - name - hasInstruction - createdAt properties: id: type: string name: type: string description: type: string hasInstruction: type: boolean description: 'Flag indicating whether the topic has an instruction or not.' instruction: $ref: '#/definitions/Instruction' createdAt: type: string format: date-time hasSubtopics: type: boolean default: false description: 'Flag indicating whether the topic has subtopics. This field is only included when requested.' path: $ref: '#/definitions/Path' classificationGuide: $ref: '#/definitions/ClassificationGuideInTopic' TopicEntry: type: object required: - entry properties: entry: $ref: '#/definitions/Topic' TopicPaging: type: object properties: list: type: object properties: pagination: $ref: '#/definitions/Pagination' entries: type: array items: $ref: '#/definitions/TopicEntry' SubtopicPaging: type: object properties: list: type: object properties: pagination: $ref: '#/definitions/Pagination' entries: type: array items: $ref: '#/definitions/TopicEntry' Instruction: properties: classificationInformation: $ref: '#/definitions/ClassificationInformation' securityMarkInformation: $ref: '#/definitions/SecurityMarkInformation' description: 'Information about how a piece of content should be secured. This field is only included when requested.' InstructionEntry: type: object required: - entry properties: entry: $ref: '#/definitions/Instruction' InstructionBody: properties: classificationInformation: $ref: '#/definitions/ClassificationInformation' securityMarkInformation: $ref: '#/definitions/SecurityMarkInformationBody' CombinedInstructionBody: allOf: - $ref: '#/definitions/InstructionBody' required: - topicIds properties: topicIds: type: array items: type: string ClassificationInformation: required: - level - reasonIds properties: level: type: string classificationAgency: type: string reasonIds: type: array items: type: string minItems: 1 downgradeOn: type: string format: date downgradeEvent: type: string downgradeInstructions: type: string declassifyOn: type: string format: date declassificationEvent: type: string exemptionIds: type: array items: type: string SecurityMarkInformation: required: - add properties: add: $ref: '#/definitions/SecurityMarks' SecurityMarkInformationBody: required: - add properties: add: $ref: '#/definitions/SecurityMarksBody' SecurityMark: required: - id - name - groupId - groupName - groupType properties: id: type: string name: type: string groupId: type: string groupName: type: string groupType: type: string SecurityMarkBody: required: - id - groupId properties: id: type: string groupId: type: string SecurityMarks: type: array items: $ref: '#/definitions/SecurityMark' SecurityMarksBody: type: array items: $ref: '#/definitions/SecurityMarkBody' PathElement: required: - id - name properties: id: type: string name: type: string description: The id and name of a topic or classification guide that is an ancestor of this topic. Path: type: array items: $ref: '#/definitions/PathElement' description: | An ordered list of ancestors starting with the classification guide and ending with the parent of this topic. This field is only returned when requested. ClassificationReason: required: - id - code - description properties: id: type: string code: type: string description: type: string ClassificationReasonBody: required: - code - description properties: code: type: string description: type: string ClassificationReasonEntry: type: object required: - entry properties: entry: $ref: '#/definitions/ClassificationReason' ClassificationReasonsPaging: type: object properties: list: type: object properties: pagination: $ref: '#/definitions/Pagination' entries: type: array items: $ref: '#/definitions/ClassificationReasonEntry' SecurityControlSetting: required: - key - value properties: key: type: string value: type: object SecurityControlSettingEntry: type: object required: - entry properties: entry: $ref: '#/definitions/SecurityControlSetting' SecurityControlSettingBody: required: - value properties: value: type: object DeclassificationExemption: required: - id - code - description properties: id: type: string code: type: string description: type: string DeclassificationExemptionBody: required: - code - description properties: code: type: string description: type: string DeclassificationExemptionEntry: type: object required: - entry properties: entry: $ref: '#/definitions/DeclassificationExemption' DeclassificationExemptionsPaging: type: object properties: list: type: object properties: pagination: $ref: '#/definitions/Pagination' entries: type: array items: $ref: '#/definitions/DeclassificationExemptionEntry' DeclassificationDate: type: string format: date-time ## Core definition Error: type: object required: - error properties: error: type: object required: - statusCode - briefSummary - stackTrace - descriptionURL properties: errorKey: type: string statusCode: type: integer format: int32 briefSummary: type: string stackTrace: type: string descriptionURL: type: string ## Core definition Pagination: type: object required: - count - hasMoreItems - skipCount - maxItems properties: count: type: integer format: int64 description: | The number of objects in the entries array. hasMoreItems: type: boolean description: | A boolean value which is **true** if there are more entities in the collection beyond those in this response. A true value means a request with a larger value for the **skipCount** or the **maxItems** parameter will return more entities. totalItems: type: integer format: int64 description: | An integer describing the total number of entities in the collection. The API might not be able to determine this value, in which case this property will not be present. skipCount: type: integer format: int64 description: | An integer describing how many entities exist in the collection before those included in this list. maxItems: type: integer format: int64 description: | The value of the **maxItems** parameter used to generate this list, or if there was no **maxItems** parameter the default value is 100